Home / Function/ createModuleRunnerTester() — vite Function Reference

createModuleRunnerTester() — vite Function Reference

Architecture documentation for the createModuleRunnerTester() function in utils.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  b86d82d7_be96_2a5f_c2dd_462307e1507d["createModuleRunnerTester()"]
  01ea9ea3_8399_6861_2813_c2cb84e13dbd["utils.ts"]
  b86d82d7_be96_2a5f_c2dd_462307e1507d -->|defined in| 01ea9ea3_8399_6861_2813_c2cb84e13dbd
  19009191_26ac_2526_d048_41ac02638e55["createServer()"]
  b86d82d7_be96_2a5f_c2dd_462307e1507d -->|calls| 19009191_26ac_2526_d048_41ac02638e55
  ebea5da1_fa3d_b3f6_9793_71dfb88847a4["createServerModuleRunner()"]
  b86d82d7_be96_2a5f_c2dd_462307e1507d -->|calls| ebea5da1_fa3d_b3f6_9793_71dfb88847a4
  2a568e89_e3e7_9284_fd00_e1a9ca1ec09a["close()"]
  b86d82d7_be96_2a5f_c2dd_462307e1507d -->|calls| 2a568e89_e3e7_9284_fd00_e1a9ca1ec09a
  style b86d82d7_be96_2a5f_c2dd_462307e1507d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/ssr/runtime/__tests__/utils.ts lines 20–104

export async function createModuleRunnerTester(
  config: InlineConfig = {},
  runnerConfig: ServerModuleRunnerOptions = {},
): Promise<TestAPI<TestClient>> {
  function waitForWatcher(server: ViteDevServer) {
    return new Promise<void>((resolve) => {
      if ((server.watcher as any)._readyEmitted) {
        resolve()
      } else {
        server.watcher.once('ready', () => resolve())
      }
    })
  }

  beforeEach<TestClient>(async (t) => {
    // @ts-ignore
    globalThis.__HMR__ = {}

    t.server = await createServer({
      root: import.meta.dirname,
      logLevel: 'error',
      server: {
        middlewareMode: true,
        watch: null,
        ws: false,
      },
      ssr: {
        external: ['@vitejs/cjs-external', '@vitejs/esm-external'],
      },
      optimizeDeps: {
        disabled: true,
        noDiscovery: true,
        include: [],
      },
      plugins: [
        {
          name: 'vite-plugin-virtual',
          resolveId(id) {
            if (id === 'virtual0:test') {
              return `\0virtual:test`
            }
            if (id === 'virtual:test') {
              return 'virtual:test'
            }
            if (id === 'virtual:normal') {
              return '\0' + id
            }
          },
          load(id) {
            if (id === `\0virtual:test`) {
              return `export const msg = 'virtual0'`
            }
            if (id === `virtual:test`) {
              return `export const msg = 'virtual'`
            }
            if (id === '\0virtual:normal') {
              return 'export default "ok"'
            }
          },
        },
        ...(config.plugins ?? []),
      ],
      ...config,
    })
    t.environment = t.server.environments.ssr
    t.runner = createServerModuleRunner(t.environment, {
      hmr: {
        logger: false,
      },
      // don't override by default so Vitest source maps are correct
      sourcemapInterceptor: false,
      ...runnerConfig,
    })
    if (config.server?.watch) {
      await waitForWatcher(t.server)
    }
  })

  afterEach<TestClient>(async (t) => {
    await t.runner.close()
    await t.server.close()

Domain

Subdomains

Frequently Asked Questions

What does createModuleRunnerTester() do?
createModuleRunnerTester() is a function in the vite codebase, defined in packages/vite/src/node/ssr/runtime/__tests__/utils.ts.
Where is createModuleRunnerTester() defined?
createModuleRunnerTester() is defined in packages/vite/src/node/ssr/runtime/__tests__/utils.ts at line 20.
What does createModuleRunnerTester() call?
createModuleRunnerTester() calls 3 function(s): close, createServer, createServerModuleRunner.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free