Home / File/ server-hmr.spec.ts — vite Source File

server-hmr.spec.ts — vite Source File

Architecture documentation for server-hmr.spec.ts, a typescript file in the vite codebase. 3 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  775ecb56_4db0_0d0c_97c0_c3ebaceb5fa7["server-hmr.spec.ts"]
  01ea9ea3_8399_6861_2813_c2cb84e13dbd["utils.ts"]
  775ecb56_4db0_0d0c_97c0_c3ebaceb5fa7 --> 01ea9ea3_8399_6861_2813_c2cb84e13dbd
  b86d82d7_be96_2a5f_c2dd_462307e1507d["createModuleRunnerTester"]
  775ecb56_4db0_0d0c_97c0_c3ebaceb5fa7 --> b86d82d7_be96_2a5f_c2dd_462307e1507d
  a340ba46_b2b7_3048_3bb3_6907a74c8464["vitest"]
  775ecb56_4db0_0d0c_97c0_c3ebaceb5fa7 --> a340ba46_b2b7_3048_3bb3_6907a74c8464
  style 775ecb56_4db0_0d0c_97c0_c3ebaceb5fa7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { describe, expect } from 'vitest'
import { createModuleRunnerTester } from './utils'

describe(
  'module runner hmr works as expected',
  async () => {
    const it = await createModuleRunnerTester({
      server: {
        // override watch options because it's disabled by default
        watch: {},
      },
    })

    it('hmr options are defined', async ({ runner }) => {
      expect(runner.hmrClient).toBeDefined()

      const mod = await runner.import('/fixtures/hmr.js')
      expect(mod).toHaveProperty('hmr')
      expect(mod.hmr).toHaveProperty('accept')
    })

    it('correctly populates hmr client', async ({ runner }) => {
      const mod = await runner.import('/fixtures/d')
      expect(mod.d).toBe('a')

      const fixtureC = '/fixtures/c.ts'
      const fixtureD = '/fixtures/d.ts'

      expect(runner.hmrClient!.hotModulesMap.size).toBe(2)
      expect(runner.hmrClient!.dataMap.size).toBe(2)
      expect(runner.hmrClient!.ctxToListenersMap.size).toBe(2)

      for (const fixture of [fixtureC, fixtureD]) {
        expect(runner.hmrClient!.hotModulesMap.has(fixture)).toBe(true)
        expect(runner.hmrClient!.dataMap.has(fixture)).toBe(true)
        expect(runner.hmrClient!.ctxToListenersMap.has(fixture)).toBe(true)
      }
    })
  },
  process.env.CI ? 50_00 : 5_000,
)

Domain

Frequently Asked Questions

What does server-hmr.spec.ts do?
server-hmr.spec.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain.
What does server-hmr.spec.ts depend on?
server-hmr.spec.ts imports 3 module(s): createModuleRunnerTester, utils.ts, vitest.
Where is server-hmr.spec.ts in the architecture?
server-hmr.spec.ts is located at packages/vite/src/node/ssr/runtime/__tests__/server-hmr.spec.ts (domain: ViteCore, directory: packages/vite/src/node/ssr/runtime/__tests__).

Analyze Your Own Codebase

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

Try Supermodel Free