UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

50 lines (41 loc) 1.37 kB
/** * Copyright Super iPaaS Integration LLC, an IBM Company 2024 */ import {RefParser} from '../../src/parsers/ref.parser.js'; jest.mock('../../src/service/log-wrapper.ts'); describe('RefParser', () => { let refParser: RefParser; beforeEach(() => { refParser = new RefParser(); }); it('should parse reference with namespace, name, and version', () => { const ref = 'namespace:name:1.0.0'; const result = refParser.parseRef(ref); expect(result).toEqual({ namespace: 'namespace', name: 'name', version: '1.0.0' }); }); it('should parse reference with name and version', () => { const ref = 'name:1.0.0'; const result = refParser.parseRef(ref); expect(result).toEqual({ namespace: undefined, name: 'name', version: '1.0.0' }); }); it('should throw an error for invalid reference format', () => { const ref = 'invalid-format'; expect(() => refParser.parseRef(ref)).toThrow('Invalid reference format: invalid-format'); }); it('should throw an error for empty reference', () => { const ref = ''; expect(() => refParser.parseRef(ref)).toThrow('Invalid reference format: '); }); it('should throw an error for reference with more than three parts', () => { const ref = 'namespace:name:1.0.0:extra'; expect(() => refParser.parseRef(ref)).toThrow('Invalid reference format: namespace:name:1.0.0:extra'); }); });