Skip to content

Commit a756e6b

Browse files
author
mapaski
committed
test(ui): add responsive rendering tests for ComparisonStatsCard (JhaSourav07#1530)
1 parent 4538996 commit a756e6b

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

components/dashboard/ComparisonStatsCard.test.tsx

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,82 @@ describe('ComparisonStatsCard', () => {
146146
expect(screen.queryByText('Winner')).toBeNull();
147147
});
148148
});
149+
150+
describe('ComparisonStatsCard responsive rendering and growth trends (Variation 3)', () => {
151+
it('renders positive growth trend with winner badge for higher value', () => {
152+
render(
153+
<ComparisonStatsCard
154+
title="Streak"
155+
valueA={120}
156+
valueB={40}
157+
labelA="Alice"
158+
labelB="Bob"
159+
icon="Flame"
160+
/>
161+
);
162+
expect(screen.getByText('Winner')).toBeDefined();
163+
expect(screen.getByText('120')).toBeDefined();
164+
expect(screen.getByText('40')).toBeDefined();
165+
});
166+
167+
it('renders negative growth indicator — no winner badge for lower value', () => {
168+
render(
169+
<ComparisonStatsCard
170+
title="Streak"
171+
valueA={20}
172+
valueB={80}
173+
labelA="Alice"
174+
labelB="Bob"
175+
icon="Flame"
176+
/>
177+
);
178+
const winners = screen.getAllByText('Winner');
179+
expect(winners.length).toBe(1);
180+
expect(screen.getByText('20').className).not.toMatch(/emerald/);
181+
});
182+
183+
it('renders title and icon correctly', () => {
184+
render(
185+
<ComparisonStatsCard
186+
title="Pull Requests"
187+
valueA={10}
188+
valueB={5}
189+
labelA="Dev A"
190+
labelB="Dev B"
191+
icon="GitBranch"
192+
/>
193+
);
194+
expect(screen.getByText(/Pull Requests/i)).toBeDefined();
195+
expect(screen.getByText('Dev A')).toBeDefined();
196+
expect(screen.getByText('Dev B')).toBeDefined();
197+
});
198+
199+
it('renders zero values without crashing', () => {
200+
render(
201+
<ComparisonStatsCard
202+
title="Commits"
203+
valueA={0}
204+
valueB={0}
205+
labelA="Alice"
206+
labelB="Bob"
207+
icon="GitCommit"
208+
/>
209+
);
210+
expect(screen.queryByText('Winner')).toBeNull();
211+
});
212+
213+
it('renders large values correctly', () => {
214+
render(
215+
<ComparisonStatsCard
216+
title="Total Contributions"
217+
valueA={9999}
218+
valueB={1}
219+
labelA="Alice"
220+
labelB="Bob"
221+
icon="TrendingUp"
222+
/>
223+
);
224+
expect(screen.getByText('9999')).toBeDefined();
225+
expect(screen.getByText('Winner')).toBeDefined();
226+
});
227+
});

0 commit comments

Comments
 (0)