MCPcopy
hub / github.com/vitest-dev/vitest / registerMock

Function registerMock

packages/browser/src/node/rpc.ts:353–398  ·  view source on GitHub ↗
(sessionId, module)

Source from the content-addressed store, hash-verified

351 },
352
353 async registerMock(sessionId, module) {
354 if (!mocker) {
355 // make sure modules are not processed yet in case they were imported before
356 // and were not mocked
357 mockResolver.invalidate([module.id])
358
359 if (module.type === 'manual') {
360 const mock = ManualMockedModule.fromJSON(module, async () => {
361 try {
362 const { keys } = await rpc.resolveManualMock(module.url)
363 return Object.fromEntries(keys.map(key => [key, null]))
364 }
365 catch (err) {
366 vitest.state.catchError(err, 'Manual Mock Resolver Error')
367 return {}
368 }
369 })
370 defaultMockerRegistry.add(mock)
371 }
372 else {
373 if (module.type === 'redirect') {
374 const redirectUrl = new URL(module.redirect)
375 module.redirect = join(vite.config.root, redirectUrl.pathname)
376 }
377 defaultMockerRegistry.register(module)
378 }
379 return
380 }
381
382 if (module.type === 'manual') {
383 const manualModule = ManualMockedModule.fromJSON(module, async () => {
384 const { keys } = await rpc.resolveManualMock(module.url)
385 return Object.fromEntries(keys.map(key => [key, null]))
386 })
387 await mocker.register(sessionId, manualModule)
388 }
389 else if (module.type === 'redirect') {
390 await mocker.register(sessionId, RedirectedModule.fromJSON(module))
391 }
392 else if (module.type === 'automock') {
393 await mocker.register(sessionId, AutomockedModule.fromJSON(module))
394 }
395 else if (module.type === 'autospy') {
396 await mocker.register(sessionId, AutospiedModule.fromJSON(module))
397 }
398 },
399 clearMocks(sessionId) {
400 if (!mocker) {
401 return defaultMockerRegistry.clear()

Callers

nothing calls this directly

Calls 7

resolveManualMockMethod · 0.80
catchErrorMethod · 0.80
joinFunction · 0.50
invalidateMethod · 0.45
fromJSONMethod · 0.45
addMethod · 0.45
registerMethod · 0.45

Tested by

no test coverage detected