From bbdd929f6157a8154e4a8366669fd541e3ec64e6 Mon Sep 17 00:00:00 2001 From: Subhooo5 Date: Thu, 28 May 2026 14:12:01 +0530 Subject: [PATCH] test(generator): add coverage for exact SVG dimensions per size parameter --- app/api/streak/route.ts | 7 +------ lib/svg/generator.test.ts | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/app/api/streak/route.ts b/app/api/streak/route.ts index 046db01e..b7c28d25 100644 --- a/app/api/streak/route.ts +++ b/app/api/streak/route.ts @@ -2,12 +2,7 @@ import { NextResponse } from 'next/server'; import { fetchGitHubContributions } from '../../../lib/github'; import { calculateStreak, calculateMonthlyStats } from '../../../lib/calculate'; -import { - generateNotFoundSVG, - generateSVG, - generateMonthlySVG, - escapeXML, -} from '../../../lib/svg/generator'; +import { generateNotFoundSVG, generateSVG, generateMonthlySVG } from '../../../lib/svg/generator'; import { getSecondsUntilUTCMidnight, getSecondsUntilMidnightInTimezone } from '../../../utils/time'; import type { BadgeParams } from '../../../types'; import { themes } from '../../../lib/svg/themes'; diff --git a/lib/svg/generator.test.ts b/lib/svg/generator.test.ts index 8a51c255..3b96131a 100644 --- a/lib/svg/generator.test.ts +++ b/lib/svg/generator.test.ts @@ -511,6 +511,41 @@ describe('generateSVG', () => { expect(svg).not.toContain('fill="white" fill-opacity="0.2"'); }); }); + + describe('SVG dimensions per size', () => { + it('renders width="600" and height="420" for medium size (default)', () => { + const svg = generateSVG( + mockStats, + { user: 'avi', size: 'medium' } as unknown as BadgeParams, + mockCalendar + ); + + expect(svg).toContain('width="600"'); + expect(svg).toContain('height="420"'); + }); + + it('renders width="400" and height="280" for small size', () => { + const svg = generateSVG( + mockStats, + { user: 'avi', size: 'small' } as unknown as BadgeParams, + mockCalendar + ); + + expect(svg).toContain('width="400"'); + expect(svg).toContain('height="280"'); + }); + + it('renders width="800" and height="560" for large size', () => { + const svg = generateSVG( + mockStats, + { user: 'avi', size: 'large' } as unknown as BadgeParams, + mockCalendar + ); + + expect(svg).toContain('width="800"'); + expect(svg).toContain('height="560"'); + }); + }); }); describe('generateMonthlySVG', () => {