From f0c5461fbaf9b7c07cd186b7a67a6f91ca39513e Mon Sep 17 00:00:00 2001 From: lucaronin Date: Fri, 20 Feb 2026 23:50:12 +0100 Subject: [PATCH] test: add tests for sidebar + button create-from-type feature - Test that + buttons render for all 7 section groups - Test that clicking + calls onCreateType with correct type - Test that + buttons are hidden when callback not provided Co-Authored-By: Claude Opus 4.6 --- src/components/Sidebar.test.tsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/components/Sidebar.test.tsx b/src/components/Sidebar.test.tsx index 1d79cb5f..e82eeb66 100644 --- a/src/components/Sidebar.test.tsx +++ b/src/components/Sidebar.test.tsx @@ -234,6 +234,25 @@ describe('Sidebar', () => { }) }) + it('renders + buttons for each section group when onCreateType is provided', () => { + const onCreateType = vi.fn() + render( {}} onCreateType={onCreateType} />) + const createButtons = screen.getAllByTitle(/^New /) + expect(createButtons.length).toBe(7) // Projects, Experiments, Responsibilities, Procedures, People, Events, Topics + }) + + it('calls onCreateType with correct type when + button is clicked', () => { + const onCreateType = vi.fn() + render( {}} onCreateType={onCreateType} />) + fireEvent.click(screen.getByTitle('New Project')) + expect(onCreateType).toHaveBeenCalledWith('Project') + }) + + it('does not render + buttons when onCreateType is not provided', () => { + render( {}} />) + expect(screen.queryByTitle('New Project')).not.toBeInTheDocument() + }) + it('renders commit button even when no modified files', () => { render( {}} onCommitPush={() => {}} />) expect(screen.getByText('Commit & Push')).toBeInTheDocument()