(
entrypoint: string,
serverOptions: InlineConfig = {},
waitForFile: string = entrypoint,
initHmrState: Record<string, string> = {},
)
| 1101 | } |
| 1102 | |
| 1103 | async function setupModuleRunner( |
| 1104 | entrypoint: string, |
| 1105 | serverOptions: InlineConfig = {}, |
| 1106 | waitForFile: string = entrypoint, |
| 1107 | initHmrState: Record<string, string> = {}, |
| 1108 | ) { |
| 1109 | if (server) { |
| 1110 | await server.close() |
| 1111 | clientLogs.length = 0 |
| 1112 | serverLogs.length = 0 |
| 1113 | runner.clearCache() |
| 1114 | } |
| 1115 | |
| 1116 | globalThis.__HMR__ = initHmrState as any |
| 1117 | |
| 1118 | const logger = new HMRMockLogger() |
| 1119 | // @ts-expect-error not typed for HMR |
| 1120 | globalThis.log = (...msg) => logger.log(...msg) |
| 1121 | |
| 1122 | server = await createServer({ |
| 1123 | configFile: resolve(testDir, 'vite.config.ts'), |
| 1124 | root: testDir, |
| 1125 | customLogger: createInMemoryLogger(serverLogs), |
| 1126 | server: { |
| 1127 | middlewareMode: true, |
| 1128 | watch: { |
| 1129 | // During tests we edit the files too fast and sometimes chokidar |
| 1130 | // misses change events, so enforce polling for consistency |
| 1131 | usePolling: true, |
| 1132 | interval: 100, |
| 1133 | }, |
| 1134 | hmr: { |
| 1135 | port: 9609, |
| 1136 | }, |
| 1137 | preTransformRequests: false, |
| 1138 | }, |
| 1139 | environments: { |
| 1140 | ssr: { |
| 1141 | dev: { |
| 1142 | createEnvironment(name, config) { |
| 1143 | return createRunnableDevEnvironment(name, config, { |
| 1144 | runnerOptions: { hmr: { logger } }, |
| 1145 | }) |
| 1146 | }, |
| 1147 | }, |
| 1148 | }, |
| 1149 | }, |
| 1150 | optimizeDeps: { |
| 1151 | disabled: true, |
| 1152 | noDiscovery: true, |
| 1153 | include: [], |
| 1154 | }, |
| 1155 | ...serverOptions, |
| 1156 | }) |
| 1157 | |
| 1158 | runner = (server.environments.ssr as RunnableDevEnvironment).runner |
| 1159 | |
| 1160 | await waitForWatcher(server, waitForFile) |
no test coverage detected