Skip to content

Commit 2640c0d

Browse files
committed
chore: improved testing examples
1 parent ecc7bcc commit 2640c0d

3 files changed

Lines changed: 22 additions & 36 deletions

File tree

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { test } from 'node:test'
22

3-
test('Top level test', async t => {
4-
await t.test('Subtest 1', async _t => {
3+
test('Top level test', t => {
4+
t.test('Subtest 1', _t => {
55
// ...
66
})
77

8-
await t.test('Subtest 2', async _t => {
8+
t.test('Subtest 2', _t => {
99
// ...
1010
})
1111
})
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { test } from 'node:test'
22

33
test('Top level test', { concurrency: true }, t => {
4-
t.test('Subtest 1', async _t => {
4+
t.test('Subtest 1', _t => {
55
// ...
66
})
77

8-
t.test('Subtest 2', async _t => {
8+
t.test('Subtest 2', _t => {
99
// ...
1010
})
1111
})

10-testing/17-e2e-test/e2e/userFlow.spec.ts

Lines changed: 17 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@ test('A user can sign up and book an event', async ({ page }) => {
1111

1212
await page.goto('http://localhost:3000')
1313

14-
await page
15-
.getByRole('navigation')
16-
.getByRole('link', { name: 'Sign In' })
17-
.click()
14+
await page.getByRole('link', { name: 'Sign In' }).click()
1815

1916
await page.getByRole('link', { name: 'Sign up' }).click()
2017

@@ -23,13 +20,13 @@ test('A user can sign up and book an event', async ({ page }) => {
2320
const email = `test${seed}@example.com`
2421
const password = `someRandomPassword${seed}`
2522

26-
await page.locator('[name="name"]').fill(name)
27-
await page.locator('[name="email"]').fill(email)
28-
await page.locator('[name="password"]').fill(password)
23+
await page.getByRole('textbox', { name: 'name' }).fill(name)
24+
await page.getByRole('textbox', { name: 'email' }).fill(email)
25+
await page.getByRole('textbox', { name: 'password' }).fill(password)
2926

3027
await page.getByRole('button', { name: 'Create account' }).click()
3128

32-
await page.getByRole('heading', { name: 'Italian Cooking Workshop' }).click()
29+
await page.getByRole('link', { name: 'Marathon City Run' }).click()
3330

3431
// get the value of the current available capacity
3532
const availableCapacity = Number.parseInt(
@@ -38,40 +35,29 @@ test('A user can sign up and book an event', async ({ page }) => {
3835

3936
await page.getByRole('button', { name: 'Reserve your spot' }).click()
4037

41-
await page.waitForResponse(
42-
response =>
43-
response.url().includes('/events/') &&
44-
response.request().method() === 'POST' &&
45-
response.status() === 200
46-
)
47-
4838
// check that the reservation was successful by looking that we have
4939
// a "Booked" note on the page and that
50-
// the "reserve" button is now disabled
40+
// the "reserve" button says "You have booked this event!" and is now disabled
5141
await expect(page.getByTestId('badge').first()).toHaveText('Booked')
52-
53-
expect(
54-
await page.getByRole('button', { name: 'You have booked this event!' })
55-
).toBeDisabled()
42+
const bookButton = await page.getByRole('button', {
43+
name: 'You have booked this event!',
44+
})
45+
await expect(bookButton).toBeDisabled()
46+
await expect(bookButton).toBeVisible()
5647

5748
// check that the count of spots available went down
5849
const newAvailableCapacity = Number.parseInt(
5950
(await page.getByTestId('available-capacity').textContent()) as string
6051
)
6152
expect(newAvailableCapacity).toBeLessThan(availableCapacity)
6253

63-
await page
64-
.getByRole('navigation')
65-
.getByRole('link', { name: 'My Reservations' })
66-
.click()
54+
await page.getByRole('link', { name: 'My Reservations' }).click()
6755

68-
await page.waitForSelector('h1:has-text("My Reservations")', {
69-
state: 'visible',
70-
})
56+
await expect(
57+
page.getByRole('heading', { name: 'My Reservations' })
58+
).toBeVisible()
7159

7260
expect(
73-
await page
74-
.getByRole('heading', { name: 'Italian Cooking Workshop' })
75-
.isVisible()
76-
).toBeTruthy()
61+
await page.getByRole('heading', { name: 'Marathon City Run' })
62+
).toBeVisible()
7763
})

0 commit comments

Comments
 (0)