@apistudio/apim-cli
Version:
CLI for API Management Products
66 lines (57 loc) • 1.71 kB
text/typescript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { isPolicyKind } from './policy-helper';
import { KindEnums } from '@apic/api-model/common/StudioEnums.js';
// Mock message-helper to avoid chalk import issues
jest.mock('../../common/message-helper.js', () => ({
showError: jest.fn(),
showWarning: jest.fn(),
showSuccess: jest.fn(),
showInfo: jest.fn(),
showMessage: jest.fn(),
}));
describe('policy helper function test suite', () => {
it('should return true for valid policy kinds', () => {
const validKinds = [
KindEnums.Log,
KindEnums.ErrorProcessing,
KindEnums.IdentifyAndAuthorize,
KindEnums.SetContextVariable,
KindEnums.MonitorTraffic,
KindEnums.CacheServiceResult,
KindEnums.RateLimiter,
KindEnums.InvokeAWSLambdaFunction,
KindEnums.DataMasking,
KindEnums.HTTPInvoke,
KindEnums.InvokeMessagingExtension,
KindEnums.TransformRequest,
KindEnums.TransformResponse,
KindEnums.ValidateAPISpecification,
KindEnums.Route,
KindEnums.Transport
];
validKinds.forEach(kind => {
expect(isPolicyKind(kind)).toBe(true);
});
});
it('should return false for invalid policy kinds', () => {
const invalidKinds = [
'UnknownKind1',
'UnknownKind2',
'AnotherUnknownKind'
];
invalidKinds.forEach(kind => {
expect(isPolicyKind(kind)).toBe(false);
});
});
it('should return false for an empty string', () => {
expect(isPolicyKind('')).toBe(false);
});
it('should return false for a null value', () => {
expect(isPolicyKind(null as unknown as string)).toBe(false);
});
it('should return false for a number', () => {
expect(isPolicyKind(123 as unknown as string)).toBe(false);
});
});