From 150fe421d6b694fefd89c0374d0f29051940cc17 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 22 Sep 2023 17:49:41 -0700 Subject: Fixes to tests (#1518) --- __e2e__/tests/create-account.test.ts | 2 + __e2e__/tests/invite-codes.test-skip.ts | 67 -------------------------------- __e2e__/tests/invite-codes.test.ts | 69 +++++++++++++++++++++++++++++++++ __e2e__/tests/profile-screen.test.ts | 2 +- 4 files changed, 72 insertions(+), 68 deletions(-) delete mode 100644 __e2e__/tests/invite-codes.test-skip.ts create mode 100644 __e2e__/tests/invite-codes.test.ts (limited to '__e2e__') diff --git a/__e2e__/tests/create-account.test.ts b/__e2e__/tests/create-account.test.ts index f6ab0a498..283eda341 100644 --- a/__e2e__/tests/create-account.test.ts +++ b/__e2e__/tests/create-account.test.ts @@ -29,6 +29,8 @@ describe('Create account', () => { await element(by.id('continueBtn')).tap() await expect(element(by.id('recommendedFeedsOnboarding'))).toBeVisible() await element(by.id('continueBtn')).tap() + await expect(element(by.id('recommendedFollowsOnboarding'))).toBeVisible() + await element(by.id('continueBtn')).tap() await expect(element(by.id('homeScreen'))).toBeVisible() }) }) diff --git a/__e2e__/tests/invite-codes.test-skip.ts b/__e2e__/tests/invite-codes.test-skip.ts deleted file mode 100644 index f5d2bafb3..000000000 --- a/__e2e__/tests/invite-codes.test-skip.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* eslint-env detox/detox */ - -/** - * This test is being skipped until we can resolve the detox crash issue - * with the side drawer. - */ - -import {openApp, loginAsAlice, 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 loginAsAlice() - 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 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('welcomeOnboarding'))).toBeVisible() - await element(by.id('continueBtn')).tap() - await expect(element(by.id('recommendedFeedsOnboarding'))).toBeVisible() - await element(by.id('continueBtn')).tap() - await expect(element(by.id('homeScreen'))).toBeVisible() - }) - - it('I get a notification for the new user', async () => { - await loginAsAlice() - 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() - }) -}) diff --git a/__e2e__/tests/invite-codes.test.ts b/__e2e__/tests/invite-codes.test.ts new file mode 100644 index 000000000..124c1af90 --- /dev/null +++ b/__e2e__/tests/invite-codes.test.ts @@ -0,0 +1,69 @@ +/* eslint-env detox/detox */ + +/** + * This test is being skipped until we can resolve the detox crash issue + * with the side drawer. + */ + +import {openApp, loginAsAlice, 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 loginAsAlice() + await element(by.id('e2eOpenInviteCodesModal')).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('e2eSignOut')).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 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('welcomeOnboarding'))).toBeVisible() + await element(by.id('continueBtn')).tap() + await expect(element(by.id('recommendedFeedsOnboarding'))).toBeVisible() + await element(by.id('continueBtn')).tap() + await expect(element(by.id('recommendedFollowsOnboarding'))).toBeVisible() + await element(by.id('continueBtn')).tap() + await expect(element(by.id('homeScreen'))).toBeVisible() + }) + + it('I get a notification for the new user', async () => { + await element(by.id('e2eSignOut')).tap() + await loginAsAlice() + await waitFor(element(by.id('homeScreen'))) + .toBeVisible() + .withTimeout(5000) + await element(by.id('bottomBarNotificationsBtn')).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() + }) +}) diff --git a/__e2e__/tests/profile-screen.test.ts b/__e2e__/tests/profile-screen.test.ts index 101aaf61c..82722f381 100644 --- a/__e2e__/tests/profile-screen.test.ts +++ b/__e2e__/tests/profile-screen.test.ts @@ -19,7 +19,7 @@ describe('Profile screen', () => { it('Can see feeds', async () => { await element(by.id('selector')).swipe('left') await element(by.id('selector-4')).tap() - await expect(element(by.id('feed-alices feed'))).toBeVisible() + await expect(element(by.id('feed-alice-favs'))).toBeVisible() await element(by.id('selector')).swipe('right') await element(by.id('selector-0')).tap() }) -- cgit 1.4.1