MCPcopy
hub / github.com/mswjs/msw / init

Method init

test/browser/setup/workerConsole.ts:68–105  ·  view source on GitHub ↗
(page: Page)

Source from the content-addressed store, hash-verified

66 }
67
68 public async init(page: Page): Promise<void> {
69 // Ensure the worker is activated before establishing the listener.
70 await page.evaluate(() => {
71 if (navigator.serviceWorker.controller) {
72 // Only await the worker if it actually exists.
73 // This prevents the WorkerConsole from throwing
74 // when initialized in the scenarios where MSW is
75 // expected to fail/skip registration. Respectively,
76 // no console message forwarding will be established.
77 return navigator.serviceWorker.ready
78 }
79 })
80
81 await page.exposeFunction(
82 'handleIncomingWorkerConsoleMessage',
83 (messageType: WorkerConsoleMessageType, args: Array<string>) => {
84 const [template, ...positionals] = args
85 const formattedMessage = format(template, ...positionals)
86
87 this.addMessage(messageType, formattedMessage)
88 this.emit(messageType, formattedMessage)
89 },
90 )
91
92 await page.evaluate(() => {
93 navigator.serviceWorker.addEventListener(
94 'message',
95 (event: MessageEvent<InternalWorkerConsoleMessageData>) => {
96 const { data } = event
97
98 if (data.type === 'internal/console') {
99 const { messageType, args } = data.payload
100 window.handleIncomingWorkerConsoleMessage(messageType, args)
101 }
102 },
103 )
104 })
105 }
106
107 public removeAllListeners(...args: Array<any>) {
108 this.messages.clear()

Callers 1

loadExampleFunction · 0.95

Calls 2

addMessageMethod · 0.95
addEventListenerMethod · 0.45

Tested by

no test coverage detected