diff options
Diffstat (limited to '__e2e__/tests/home-screen.test.ts')
-rw-r--r-- | __e2e__/tests/home-screen.test.ts | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/__e2e__/tests/home-screen.test.ts b/__e2e__/tests/home-screen.test.ts new file mode 100644 index 000000000..1ec1774f3 --- /dev/null +++ b/__e2e__/tests/home-screen.test.ts @@ -0,0 +1,92 @@ +/* eslint-env detox/detox */ + +import {openApp, login, createServer} from '../util' + +describe('Home screen', () => { + let service: string + beforeAll(async () => { + service = await createServer('?users&follows&posts') + await openApp({permissions: {notifications: 'YES'}}) + }) + + it('Login', async () => { + await login(service, 'alice', 'hunter2') + await element(by.id('homeScreenFeedTabs-Following')).tap() + }) + + it('Can like posts', async () => { + const carlaPosts = by.id('feedItem-by-carla.test') + await expect( + element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0), + ).toHaveText('0') + await element(by.id('likeBtn').withAncestor(carlaPosts)).atIndex(0).tap() + await expect( + element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0), + ).toHaveText('1') + await element(by.id('likeBtn').withAncestor(carlaPosts)).atIndex(0).tap() + await expect( + element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0), + ).toHaveText('0') + }) + + it('Can repost posts', async () => { + const carlaPosts = by.id('feedItem-by-carla.test') + await expect( + element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0), + ).toHaveText('0') + await element(by.id('repostBtn').withAncestor(carlaPosts)).atIndex(0).tap() + await expect(element(by.id('repostModal'))).toBeVisible() + await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() + await expect(element(by.id('repostModal'))).not.toBeVisible() + await expect( + element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0), + ).toHaveText('1') + await element(by.id('repostBtn').withAncestor(carlaPosts)).atIndex(0).tap() + await expect(element(by.id('repostModal'))).toBeVisible() + await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() + await expect(element(by.id('repostModal'))).not.toBeVisible() + await expect( + element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0), + ).toHaveText('0') + }) + + it('Can report posts', async () => { + const carlaPosts = by.id('feedItem-by-carla.test') + await element(by.id('postDropdownBtn').withAncestor(carlaPosts)) + .atIndex(0) + .tap() + await element(by.id('postDropdownReportBtn')).tap() + await expect(element(by.id('reportPostModal'))).toBeVisible() + await element(by.id('reportPostRadios-spam')).tap() + await element(by.id('sendReportBtn')).tap() + await expect(element(by.id('reportPostModal'))).not.toBeVisible() + }) + + it('Can swipe between feeds', async () => { + await element(by.id('homeScreen')).swipe('left', 'fast', 0.75) + await expect(element(by.id('whatshotFeedPage'))).toBeVisible() + await element(by.id('homeScreen')).swipe('right', 'fast', 0.75) + await expect(element(by.id('followingFeedPage'))).toBeVisible() + }) + + it('Can tap between feeds', async () => { + await element(by.id("homeScreenFeedTabs-What's hot")).tap() + await expect(element(by.id('whatshotFeedPage'))).toBeVisible() + await element(by.id('homeScreenFeedTabs-Following')).tap() + await expect(element(by.id('followingFeedPage'))).toBeVisible() + }) + + it('Can delete posts', async () => { + const alicePosts = by.id('feedItem-by-alice.test') + await expect(element(alicePosts.withDescendant(by.text('Post')))).toExist() + await element(by.id('postDropdownBtn').withAncestor(alicePosts)) + .atIndex(0) + .tap() + await element(by.id('postDropdownDeleteBtn')).tap() + await expect(element(by.id('confirmModal'))).toBeVisible() + await element(by.id('confirmBtn')).tap() + await expect( + element(alicePosts.withDescendant(by.text('Post'))), + ).not.toExist() + }) +}) |