import { describe, it, expect } from 'vitest' import { parseCollection } from '../../src/parser/collection.js' describe('parseCollection', () => { it('parses minimal collection', () => { const yaml = ` opencollection: 1.0.0 info: name: My Collection ` const result = parseCollection(yaml) expect(result.info.name).toBe('My Collection') expect(result.specVersion).toBe('1.0.0') }) it('parses proxy config', () => { const yaml = ` info: name: Collection config: proxy: protocol: http hostname: proxy.example.com port: "8080" ` const result = parseCollection(yaml) expect(result.config?.proxy?.protocol).toBe('http') expect(result.config?.proxy?.hostname).toBe('proxy.example.com') expect(result.config?.proxy?.port).toBe('8080') }) it('parses collection-level request defaults with bearer auth', () => { const yaml = ` info: name: Collection request: auth: type: bearer bearer: token: "{{token}}" headers: - name: X-Custom value: val ` const result = parseCollection(yaml) expect(result.request?.auth?.type).toBe('bearer') expect(result.request?.auth?.bearer?.token).toBe('{{token}}') expect(result.request?.headers).toHaveLength(1) }) it('throws on missing info.name', () => { const yaml = ` info: summary: Missing name ` expect(() => parseCollection(yaml)).toThrow("Missing required field 'info.name'") }) })