Skip to content

Commit

Permalink
test: improve watcher check
Browse files Browse the repository at this point in the history
  • Loading branch information
sheremet-va committed Jan 10, 2024
1 parent 493730f commit d57c49a
Showing 1 changed file with 31 additions and 14 deletions.
45 changes: 31 additions & 14 deletions playground/hmr-ssr/__tests__/hmr.spec.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import fs from 'node:fs'
import fs, { FSWatcher } from 'node:fs'
import { fileURLToPath } from 'node:url'
import { dirname, resolve } from 'node:path'
import { dirname, join, posix, resolve } from 'node:path'
import EventEmitter from 'node:events'
import { afterAll, beforeAll, describe, expect, test, vi } from 'vitest'
import type { InlineConfig, Logger, ViteDevServer } from 'vite'
import { createServer, createViteRuntime } from 'vite'
import { ViteRuntimeHMRLogger } from 'vite/runtime'
import type { ViteRuntime } from 'vite/runtime'
import type { RollupError } from 'rollup'
import { page, promiseWithResolvers, untilUpdated } from '~utils'
import { page, promiseWithResolvers, slash, untilUpdated } from '~utils'

let server: ViteDevServer
const clientLogs: string[] = []
Expand Down Expand Up @@ -490,7 +490,7 @@ describe('acceptExports', () => {

beforeAll(async () => {
await untilConsoleLogAfter(
() => setupViteRuntime(`/${testDir}`),
() => setupViteRuntime(`/${testDir}/index`),
[CONNECTED, />>>>>>/],
(logs) => {
expect(logs).toContain(`<<< named: ${a} ; ${dep}`)
Expand Down Expand Up @@ -544,7 +544,7 @@ describe('acceptExports', () => {
const file = 'side-effects.ts'

await untilConsoleLogAfter(
() => setupViteRuntime(`/${testDir}`),
() => setupViteRuntime(`/${testDir}/index`),
[CONNECTED, />>>/],
(logs) => {
expect(logs).toContain('>>> side FX')
Expand Down Expand Up @@ -573,7 +573,7 @@ describe('acceptExports', () => {
const url = '/' + file

await untilConsoleLogAfter(
() => setupViteRuntime(`/${testDir}`),
() => setupViteRuntime(`/${testDir}/index`),
[CONNECTED, '-- unused --'],
(logs) => {
expect(logs).toContain('-- unused --')
Expand All @@ -596,7 +596,7 @@ describe('acceptExports', () => {
const file = `${testDir}/${fileName}`

await untilConsoleLogAfter(
() => setupViteRuntime(`/${testDir}`),
() => setupViteRuntime(`/${testDir}/index`),
[CONNECTED, '-- used --', 'used:foo0'],
(logs) => {
expect(logs).toContain('-- used --')
Expand Down Expand Up @@ -663,7 +663,7 @@ describe('acceptExports', () => {
const file = `${testDir}/${fileName}`

await untilConsoleLogAfter(
() => setupViteRuntime(`/${testDir}/`),
() => setupViteRuntime(`/${testDir}/index`),
[CONNECTED, '>>> ready <<<'],
(logs) => {
expect(logs).toContain('loaded:some:a0b0c0default0')
Expand Down Expand Up @@ -985,13 +985,30 @@ async function untilConsoleLog(
return logsMessages
}

function waitForWatcher(server: ViteDevServer) {
function isWatched(server: ViteDevServer, watchedFile: string) {
const watched = server.watcher.getWatched()
for (const [dir, files] of Object.entries(watched)) {
const unixDir = slash(dir)
for (const file of files) {
const filePath = posix.join(unixDir, file)
if (filePath.includes(watchedFile)) {
return true
}
}
}
return false
}

function waitForWatcher(server: ViteDevServer, watched: string) {
return new Promise<void>((resolve) => {
if ((server.watcher as any)._readyEmitted) {
resolve()
} else {
server.watcher.once('ready', () => resolve())
function checkWatched() {
if (isWatched(server, watched)) {
resolve()
} else {
setTimeout(checkWatched, 20)
}
}
checkWatched()
})
}

Expand Down Expand Up @@ -1076,7 +1093,7 @@ async function setupViteRuntime(
},
})

await waitForWatcher(server)
await waitForWatcher(server, entrypoint)

await runtime.executeUrl(entrypoint, true)

Expand Down

0 comments on commit d57c49a

Please sign in to comment.