|
1 | 1 | import { promises as fs } from 'node:fs' |
2 | 2 | import { describe, expect, it, test } from 'vitest' |
3 | | -import { editFile, runVitest } from '../../test-utils' |
| 3 | +import { editFile, runInlineTests, runVitest } from '../../test-utils' |
4 | 4 |
|
5 | 5 | test.each(['threads', 'vmThreads'])('%s: print stdout and stderr correctly when called in the setup file', async (pool) => { |
6 | 6 | const { stdout, stderr } = await runVitest({ |
@@ -83,3 +83,52 @@ it('setup files resolution in nested folder with bare name', async () => { |
83 | 83 | } |
84 | 84 | `) |
85 | 85 | }) |
| 86 | + |
| 87 | +it('re-evaluates an extensionless setup file when isolation is disabled', async () => { |
| 88 | + const { stderr, testTree } = await runInlineTests({ |
| 89 | + 'vitest.config.js': ` |
| 90 | + export default { |
| 91 | + test: { |
| 92 | + isolate: false, |
| 93 | + maxWorkers: 1, |
| 94 | + setupFiles: ['./setup'], |
| 95 | + }, |
| 96 | + } |
| 97 | + `, |
| 98 | + 'setup.js': ` |
| 99 | + import { beforeEach } from 'vitest' |
| 100 | +
|
| 101 | + beforeEach(() => { |
| 102 | + globalThis.setupFileHookCalled = true |
| 103 | + }) |
| 104 | + `, |
| 105 | + 'a.test.js': ` |
| 106 | + import { expect, test } from 'vitest' |
| 107 | +
|
| 108 | + test('runs setup hook in a', () => { |
| 109 | + expect(globalThis.setupFileHookCalled).toBe(true) |
| 110 | + globalThis.setupFileHookCalled = false |
| 111 | + }) |
| 112 | + `, |
| 113 | + 'b.test.js': ` |
| 114 | + import { expect, test } from 'vitest' |
| 115 | +
|
| 116 | + test('runs setup hook in b', () => { |
| 117 | + expect(globalThis.setupFileHookCalled).toBe(true) |
| 118 | + globalThis.setupFileHookCalled = false |
| 119 | + }) |
| 120 | + `, |
| 121 | + }) |
| 122 | + |
| 123 | + expect(stderr).toBe('') |
| 124 | + expect(testTree()).toMatchInlineSnapshot(` |
| 125 | + { |
| 126 | + "a.test.js": { |
| 127 | + "runs setup hook in a": "passed", |
| 128 | + }, |
| 129 | + "b.test.js": { |
| 130 | + "runs setup hook in b": "passed", |
| 131 | + }, |
| 132 | + } |
| 133 | + `) |
| 134 | +}) |
0 commit comments