apisurf
Version:
Analyze API surface changes between npm package versions to catch breaking changes
43 lines (42 loc) • 1.83 kB
JavaScript
import { describe, it, expect } from '@jest/globals';
import { formatValidationOutput } from './formatValidationOutput.js';
describe('formatValidationOutput', () => {
it('formatValidationOutput returns success message when no violations', () => {
const result = {
hasViolations: false,
violations: [],
summary: 'No semver violations detected'
};
const output = formatValidationOutput(result, 'console');
expect(output).toBe('✅ No semver violations detected in dependencies');
});
it('formatValidationOutput returns JSON when format is json', () => {
const result = {
hasViolations: false,
violations: [],
summary: 'No semver violations detected'
};
const output = formatValidationOutput(result, 'json');
const parsed = JSON.parse(output);
expect(parsed.hasViolations).toBe(false);
expect(parsed.summary).toBe('No semver violations detected');
});
it('formatValidationOutput shows violations when detected', () => {
const result = {
hasViolations: true,
violations: [{
packageName: 'test-package',
oldVersion: '1.0.0',
newVersion: '1.1.0',
violationType: 'major-in-minor',
breakingChanges: ['Removed function: oldApi']
}],
summary: 'Semver violations detected'
};
const output = formatValidationOutput(result, 'console');
expect(output).toMatch(/❌ Semver violations detected/);
expect(output).toMatch(/test-package: 1\.0\.0 → 1\.1\.0/);
expect(output).toMatch(/major-in-minor/);
expect(output).toMatch(/Removed function: oldApi/);
});
});