import { describe, expect, it } from 'vitest'; import { supportsApiContract } from './contract'; describe('API contract compatibility', () => { it('accepts compatible SemVer releases in the supported major', () => { expect(supportsApiContract('8.0.0')).toBe(true); expect(supportsApiContract('8.8.2')).toBe(true); expect(supportsApiContract('8.2.0-rc.1')).toBe(true); }); it('rejects a breaking major and malformed versions', () => { expect(supportsApiContract('3.0.0')).toBe(false); expect(supportsApiContract('4.0.0')).toBe(false); expect(supportsApiContract('5.0.0')).toBe(false); expect(supportsApiContract('6.1.0')).toBe(false); expect(supportsApiContract('7.0.0')).toBe(false); expect(supportsApiContract('01.0.0')).toBe(false); expect(supportsApiContract(undefined)).toBe(false); }); });