1- import { SetupWorkerApi } from 'msw/browser'
1+ import type { http , HttpResponse } from 'msw'
2+ import type { setupWorker } from 'msw/browser'
23import { createTeardown } from 'fs-teardown'
34import { Page } from '@playwright/test'
45import { HttpServer } from '@open-draft/test-server/lib/http.js'
56import { fromTemp } from '../../../../support/utils'
67import { test , expect } from '../../../playwright.extend'
78
89declare namespace window {
9- export const worker : SetupWorkerApi
10+ export const msw : {
11+ setupWorker : typeof setupWorker
12+ http : typeof http
13+ HttpResponse : typeof HttpResponse
14+ }
1015}
1116
1217const fsMock = createTeardown ( {
@@ -94,6 +99,13 @@ test('prints a fallback start message in the console', async ({
9499} , testInfo ) => {
95100 const consoleSpy = spyOnConsole ( )
96101 await gotoStaticPage ( page , testInfo . workerIndex )
102+
103+ await page . evaluate ( async ( ) => {
104+ const { setupWorker } = window . msw
105+ const worker = setupWorker ( )
106+ await worker . start ( )
107+ } )
108+
97109 const consoleGroups = consoleSpy . get ( 'startGroupCollapsed' )
98110
99111 await waitFor ( ( ) => {
@@ -110,6 +122,17 @@ test('responds with a mocked response to a handled request', async ({
110122 const consoleSpy = spyOnConsole ( )
111123 await gotoStaticPage ( page , testInfo . workerIndex )
112124
125+ await page . evaluate ( async ( ) => {
126+ const { setupWorker, http, HttpResponse } = window . msw
127+
128+ const worker = setupWorker (
129+ http . get ( '*/user' , ( ) => {
130+ return HttpResponse . json ( { name : 'John Maverick' } )
131+ } ) ,
132+ )
133+ await worker . start ( )
134+ } )
135+
113136 const response = await fetch ( server . https . url ( '/user' ) )
114137
115138 // Prints the request message group in the console.
@@ -139,6 +162,12 @@ test('warns on the unhandled request by default', async ({
139162 const consoleSpy = spyOnConsole ( )
140163 await gotoStaticPage ( page , testInfo . workerIndex )
141164
165+ await page . evaluate ( async ( ) => {
166+ const { setupWorker } = window . msw
167+ const worker = setupWorker ( )
168+ await worker . start ( )
169+ } )
170+
142171 await fetch ( server . http . url ( '/unknown-resource' ) )
143172
144173 expect ( consoleSpy . get ( 'warning' ) ) . toEqual (
@@ -162,8 +191,12 @@ test('stops the fallback interceptor when called "worker.stop()"', async ({
162191 const consoleSpy = spyOnConsole ( )
163192 await gotoStaticPage ( page , testInfo . workerIndex )
164193
165- await page . evaluate ( ( ) => {
166- window . worker . stop ( )
194+ await page . evaluate ( async ( ) => {
195+ const { setupWorker } = window . msw
196+ const worker = setupWorker ( )
197+ await worker . start ( )
198+
199+ worker . stop ( )
167200 } )
168201
169202 expect ( consoleSpy . get ( 'log' ) ) . toContain ( '[MSW] Mocking disabled.' )
0 commit comments