@ -5,7 +5,6 @@ import { Header } from "@/components/Header";
// Mock the workflow store
// Mock the workflow store
const mockSetWorkflowMetadata = vi . fn ( ) ;
const mockSetWorkflowMetadata = vi . fn ( ) ;
const mockSaveToFile = vi . fn ( ) ;
const mockSaveToFile = vi . fn ( ) ;
const mockSaveAsFile = vi . fn ( ) ;
const mockLoadWorkflow = vi . fn ( ) ;
const mockLoadWorkflow = vi . fn ( ) ;
const mockUseWorkflowStore = vi . fn ( ) ;
const mockUseWorkflowStore = vi . fn ( ) ;
@ -46,7 +45,6 @@ const createDefaultState = (overrides = {}) => ({
isSaving : false ,
isSaving : false ,
setWorkflowMetadata : mockSetWorkflowMetadata ,
setWorkflowMetadata : mockSetWorkflowMetadata ,
saveToFile : mockSaveToFile ,
saveToFile : mockSaveToFile ,
saveAsFile : mockSaveAsFile ,
loadWorkflow : mockLoadWorkflow ,
loadWorkflow : mockLoadWorkflow ,
getNodesWithComments : mockGetNodesWithComments ,
getNodesWithComments : mockGetNodesWithComments ,
getUnviewedCommentCount : mockGetUnviewedCommentCount ,
getUnviewedCommentCount : mockGetUnviewedCommentCount ,
@ -59,7 +57,6 @@ const createDefaultState = (overrides = {}) => ({
describe ( "Header" , ( ) = > {
describe ( "Header" , ( ) = > {
beforeEach ( ( ) = > {
beforeEach ( ( ) = > {
vi . clearAllMocks ( ) ;
vi . clearAllMocks ( ) ;
mockSaveAsFile . mockResolvedValue ( true ) ;
// Default mock implementation - unconfigured project
// Default mock implementation - unconfigured project
mockGetNodesWithComments . mockReturnValue ( [ ] ) ;
mockGetNodesWithComments . mockReturnValue ( [ ] ) ;
mockGetUnviewedCommentCount . mockReturnValue ( 0 ) ;
mockGetUnviewedCommentCount . mockReturnValue ( 0 ) ;
@ -327,42 +324,6 @@ describe("Header", () => {
} ) ;
} ) ;
} ) ;
} ) ;
describe ( "Save As Button" , ( ) = > {
beforeEach ( ( ) = > {
mockUseWorkflowStore . mockImplementation ( ( selector ) = > {
return selector ( createDefaultState ( {
workflowName : "My Project" ,
workflowId : "project-123" ,
saveDirectoryPath : "/path/to/project" ,
} ) ) ;
} ) ;
} ) ;
it ( "should render Save As button for configured project" , ( ) = > {
render ( < Header / > ) ;
expect ( screen . getByTitle ( "Save as new workflow" ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( "should call saveAsFile with the prompted name" , ( ) = > {
const promptSpy = vi . spyOn ( window , "prompt" ) . mockReturnValue ( "Version 2" ) ;
render ( < Header / > ) ;
fireEvent . click ( screen . getByTitle ( "Save as new workflow" ) ) ;
expect ( mockSaveAsFile ) . toHaveBeenCalledWith ( "Version 2" ) ;
promptSpy . mockRestore ( ) ;
} ) ;
it ( "should not call saveAsFile when prompt is cancelled" , ( ) = > {
const promptSpy = vi . spyOn ( window , "prompt" ) . mockReturnValue ( null ) ;
render ( < Header / > ) ;
fireEvent . click ( screen . getByTitle ( "Save as new workflow" ) ) ;
expect ( mockSaveAsFile ) . not . toHaveBeenCalled ( ) ;
promptSpy . mockRestore ( ) ;
} ) ;
} ) ;
describe ( "Settings Button" , ( ) = > {
describe ( "Settings Button" , ( ) = > {
it ( "should open ProjectSetupModal in 'settings' mode when settings button clicked" , ( ) = > {
it ( "should open ProjectSetupModal in 'settings' mode when settings button clicked" , ( ) = > {