@@ -34,12 +34,36 @@ describe('modelScanCommand', () => {
3434 let program : Command ;
3535 let mockExit : MockInstance ;
3636
37- beforeEach ( ( ) => {
37+ beforeEach ( async ( ) => {
3838 program = new Command ( ) ;
3939 mockExit = vi . spyOn ( process , 'exit' ) . mockImplementation ( function ( ) {
4040 return undefined as never ;
4141 } ) ;
4242 vi . clearAllMocks ( ) ;
43+
44+ // Reset mock implementations (clearAllMocks only clears call history, not implementations)
45+ vi . mocked ( spawn ) . mockReset ( ) ;
46+ const { getModelAuditCurrentVersion } = await import ( '../../src/updates' ) ;
47+ vi . mocked ( getModelAuditCurrentVersion ) . mockReset ( ) ;
48+ vi . mocked ( getModelAuditCurrentVersion ) . mockResolvedValue ( '0.2.16' ) ;
49+
50+ // Reset ModelAudit mock to default (no existing scan found)
51+ const ModelAudit = ( await import ( '../../src/models/modelAudit' ) ) . default ;
52+ vi . mocked ( ModelAudit . findByRevision ) . mockReset ( ) ;
53+ vi . mocked ( ModelAudit . findByRevision ) . mockResolvedValue ( null ) ;
54+ vi . mocked ( ModelAudit . create ) . mockReset ( ) ;
55+ vi . mocked ( ModelAudit . create ) . mockResolvedValue ( { id : 'scan-abc-2025-01-01T00:00:00' } as any ) ;
56+
57+ // Reset HuggingFace mocks
58+ const { isHuggingFaceModel, getHuggingFaceMetadata, parseHuggingFaceModel } = await import (
59+ '../../src/util/huggingfaceMetadata'
60+ ) ;
61+ vi . mocked ( isHuggingFaceModel ) . mockReset ( ) ;
62+ vi . mocked ( isHuggingFaceModel ) . mockReturnValue ( false ) ;
63+ vi . mocked ( getHuggingFaceMetadata ) . mockReset ( ) ;
64+ vi . mocked ( getHuggingFaceMetadata ) . mockResolvedValue ( null ) ;
65+ vi . mocked ( parseHuggingFaceModel ) . mockReset ( ) ;
66+ vi . mocked ( parseHuggingFaceModel ) . mockReturnValue ( null ) ;
4367 } ) ;
4468
4569 afterEach ( ( ) => {
@@ -299,12 +323,36 @@ describe('Re-scan on version change behavior', () => {
299323 let program : Command ;
300324 let mockExit : MockInstance ;
301325
302- beforeEach ( ( ) => {
326+ beforeEach ( async ( ) => {
303327 program = new Command ( ) ;
304328 mockExit = vi . spyOn ( process , 'exit' ) . mockImplementation ( function ( ) {
305329 return undefined as never ;
306330 } ) ;
307331 vi . clearAllMocks ( ) ;
332+
333+ // Reset mock implementations (clearAllMocks only clears call history, not implementations)
334+ vi . mocked ( spawn ) . mockReset ( ) ;
335+ const { getModelAuditCurrentVersion } = await import ( '../../src/updates' ) ;
336+ vi . mocked ( getModelAuditCurrentVersion ) . mockReset ( ) ;
337+ vi . mocked ( getModelAuditCurrentVersion ) . mockResolvedValue ( '0.2.16' ) ;
338+
339+ // Reset ModelAudit mock to default (no existing scan found)
340+ const ModelAudit = ( await import ( '../../src/models/modelAudit' ) ) . default ;
341+ vi . mocked ( ModelAudit . findByRevision ) . mockReset ( ) ;
342+ vi . mocked ( ModelAudit . findByRevision ) . mockResolvedValue ( null ) ;
343+ vi . mocked ( ModelAudit . create ) . mockReset ( ) ;
344+ vi . mocked ( ModelAudit . create ) . mockResolvedValue ( { id : 'scan-abc-2025-01-01T00:00:00' } as any ) ;
345+
346+ // Reset HuggingFace mocks
347+ const { isHuggingFaceModel, getHuggingFaceMetadata, parseHuggingFaceModel } = await import (
348+ '../../src/util/huggingfaceMetadata'
349+ ) ;
350+ vi . mocked ( isHuggingFaceModel ) . mockReset ( ) ;
351+ vi . mocked ( isHuggingFaceModel ) . mockReturnValue ( false ) ;
352+ vi . mocked ( getHuggingFaceMetadata ) . mockReset ( ) ;
353+ vi . mocked ( getHuggingFaceMetadata ) . mockResolvedValue ( null ) ;
354+ vi . mocked ( parseHuggingFaceModel ) . mockReset ( ) ;
355+ vi . mocked ( parseHuggingFaceModel ) . mockReturnValue ( null ) ;
308356 } ) ;
309357
310358 afterEach ( ( ) => {
@@ -495,8 +543,32 @@ describe('Re-scan on version change behavior', () => {
495543} ) ;
496544
497545describe ( 'checkModelAuditInstalled' , ( ) => {
498- beforeEach ( ( ) => {
546+ beforeEach ( async ( ) => {
499547 vi . clearAllMocks ( ) ;
548+
549+ // Reset mock implementations (clearAllMocks only clears call history, not implementations)
550+ vi . mocked ( spawn ) . mockReset ( ) ;
551+ const { getModelAuditCurrentVersion } = await import ( '../../src/updates' ) ;
552+ vi . mocked ( getModelAuditCurrentVersion ) . mockReset ( ) ;
553+ vi . mocked ( getModelAuditCurrentVersion ) . mockResolvedValue ( '0.2.16' ) ;
554+
555+ // Reset ModelAudit mock to default (no existing scan found)
556+ const ModelAudit = ( await import ( '../../src/models/modelAudit' ) ) . default ;
557+ vi . mocked ( ModelAudit . findByRevision ) . mockReset ( ) ;
558+ vi . mocked ( ModelAudit . findByRevision ) . mockResolvedValue ( null ) ;
559+ vi . mocked ( ModelAudit . create ) . mockReset ( ) ;
560+ vi . mocked ( ModelAudit . create ) . mockResolvedValue ( { id : 'scan-abc-2025-01-01T00:00:00' } as any ) ;
561+
562+ // Reset HuggingFace mocks
563+ const { isHuggingFaceModel, getHuggingFaceMetadata, parseHuggingFaceModel } = await import (
564+ '../../src/util/huggingfaceMetadata'
565+ ) ;
566+ vi . mocked ( isHuggingFaceModel ) . mockReset ( ) ;
567+ vi . mocked ( isHuggingFaceModel ) . mockReturnValue ( false ) ;
568+ vi . mocked ( getHuggingFaceMetadata ) . mockReset ( ) ;
569+ vi . mocked ( getHuggingFaceMetadata ) . mockResolvedValue ( null ) ;
570+ vi . mocked ( parseHuggingFaceModel ) . mockReset ( ) ;
571+ vi . mocked ( parseHuggingFaceModel ) . mockReturnValue ( null ) ;
500572 } ) ;
501573
502574 it ( 'should return installed: true and version when getModelAuditCurrentVersion returns version' , async ( ) => {
@@ -541,12 +613,36 @@ describe('Command Options Validation', () => {
541613 let program : Command ;
542614 let mockExit : MockInstance ;
543615
544- beforeEach ( ( ) => {
616+ beforeEach ( async ( ) => {
545617 program = new Command ( ) ;
546618 mockExit = vi . spyOn ( process , 'exit' ) . mockImplementation ( function ( ) {
547619 return undefined as never ;
548620 } ) ;
549621 vi . clearAllMocks ( ) ;
622+
623+ // Reset mock implementations (clearAllMocks only clears call history, not implementations)
624+ vi . mocked ( spawn ) . mockReset ( ) ;
625+ const { getModelAuditCurrentVersion } = await import ( '../../src/updates' ) ;
626+ vi . mocked ( getModelAuditCurrentVersion ) . mockReset ( ) ;
627+ vi . mocked ( getModelAuditCurrentVersion ) . mockResolvedValue ( '0.2.16' ) ;
628+
629+ // Reset ModelAudit mock to default (no existing scan found)
630+ const ModelAudit = ( await import ( '../../src/models/modelAudit' ) ) . default ;
631+ vi . mocked ( ModelAudit . findByRevision ) . mockReset ( ) ;
632+ vi . mocked ( ModelAudit . findByRevision ) . mockResolvedValue ( null ) ;
633+ vi . mocked ( ModelAudit . create ) . mockReset ( ) ;
634+ vi . mocked ( ModelAudit . create ) . mockResolvedValue ( { id : 'scan-abc-2025-01-01T00:00:00' } as any ) ;
635+
636+ // Reset HuggingFace mocks
637+ const { isHuggingFaceModel, getHuggingFaceMetadata, parseHuggingFaceModel } = await import (
638+ '../../src/util/huggingfaceMetadata'
639+ ) ;
640+ vi . mocked ( isHuggingFaceModel ) . mockReset ( ) ;
641+ vi . mocked ( isHuggingFaceModel ) . mockReturnValue ( false ) ;
642+ vi . mocked ( getHuggingFaceMetadata ) . mockReset ( ) ;
643+ vi . mocked ( getHuggingFaceMetadata ) . mockResolvedValue ( null ) ;
644+ vi . mocked ( parseHuggingFaceModel ) . mockReset ( ) ;
645+ vi . mocked ( parseHuggingFaceModel ) . mockReturnValue ( null ) ;
550646 } ) ;
551647
552648 afterEach ( ( ) => {
@@ -766,12 +862,36 @@ describe('Temp file JSON output (CLI UI fix)', () => {
766862 let program : Command ;
767863 let mockExit : MockInstance ;
768864
769- beforeEach ( ( ) => {
865+ beforeEach ( async ( ) => {
770866 program = new Command ( ) ;
771867 mockExit = vi . spyOn ( process , 'exit' ) . mockImplementation ( function ( ) {
772868 return undefined as never ;
773869 } ) ;
774870 vi . clearAllMocks ( ) ;
871+
872+ // Reset mock implementations (clearAllMocks only clears call history, not implementations)
873+ vi . mocked ( spawn ) . mockReset ( ) ;
874+ const { getModelAuditCurrentVersion } = await import ( '../../src/updates' ) ;
875+ vi . mocked ( getModelAuditCurrentVersion ) . mockReset ( ) ;
876+ vi . mocked ( getModelAuditCurrentVersion ) . mockResolvedValue ( '0.2.16' ) ;
877+
878+ // Reset ModelAudit mock to default (no existing scan found)
879+ const ModelAudit = ( await import ( '../../src/models/modelAudit' ) ) . default ;
880+ vi . mocked ( ModelAudit . findByRevision ) . mockReset ( ) ;
881+ vi . mocked ( ModelAudit . findByRevision ) . mockResolvedValue ( null ) ;
882+ vi . mocked ( ModelAudit . create ) . mockReset ( ) ;
883+ vi . mocked ( ModelAudit . create ) . mockResolvedValue ( { id : 'scan-abc-2025-01-01T00:00:00' } as any ) ;
884+
885+ // Reset HuggingFace mocks
886+ const { isHuggingFaceModel, getHuggingFaceMetadata, parseHuggingFaceModel } = await import (
887+ '../../src/util/huggingfaceMetadata'
888+ ) ;
889+ vi . mocked ( isHuggingFaceModel ) . mockReset ( ) ;
890+ vi . mocked ( isHuggingFaceModel ) . mockReturnValue ( false ) ;
891+ vi . mocked ( getHuggingFaceMetadata ) . mockReset ( ) ;
892+ vi . mocked ( getHuggingFaceMetadata ) . mockResolvedValue ( null ) ;
893+ vi . mocked ( parseHuggingFaceModel ) . mockReset ( ) ;
894+ vi . mocked ( parseHuggingFaceModel ) . mockReturnValue ( null ) ;
775895 } ) ;
776896
777897 afterEach ( ( ) => {
0 commit comments