Skip to content

Commit

Permalink
chore: enable hmr test
Browse files Browse the repository at this point in the history
  • Loading branch information
sheremet-va committed Dec 1, 2023
1 parent 1a0b7cb commit ca7165c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 16 deletions.
24 changes: 14 additions & 10 deletions packages/vite/src/node/ssr/runtime/__tests__/server-hmr.spec.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
import { afterEach, describe, expect, it } from 'vitest'
import { createTestClient, editFile, resolvePath, waitUntil } from './utils'

describe.skip('vite-server-runetime hmr works as expected', async () => {
const { runtime, stdout, restoreConsole } = await createTestClient({
server: {
watch: {
cwd: resolvePath(import.meta.url, './fixtures'),
describe('vite-server-runetime hmr works as expected', async () => {
const { runtime, stdout, restoreConsole, waitForWatcher } =
await createTestClient(
{
server: {
// override watch options because it's disabled by default
watch: {},
},
},
},
})
{ printLog: true },
)
afterEach(() => {
restoreConsole()
})

it('correctly reruns ssr code', async () => {
// const path = resolvePath(import.meta.url, './fixtures/simple.js')
const mod = await runtime.executeId('./fixtures/simple.js')
const [mod] = await runtime.executeEntrypoints(['./fixtures/simple.js'])
expect(mod.test).toEqual('I am initialized')
expect(stdout()).toMatch('I am initialized')

await waitForWatcher()

editFile(resolvePath(import.meta.url, './fixtures/simple.js'), (content) =>
content.replace(/initialized/g, 'changed'),
)
Expand All @@ -27,5 +31,5 @@ describe.skip('vite-server-runetime hmr works as expected', async () => {
const mod2 = await runtime.executeId('./fixtures/simple.js')
expect(mod2.test).toEqual('I am changed')
expect(stdout()).toMatch('I am changed')
}, 5_000)
}, 10_000)
})
30 changes: 24 additions & 6 deletions packages/vite/src/node/ssr/runtime/__tests__/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,35 +14,40 @@ interface TestClient {
restoreConsole(): void
stdout(): string
stderr(): string
waitForWatcher(): Promise<void>
server: ViteDevServer
runtime: ViteRuntime
}

export async function createTestClient(
config: InlineConfig = {},
{ printLog }: { printLog?: boolean } = {},
): Promise<TestClient> {
const server = await createServer({
root: __dirname,
logLevel: 'error',
server: {
watch: {
ignored: ['**/*'],
},
watch: null,
},
...config,
})

const { restore, getLogs, originalConsole } = captureLogs()
const { restore, getLogs, printLogs, originalConsole } = captureLogs()

const runtime = await createViteRuntime(server as any)

beforeEach(({ onTestFailed }) => {
onTestFailed(() => {
if (getLogs().stderr) originalConsole.error(getLogs().stderr)
if (getLogs().stdout) originalConsole.log(getLogs().stdout)
printLogs()
})
})

afterEach(() => {
if (printLog) {
printLogs()
}
})

afterAll(async () => {
restore()
await server.close()
Expand All @@ -56,6 +61,15 @@ export async function createTestClient(
stderr() {
return getLogs().stderr
},
waitForWatcher() {
return new Promise<void>((resolve) => {
const cb = () => {
resolve()
server.watcher.off('ready', cb)
}
server.watcher.on('ready', cb)
})
},
server,
runtime,
}
Expand Down Expand Up @@ -101,6 +115,10 @@ function captureLogs() {
stderr: stripAnsi(stderr.join('')),
}
},
printLogs() {
originalConsole.log(stripAnsi(stdout.join('')))
originalConsole.error(stripAnsi(stderr.join('')))
},
get originalConsole() {
return originalConsole
},
Expand Down

0 comments on commit ca7165c

Please sign in to comment.