@@ -2,8 +2,6 @@ import { readFile } from 'fs/promises'
22
33import { beforeEach , describe , expect , test , vi } from 'vitest'
44
5- import getPackageJson from '../../../src/utils/get-package-json.mjs'
6-
75vi . mock ( 'fs/promises' , async ( importActual ) => {
86 const fs = await importActual ( )
97
@@ -14,20 +12,28 @@ vi.mock('fs/promises', async (importActual) => {
1412} )
1513
1614describe ( 'getPackageJson' , ( ) => {
17- beforeEach ( ( ) => {
15+ let getPackageJson
16+ beforeEach ( async ( ) => {
1817 vi . clearAllMocks ( )
18+ vi . resetModules ( )
19+ const newImport = await import ( '../../../src/utils/get-package-json.mjs' )
20+ getPackageJson = newImport . default
1921 } )
2022
2123 test ( 'should return the package.json of netlify-cli' , async ( ) => {
2224 const packageJson = await getPackageJson ( )
2325
2426 expect ( packageJson ) . not . toBeUndefined ( )
2527 expect ( packageJson . name ) . toBe ( 'netlify-cli' )
28+ } )
2629
30+ test ( 'should not re-read package.json' , async ( ) => {
31+ // first call reads from file-system
32+ await getPackageJson ( )
2733 expect ( readFile ) . toHaveBeenCalledOnce ( )
28- } )
34+ vi . mocked ( readFile ) . mockClear ( )
2935
30- test ( 'should not reread package.json' , async ( ) => {
36+ // second call should cache and not read from file-system
3137 const packageJson = await getPackageJson ( )
3238
3339 expect ( packageJson ) . not . toBeUndefined ( )
0 commit comments