@apistudio/apim-cli
Version:
CLI for API Management Products
58 lines (45 loc) • 1.71 kB
text/typescript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
/* eslint-disable @typescript-eslint/no-explicit-any */
import { getRefsFromPackageAsset } from './package-kind-helper.js';
import { BaseAsset } from '../../../model/assets-model.js';
jest.mock('../../common/message-helper.js', () => ({
showWarning: jest.fn(),
}));
describe('getRefsFromPackageAsset', () => {
beforeEach(() => {
jest.clearAllMocks();
});
it('should return AssetCacheModel with apis and plans ref', () => {
const packageAsset: BaseAsset = {
spec: {
'apis': [{ $ref: 'dev:API:1.0' }, { $ref: 'dev:API:2.0' }],
'plans': [{ $ref: 'dev:Plan:1.0' }]
},
} as unknown as BaseAsset;
const result = getRefsFromPackageAsset(packageAsset);
expect(result).toEqual([
{ kind: 'API', ref: 'dev:API:1.0', isNewlyAdded: true },
{ kind: 'API', ref: 'dev:API:2.0', isNewlyAdded: true },
{ kind: 'Plan', ref: 'dev:Plan:1.0', isNewlyAdded: true }
]);
});
it('should handle package asset with missing spec properties', () => {
const routeAsset: BaseAsset = {
spec: {},
} as unknown as BaseAsset;
const result = getRefsFromPackageAsset(routeAsset);
expect(result).toEqual([]);
});
it('should return empty array when packageAsset exists but lacks a $ref', () => {
const packageAsset: BaseAsset = {
spec: {
"apis": [],
"plans": []
},
} as unknown as BaseAsset;
const result = getRefsFromPackageAsset(packageAsset);
expect(result).toEqual([]);
});
});