Skip to content

Commit

Permalink
chore: check for darwin
Browse files Browse the repository at this point in the history
  • Loading branch information
sheremet-va committed Aug 28, 2023
1 parent 31ce44d commit e71b1b5
Showing 1 changed file with 45 additions and 37 deletions.
82 changes: 45 additions & 37 deletions packages/vite/src/node/server/__tests__/watcher.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,46 +13,54 @@ afterEach(() => {
)
})

// watcher is unstable on macos and windows
describe.skipIf(process.platform === 'darwin' || process.platform === 'win32')(
'watcher configuration',
() => {
it("when watcher is disabled, editing files doesn't trigger watcher", async () => {
const server = await createServer({
server: {
watch: null,
},
})
server.watcher.on('change', () => {
expect.unreachable()
})
// watcher is unstable on windows
describe.skipIf(process.platform === 'win32')('watcher configuration', () => {
it("when watcher is disabled, editing files doesn't trigger watcher", async () => {
const server = await createServer({
server: {
watch: null,
},
})
server.watcher.on('change', () => {
expect.unreachable()
})

server.watcher.add(resolve(__dirname, 'fixtures/watched/index.js'))
writeFileSync(
resolve(__dirname, 'fixtures/watched/index.js'),
'export const test = "new text"',
)
server.watcher.add(resolve(__dirname, 'fixtures/watched/index.js'))
writeFileSync(
resolve(__dirname, 'fixtures/watched/index.js'),
'export const test = "new text"',
)

// make sure watcher doesn't trigger
await new Promise((resolve) => setTimeout(resolve, 500))
// make sure watcher doesn't trigger
await new Promise((resolve) => setTimeout(resolve, 500))
})

it('when watcher is not disable, editing files triggers watcher', async () => {
expect.assertions(1)
const server = await createServer({
server: {
// "ready" event might not be triggered on macos otherwise
watch:
process.platform === 'darwin'
? {
useFsEvents: false,
usePolling: false,
}
: {},
},
})
const filename = resolve(__dirname, 'fixtures/watched/index.js')

return new Promise<void>((resolve) => {
server.watcher.on('change', (e) => {
expect(e).toMatch('/fixtures/watched/index.js')
resolve()
})

it('when watcher is not disable, editing files triggers watcher', async () => {
expect.assertions(1)
const server = await createServer()
const filename = resolve(__dirname, 'fixtures/watched/index.js')

return new Promise<void>((resolve) => {
server.watcher.on('change', (e) => {
expect(e).toMatch('/fixtures/watched/index.js')
resolve()
})

server.watcher.on('ready', () => {
server.watcher.add(filename)
writeFileSync(filename, 'export const test = "new text"')
})
server.watcher.on('ready', () => {
server.watcher.add(filename)
writeFileSync(filename, 'export const test = "new text"')
})
})
},
)
})
})

0 comments on commit e71b1b5

Please sign in to comment.