diff options
Diffstat (limited to '__e2e__')
-rw-r--r-- | __e2e__/mock-server.ts | 3 | ||||
-rw-r--r-- | __e2e__/tests/create-account.test.ts | 2 | ||||
-rw-r--r-- | __e2e__/tests/invite-codes.test.ts | 64 |
3 files changed, 67 insertions, 2 deletions
diff --git a/__e2e__/mock-server.ts b/__e2e__/mock-server.ts index 7a2be6060..7bcad47f3 100644 --- a/__e2e__/mock-server.ts +++ b/__e2e__/mock-server.ts @@ -13,7 +13,8 @@ async function main() { console.log('Closing old server') await server?.close() console.log('Starting new server') - server = await createServer() + const inviteRequired = url?.query && 'invite' in url.query + server = await createServer({inviteRequired}) console.log('Listening at', server.pdsUrl) if (url?.query) { if ('users' in url.query) { diff --git a/__e2e__/tests/create-account.test.ts b/__e2e__/tests/create-account.test.ts index 7b2e00fb5..38466ed8e 100644 --- a/__e2e__/tests/create-account.test.ts +++ b/__e2e__/tests/create-account.test.ts @@ -5,7 +5,7 @@ import {openApp, createServer} from '../util' describe('Create account', () => { let service: string beforeAll(async () => { - service = await createServer('mock0') + service = await createServer('') await openApp({permissions: {notifications: 'YES'}}) }) diff --git a/__e2e__/tests/invite-codes.test.ts b/__e2e__/tests/invite-codes.test.ts new file mode 100644 index 000000000..e3bb5d7f2 --- /dev/null +++ b/__e2e__/tests/invite-codes.test.ts @@ -0,0 +1,64 @@ +/* eslint-env detox/detox */ + +import {openApp, login, createServer} from '../util' + +describe('invite-codes', () => { + let service: string + let inviteCode = '' + beforeAll(async () => { + service = await createServer('?users&invite') + await openApp({permissions: {notifications: 'YES'}}) + }) + + it('I can fetch invite codes', async () => { + await expect(element(by.id('signInButton'))).toBeVisible() + await login(service, 'alice', 'hunter2') + await element(by.id('viewHeaderDrawerBtn')).tap() + await expect(element(by.id('drawer'))).toBeVisible() + await element(by.id('menuItemInviteCodes')).tap() + await expect(element(by.id('inviteCodesModal'))).toBeVisible() + const attrs = await element(by.id('inviteCode-0-code')).getAttributes() + inviteCode = attrs.text + await element(by.id('closeBtn')).tap() + await element(by.id('viewHeaderDrawerBtn')).tap() + await element(by.id('menuItemButton-Settings')).tap() + await element(by.id('signOutBtn')).tap() + }) + + it('I can create a new account with the invite code', async () => { + await element(by.id('createAccountButton')).tap() + await device.takeScreenshot('1- opened create account screen') + await element(by.id('otherServerBtn')).tap() + await device.takeScreenshot('2- selected other server') + await element(by.id('customServerInput')).clearText() + await element(by.id('customServerInput')).typeText(service) + await device.takeScreenshot('3- input test server URL') + await element(by.id('nextBtn')).tap() + await element(by.id('inviteCodeInput')).typeText(inviteCode) + await element(by.id('emailInput')).typeText('example@test.com') + await element(by.id('passwordInput')).typeText('hunter2') + await element(by.id('is13Input')).tap() + await device.takeScreenshot('4- entered account details') + await element(by.id('nextBtn')).tap() + await element(by.id('handleInput')).typeText('e2e-test') + await device.takeScreenshot('4- entered handle') + await element(by.id('nextBtn')).tap() + await expect(element(by.id('homeScreen'))).toBeVisible() + await element(by.id('viewHeaderDrawerBtn')).tap() + await element(by.id('menuItemButton-Settings')).tap() + await element(by.id('signOutBtn')).tap() + }) + + it('I get a notification for the new user', async () => { + await expect(element(by.id('signInButton'))).toBeVisible() + await login(service, 'alice', 'hunter2') + await element(by.id('viewHeaderDrawerBtn')).tap() + await element(by.id('menuItemButton-Notifications')).tap() + await expect(element(by.id('invitedUser'))).toBeVisible() + }) + + it('I can dismiss the new user notification', async () => { + await element(by.id('dismissBtn')).tap() + await expect(element(by.id('invitedUser'))).not.toBeVisible() + }) +}) |