diff options
Diffstat (limited to 'packages/cli/src/ui/components/StatsDisplay.test.tsx')
| -rw-r--r-- | packages/cli/src/ui/components/StatsDisplay.test.tsx | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/packages/cli/src/ui/components/StatsDisplay.test.tsx b/packages/cli/src/ui/components/StatsDisplay.test.tsx index eed105e3..6d6fa809 100644 --- a/packages/cli/src/ui/components/StatsDisplay.test.tsx +++ b/packages/cli/src/ui/components/StatsDisplay.test.tsx @@ -50,6 +50,10 @@ describe('<StatsDisplay />', () => { totalDecisions: { accept: 0, reject: 0, modify: 0 }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(zeroMetrics); @@ -96,6 +100,10 @@ describe('<StatsDisplay />', () => { totalDecisions: { accept: 0, reject: 0, modify: 0 }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(metrics); @@ -139,6 +147,10 @@ describe('<StatsDisplay />', () => { }, }, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(metrics); @@ -172,6 +184,10 @@ describe('<StatsDisplay />', () => { }, }, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(metrics); @@ -206,6 +222,10 @@ describe('<StatsDisplay />', () => { totalDecisions: { accept: 0, reject: 0, modify: 0 }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(metrics); @@ -228,6 +248,10 @@ describe('<StatsDisplay />', () => { totalDecisions: { accept: 0, reject: 0, modify: 0 }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(metrics); expect(lastFrame()).toMatchSnapshot(); @@ -244,6 +268,10 @@ describe('<StatsDisplay />', () => { totalDecisions: { accept: 0, reject: 0, modify: 0 }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(metrics); expect(lastFrame()).toMatchSnapshot(); @@ -260,12 +288,68 @@ describe('<StatsDisplay />', () => { totalDecisions: { accept: 0, reject: 0, modify: 0 }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; const { lastFrame } = renderWithMockedStats(metrics); expect(lastFrame()).toMatchSnapshot(); }); }); + describe('Code Changes Display', () => { + it('displays Code Changes when line counts are present', () => { + const metrics: SessionMetrics = { + models: {}, + tools: { + totalCalls: 1, + totalSuccess: 1, + totalFail: 0, + totalDurationMs: 100, + totalDecisions: { accept: 0, reject: 0, modify: 0 }, + byName: {}, + }, + files: { + totalLinesAdded: 42, + totalLinesRemoved: 18, + }, + }; + + const { lastFrame } = renderWithMockedStats(metrics); + const output = lastFrame(); + + expect(output).toContain('Code Changes:'); + expect(output).toContain('+42'); + expect(output).toContain('-18'); + expect(output).toMatchSnapshot(); + }); + + it('hides Code Changes when no lines are added or removed', () => { + const metrics: SessionMetrics = { + models: {}, + tools: { + totalCalls: 1, + totalSuccess: 1, + totalFail: 0, + totalDurationMs: 100, + totalDecisions: { accept: 0, reject: 0, modify: 0 }, + byName: {}, + }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, + }; + + const { lastFrame } = renderWithMockedStats(metrics); + const output = lastFrame(); + + expect(output).not.toContain('Code Changes:'); + expect(output).toMatchSnapshot(); + }); + }); + describe('Title Rendering', () => { const zeroMetrics: SessionMetrics = { models: {}, @@ -277,6 +361,10 @@ describe('<StatsDisplay />', () => { totalDecisions: { accept: 0, reject: 0, modify: 0 }, byName: {}, }, + files: { + totalLinesAdded: 0, + totalLinesRemoved: 0, + }, }; it('renders the default title when no title prop is provided', () => { |
