kopia lustrzana https://github.com/cloudflare/wildebeest
update e2e tests after previous navigation tweaks
rodzic
5b935a11e6
commit
d6daa7bfb3
|
@ -20,7 +20,9 @@ export const StatusAccountCard = component$<{
|
||||||
<div class="row-span-2">
|
<div class="row-span-2">
|
||||||
<Avatar primary={status.account} secondary={secondaryAvatar ?? null} />
|
<Avatar primary={status.account} secondary={secondaryAvatar ?? null} />
|
||||||
</div>
|
</div>
|
||||||
<div class="ml-2 col-start-2 row-start-1">{getDisplayNameElement(status.account)}</div>
|
<div data-testid="account-display-name" class="ml-2 col-start-2 row-start-1">
|
||||||
|
{getDisplayNameElement(status.account)}
|
||||||
|
</div>
|
||||||
<div class="ml-2 text-wildebeest-400 col-start-2 row-start-2">
|
<div class="ml-2 text-wildebeest-400 col-start-2 row-start-2">
|
||||||
@{subText === 'username' ? status.account.username : status.account.acct}
|
@{subText === 'username' ? status.account.username : status.account.acct}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,41 +1,26 @@
|
||||||
import { test, expect } from '@playwright/test'
|
import { test, expect } from '@playwright/test'
|
||||||
|
|
||||||
const navigationsVia = ['name link', 'avatar'] as const
|
test(`Navigation via to and view of an account (with 1 post)`, async ({ page }) => {
|
||||||
|
await page.goto('http://127.0.0.1:8788/explore')
|
||||||
|
await page.getByRole('article').getByRole('link').filter({ hasText: 'Ben, just Ben' }).first().click()
|
||||||
|
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Header of Ben, just Ben' })).toBeVisible()
|
||||||
|
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Avatar of Ben, just Ben' })).toBeVisible()
|
||||||
|
await expect(page.getByTestId('account-info').getByRole('heading', { name: 'Ben, just Ben' })).toBeVisible()
|
||||||
|
await expect(page.getByTestId('account-info').getByText('Joined')).toBeVisible()
|
||||||
|
await expect(page.getByTestId('account-info').getByTestId('stats')).toHaveText('1Posts0Following0Followers')
|
||||||
|
|
||||||
navigationsVia.forEach((via) =>
|
expect(await page.getByTestId('account-statuses').getByRole('article').count()).toBe(1)
|
||||||
test(`Navigation via ${via} to and view of an account (with 1 post)`, async ({ page }) => {
|
await expect(
|
||||||
await page.goto('http://127.0.0.1:8788/explore')
|
page.getByTestId('account-statuses').getByRole('article').getByRole('img', { name: 'Avatar of Ben, just Ben' })
|
||||||
await page.getByRole('article').getByRole('link', { name: 'Ben, just Ben', exact: true }).click()
|
).toBeVisible()
|
||||||
await page.getByRole('link', { name: 'Ben, just Ben', exact: true }).click()
|
await expect(page.getByTestId('account-statuses').getByRole('article')).toContainText(
|
||||||
await page.waitForLoadState('networkidle')
|
'A very simple update: all good!'
|
||||||
const linkOption =
|
)
|
||||||
via === 'name link' ? { name: 'Ben, just Ben', exact: true } : { name: 'Avatar of Ben, just Ben' }
|
})
|
||||||
await page.getByRole('link', linkOption).click()
|
|
||||||
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Header of Ben, just Ben' })).toBeVisible()
|
|
||||||
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Avatar of Ben, just Ben' })).toBeVisible()
|
|
||||||
await expect(page.getByTestId('account-info').getByRole('heading', { name: 'Ben, just Ben' })).toBeVisible()
|
|
||||||
await expect(page.getByTestId('account-info').getByText('Joined')).toBeVisible()
|
|
||||||
await expect(page.getByTestId('account-info').getByTestId('stats')).toHaveText('1Posts0Following0Followers')
|
|
||||||
|
|
||||||
expect(await page.getByTestId('account-statuses').getByRole('article').count()).toBe(1)
|
|
||||||
await expect(
|
|
||||||
page.getByTestId('account-statuses').getByRole('article').getByRole('img', { name: 'Avatar of Ben, just Ben' })
|
|
||||||
).toBeVisible()
|
|
||||||
await expect(page.getByTestId('account-statuses').getByRole('article')).toContainText(
|
|
||||||
'A very simple update: all good!'
|
|
||||||
)
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
test('Navigation to and view of an account (with 2 posts)', async ({ page }) => {
|
test('Navigation to and view of an account (with 2 posts)', async ({ page }) => {
|
||||||
await page.goto('http://127.0.0.1:8788/explore')
|
await page.goto('http://127.0.0.1:8788/explore')
|
||||||
await page
|
await page.getByRole('article').getByRole('link').filter({ hasText: 'Raffa123$' }).first().click()
|
||||||
.locator('article')
|
|
||||||
.filter({ hasText: "I'm Rafael and I am a web designer" })
|
|
||||||
.locator('i.fa-globe + span')
|
|
||||||
.click()
|
|
||||||
await page.waitForLoadState('networkidle')
|
|
||||||
await page.getByRole('link', { name: 'Raffa123$', exact: true }).click()
|
|
||||||
|
|
||||||
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Header of Raffa123$' })).toBeVisible()
|
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Header of Raffa123$' })).toBeVisible()
|
||||||
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Avatar of Raffa123$' })).toBeVisible()
|
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Avatar of Raffa123$' })).toBeVisible()
|
||||||
|
|
|
@ -40,7 +40,11 @@ test('View of custom emojis in an toots author display name', async ({ page, bro
|
||||||
.locator('i.fa-globe + span')
|
.locator('i.fa-globe + span')
|
||||||
.click()
|
.click()
|
||||||
|
|
||||||
const customEmojiLocator = page.getByRole('link', { name: 'George :verified: 👍', exact: true }).getByRole('img')
|
const customEmojiLocator = page
|
||||||
|
.getByRole('link')
|
||||||
|
.filter({ hasText: 'George' })
|
||||||
|
.getByTestId('account-display-name')
|
||||||
|
.getByRole('img')
|
||||||
await expect(customEmojiLocator).toBeVisible()
|
await expect(customEmojiLocator).toBeVisible()
|
||||||
await expect(customEmojiLocator).toHaveAttribute(
|
await expect(customEmojiLocator).toHaveAttribute(
|
||||||
'src',
|
'src',
|
||||||
|
|
|
@ -26,9 +26,7 @@ test.describe('Infinite (statuses) scrolling', () => {
|
||||||
description: 'in account page',
|
description: 'in account page',
|
||||||
goToPageFn: async (page: Page) => {
|
goToPageFn: async (page: Page) => {
|
||||||
await page.goto('http://127.0.0.1:8788/explore')
|
await page.goto('http://127.0.0.1:8788/explore')
|
||||||
await page.locator('article').filter({ hasText: "I'm Rafael" }).locator('i.fa-globe + span').click()
|
await page.getByRole('article').getByRole('link').filter({ hasText: 'Raffa123$' }).first().click()
|
||||||
await page.waitForLoadState('networkidle')
|
|
||||||
await page.getByRole('link', { name: 'Raffa123$', exact: true }).click()
|
|
||||||
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Header of Raffa123$' })).toBeVisible()
|
await expect(page.getByTestId('account-info').getByRole('img', { name: 'Header of Raffa123$' })).toBeVisible()
|
||||||
},
|
},
|
||||||
fetchUrl: 'http://127.0.0.1:8788/api/v1/accounts/Rafael/statuses?*',
|
fetchUrl: 'http://127.0.0.1:8788/api/v1/accounts/Rafael/statuses?*',
|
||||||
|
|
|
@ -1,13 +1,21 @@
|
||||||
import { test, expect } from '@playwright/test'
|
import { test, expect } from '@playwright/test'
|
||||||
|
|
||||||
test('Navigation to and view of an individual toot', async ({ page }) => {
|
const navigationVias = ['time link', 'toot content'] as const
|
||||||
await page.goto('http://127.0.0.1:8788/explore')
|
|
||||||
await page.locator('article').filter({ hasText: 'Ben, just Ben' }).locator('i.fa-globe + span').click()
|
navigationVias.forEach((via) =>
|
||||||
await expect(page.getByRole('button', { name: 'Back' })).toBeVisible()
|
test(`Navigation to and view of an individual toot via ${via}`, async ({ page }) => {
|
||||||
await expect(page.getByRole('link', { name: 'Avatar of Ben, just Ben' })).toBeVisible()
|
await page.goto('http://127.0.0.1:8788/explore')
|
||||||
await expect(page.getByRole('link', { name: 'Ben, just Ben', exact: true })).toBeVisible()
|
if (via === 'time link') {
|
||||||
await expect(page.locator('span', { hasText: 'A very simple update: all good!' })).toBeVisible()
|
await page.locator('article').filter({ hasText: 'Ben, just Ben' }).locator('i.fa-globe + span').click()
|
||||||
})
|
} else {
|
||||||
|
await page.getByText('A very simple update: all good!').click()
|
||||||
|
}
|
||||||
|
await expect(page.getByRole('button', { name: 'Back' })).toBeVisible()
|
||||||
|
await expect(page.getByRole('link', { name: 'Avatar of Ben, just Ben' })).toBeVisible()
|
||||||
|
await expect(page.getByTestId('account-display-name').filter({ hasText: 'Ben, just Ben' })).toBeVisible()
|
||||||
|
await expect(page.locator('span', { hasText: 'A very simple update: all good!' })).toBeVisible()
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
test('Navigation to and view of an individual toot with images', async ({ page }) => {
|
test('Navigation to and view of an individual toot with images', async ({ page }) => {
|
||||||
await page.goto('http://127.0.0.1:8788/explore')
|
await page.goto('http://127.0.0.1:8788/explore')
|
||||||
|
@ -18,7 +26,7 @@ test('Navigation to and view of an individual toot with images', async ({ page }
|
||||||
.click()
|
.click()
|
||||||
await expect(page.getByRole('button', { name: 'Back' })).toBeVisible()
|
await expect(page.getByRole('button', { name: 'Back' })).toBeVisible()
|
||||||
await expect(page.getByRole('link', { name: 'Avatar of Raffa123$' })).toBeVisible()
|
await expect(page.getByRole('link', { name: 'Avatar of Raffa123$' })).toBeVisible()
|
||||||
await expect(page.getByRole('link', { name: 'Raffa123$', exact: true })).toBeVisible()
|
await expect(page.getByTestId('account-display-name').filter({ hasText: 'Raffa123$' })).toBeVisible()
|
||||||
await expect(page.locator('p', { hasText: "I'm Rafael and I am a web designer!" })).toBeVisible()
|
await expect(page.locator('p', { hasText: "I'm Rafael and I am a web designer!" })).toBeVisible()
|
||||||
expect(await page.getByTestId('media-gallery').getByRole('img').count()).toBe(4)
|
expect(await page.getByTestId('media-gallery').getByRole('img').count()).toBe(4)
|
||||||
await expect(page.getByTestId('images-modal')).not.toBeVisible()
|
await expect(page.getByTestId('images-modal')).not.toBeVisible()
|
||||||
|
@ -57,7 +65,7 @@ test("Navigation to and view of a toot's replies", async ({ page }) => {
|
||||||
.click()
|
.click()
|
||||||
|
|
||||||
await expect(page.getByRole('link', { name: 'Avatar of Zak Smith' })).toBeVisible()
|
await expect(page.getByRole('link', { name: 'Avatar of Zak Smith' })).toBeVisible()
|
||||||
await expect(page.getByRole('link', { name: 'Zak Smith', exact: true })).toBeVisible()
|
await expect(page.getByTestId('account-display-name').filter({ hasText: 'Zak Smith' })).toBeVisible()
|
||||||
await expect(page.getByText('Yes we did!')).toBeVisible()
|
await expect(page.getByText('Yes we did!')).toBeVisible()
|
||||||
|
|
||||||
await page.getByRole('button', { name: 'Back' }).click()
|
await page.getByRole('button', { name: 'Back' }).click()
|
||||||
|
@ -72,6 +80,6 @@ test("Navigation to and view of a toot's replies", async ({ page }) => {
|
||||||
.click()
|
.click()
|
||||||
|
|
||||||
await expect(page.getByRole('link', { name: 'Avatar of Penny' })).toBeVisible()
|
await expect(page.getByRole('link', { name: 'Avatar of Penny' })).toBeVisible()
|
||||||
await expect(page.getByRole('link', { name: 'Penny', exact: true })).toBeVisible()
|
await expect(page.getByTestId('account-display-name').filter({ hasText: 'Penny' })).toBeVisible()
|
||||||
await expect(page.getByText('Yes you guys did it!')).toBeVisible()
|
await expect(page.getByText('Yes you guys did it!')).toBeVisible()
|
||||||
})
|
})
|
||||||
|
|
Ładowanie…
Reference in New Issue