Skip to content

Commit 3124fe9

Browse files
authored
feat: rename createWorkerFixture to createNetworkFixture (#8)
1 parent b410443 commit 3124fe9

File tree

7 files changed

+48
-29
lines changed

7 files changed

+48
-29
lines changed

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ await page.evaluate(() => {
1313
// functions from the `msw` package you want to use since
1414
// you cannot reference them in `page.evaluate` directly.
1515
const { worker, http, graphql } = window.msw
16-
worker.use(...)
16+
worker.use(...overrides)
1717
})
1818
```
1919

@@ -30,16 +30,16 @@ npm i msw @msw/playwright
3030
```ts
3131
// playwright.setup.ts
3232
import { test as testBase } from '@playwright/test'
33-
import { createWorkerFixture, type WorkerFixture } from '@msw/playwright'
33+
import { createNetworkFixture, type NetworkFixture } from '@msw/playwright'
3434
import { handlers } from '../mocks/handlers.js'
3535

3636
interface Fixtures {
37-
worker: WorkerFixture
37+
network: NetworkFixture
3838
}
3939

4040
export const test = testBase.extend<Fixtures>({
41-
// Create your worker fixture to access in tests.
42-
worker: createWorkerFixture({
41+
// Create a fixture that will control the network in your tests.
42+
network: createNetworkFixture({
4343
initialHandlers: handlers,
4444
}),
4545
})
@@ -49,10 +49,10 @@ export const test = testBase.extend<Fixtures>({
4949
import { http, HttpResponse } from 'msw'
5050
import { test } from './playwright.setup.js'
5151

52-
test('displays the user dashboard', async ({ worker, page }) => {
53-
// Access and use the worker as you normally would!
52+
test('displays the user dashboard', async ({ network, page }) => {
53+
// Access the network fixture and use it as the `setupWorker()` API.
5454
// No more disrupted context between processes.
55-
worker.use(
55+
network.use(
5656
http.get('/user', () => {
5757
return HttpResponse.json({
5858
id: 'abc-123',

src/index.ts

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,36 @@ import {
1717
WebSocketServerConnectionProtocol,
1818
} from '@mswjs/interceptors/WebSocket'
1919

20-
export interface CreateWorkerFixtureArgs {
20+
export interface CreateNetworkFixtureArgs {
2121
initialHandlers: Array<RequestHandler | WebSocketHandler>
2222
}
2323

24-
export function createWorkerFixture(
25-
args?: CreateWorkerFixtureArgs,
24+
/**
25+
* Creates a fixture that controls the network in your tests.
26+
*
27+
* @note The returned fixture already has the `auto` option set to `true`.
28+
*
29+
* **Usage**
30+
* ```ts
31+
* import { test as testBase } from '@playwright/test'
32+
* import { createNetworkFixture, type WorkerFixture } from '@msw/playwright'
33+
*
34+
* interface Fixtures {
35+
* network: WorkerFixture
36+
* }
37+
*
38+
* export const test = testBase.extend<Fixtures>({
39+
* network: createNetworkFixture()
40+
* })
41+
* ```
42+
*/
43+
export function createNetworkFixture(
44+
args?: CreateNetworkFixtureArgs,
2645
/** @todo `onUnhandledRequest`? */
27-
): [TestFixture<WorkerFixture, any>, { auto: boolean }] {
46+
): [TestFixture<NetworkFixture, any>, { auto: boolean }] {
2847
return [
2948
async ({ page }, use) => {
30-
const worker = new WorkerFixture({
49+
const worker = new NetworkFixture({
3150
page,
3251
initialHandlers: args?.initialHandlers || [],
3352
})
@@ -40,7 +59,7 @@ export function createWorkerFixture(
4059
]
4160
}
4261

43-
export class WorkerFixture extends SetupApi<LifeCycleEventsMap> {
62+
export class NetworkFixture extends SetupApi<LifeCycleEventsMap> {
4463
#page: Page
4564

4665
constructor(args: {

tests/auto.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { test as testBase, expect } from '@playwright/test'
22
import { http } from 'msw'
3-
import { createWorkerFixture, type WorkerFixture } from '../src/index.js'
3+
import { createNetworkFixture, type NetworkFixture } from '../src/index.js'
44

55
interface Fixtures {
6-
worker: WorkerFixture
6+
worker: NetworkFixture
77
}
88

99
const test = testBase.extend<Fixtures>({
10-
worker: createWorkerFixture({
10+
worker: createNetworkFixture({
1111
initialHandlers: [
1212
http.get('*/resource', () => {
1313
return new Response('hello world')

tests/overrides.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { test as testBase, expect } from '@playwright/test'
22
import { http } from 'msw'
3-
import { createWorkerFixture, type WorkerFixture } from '../src/index.js'
3+
import { createNetworkFixture, type NetworkFixture } from '../src/index.js'
44

55
interface Fixtures {
6-
worker: WorkerFixture
6+
worker: NetworkFixture
77
}
88

99
const test = testBase.extend<Fixtures>({
10-
worker: createWorkerFixture(),
10+
worker: createNetworkFixture(),
1111
})
1212

1313
test.beforeEach(({ worker }) => {

tests/requests.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { test as testBase, expect } from '@playwright/test'
22
import { http } from 'msw'
3-
import { createWorkerFixture, type WorkerFixture } from '../src/index.js'
3+
import { createNetworkFixture, type NetworkFixture } from '../src/index.js'
44

55
interface Fixtures {
6-
worker: WorkerFixture
6+
worker: NetworkFixture
77
}
88

99
const test = testBase.extend<Fixtures>({
10-
worker: createWorkerFixture(),
10+
worker: createNetworkFixture(),
1111
})
1212

1313
test('intercepts a GET request', async ({ worker, page }) => {

tests/responses.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { test as testBase, expect } from '@playwright/test'
22
import { http, HttpResponse } from 'msw'
3-
import { createWorkerFixture, type WorkerFixture } from '../src/index.js'
3+
import { createNetworkFixture, type NetworkFixture } from '../src/index.js'
44

55
interface Fixtures {
6-
worker: WorkerFixture
6+
worker: NetworkFixture
77
}
88

99
const test = testBase.extend<Fixtures>({
10-
worker: createWorkerFixture(),
10+
worker: createNetworkFixture(),
1111
})
1212

1313
test('mocks a response without any body', async ({ worker, page }) => {

tests/websockets.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ import { test as testBase, expect } from '@playwright/test'
22
import { createTestHttpServer } from '@epic-web/test-server/http'
33
import { createWebSocketMiddleware } from '@epic-web/test-server/ws'
44
import { ws } from 'msw'
5-
import { createWorkerFixture, type WorkerFixture } from '../src/index.js'
5+
import { createNetworkFixture, type NetworkFixture } from '../src/index.js'
66

77
interface Fixtures {
8-
worker: WorkerFixture
8+
worker: NetworkFixture
99
}
1010

1111
const test = testBase.extend<Fixtures>({
12-
worker: createWorkerFixture(),
12+
worker: createNetworkFixture(),
1313
})
1414

1515
const api = ws.link('ws://localhost/api')

0 commit comments

Comments
 (0)