@apistudio/apim-cli
Version:
CLI for API Management Products
50 lines (41 loc) • 1.37 kB
text/typescript
/**
* 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');
});
});