From d396e4ba1eb1bdb7193a41d191f47d69361a142a Mon Sep 17 00:00:00 2001 From: Hardonian <118695431+Hardonian@users.noreply.github.com> Date: Sat, 23 May 2026 22:25:18 +0000 Subject: [PATCH] test: add tests for formatFindingAsMarkdown in github integration --- .../integrations/src/__tests__/github.test.ts | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 packages/integrations/src/__tests__/github.test.ts diff --git a/packages/integrations/src/__tests__/github.test.ts b/packages/integrations/src/__tests__/github.test.ts new file mode 100644 index 00000000..9854e49a --- /dev/null +++ b/packages/integrations/src/__tests__/github.test.ts @@ -0,0 +1,63 @@ +import { describe, it, expect } from 'vitest'; +import { formatFindingAsMarkdown } from '../github'; +import { AccessibilityFinding } from '../types'; + +describe('github integrations', () => { + describe('formatFindingAsMarkdown', () => { + const baseFinding: AccessibilityFinding = { + id: 'test-123', + url: 'https://example.com', + element: '', + wcagCriteria: '1.1.1 Non-text Content', + severity: 'serious', + description: 'Button has no accessible name', + help: 'Provide an accessible name for the button', + impact: 'high', + timestamp: '2023-10-27T10:00:00Z' + }; + + it('should format a finding with valid severity properly', () => { + const markdown = formatFindingAsMarkdown(baseFinding); + expect(markdown).toContain('🟠 **Severity:** SERIOUS'); + expect(markdown).toContain(baseFinding.description); + expect(markdown).toContain(baseFinding.help); + expect(markdown).toContain(baseFinding.impact); + expect(markdown).toContain(baseFinding.url); + expect(markdown).toContain(baseFinding.element!); + }); + + it('should format a finding with critical severity properly', () => { + const finding = { ...baseFinding, severity: 'critical' as const }; + const markdown = formatFindingAsMarkdown(finding); + expect(markdown).toContain('🔴 **Severity:** CRITICAL'); + }); + + it('should format a finding with moderate severity properly', () => { + const finding = { ...baseFinding, severity: 'moderate' as const }; + const markdown = formatFindingAsMarkdown(finding); + expect(markdown).toContain('🟡 **Severity:** MODERATE'); + }); + + it('should format a finding with minor severity properly', () => { + const finding = { ...baseFinding, severity: 'minor' as const }; + const markdown = formatFindingAsMarkdown(finding); + expect(markdown).toContain('🔵 **Severity:** MINOR'); + }); + + it('should handle missing element field', () => { + const findingWithoutElement = { ...baseFinding, element: undefined }; + const markdown = formatFindingAsMarkdown(findingWithoutElement); + expect(markdown).toContain('| Element | N/A |'); + }); + + it('should use fallback emoji for invalid or unexpected severity strings', () => { + // @ts-expect-error - Intentionally passing an invalid severity string to test the fallback behavior + const invalidFinding: AccessibilityFinding = { + ...baseFinding, + severity: 'unknown_severity_level' + }; + const markdown = formatFindingAsMarkdown(invalidFinding); + expect(markdown).toContain('⚪ **Severity:** UNKNOWN_SEVERITY_LEVEL'); + }); + }); +});