vitestにて、beforeEachでvi.resetModules()を呼び出しているのに、キャッシュがクリアされない事象が発生した。調べたところ、トップレベルでのimportは対象にならない模様。
以下、引用
import { vi } from 'vitest'
import { data } from './data.js' // Will not get reevaluated beforeEach test
beforeEach(() => {
vi.resetModules()
})
test('change state', async () => {
const mod = await import('./some/path.js') // Will get reevaluated
mod.changeLocalState('new value')
expect(mod.getLocalState()).toBe('new value')
})
※説明文にも「トップレベルのインポートは再評価できません。」とハッキリ書いてあった。