@apistudio/apim-cli
Version:
CLI for API Management Products
74 lines (62 loc) • 2.91 kB
text/typescript
import {ZipProcessor} from '../src/index.js';
import path from 'path';
import fs from 'fs';
jest.mock('@apic/studio-logger', ()=> ({
LoggerConfig: {
isLoggerEnabled: jest.fn(),
},
}));
jest.mock('@apic/studio-shared', () => ({
ErrorResponse: jest.fn(),
Metadata_Ref: jest.fn(),
SpecObject: jest.fn(),
YamlContent: jest.fn(),
UpperCaseKinds: jest.fn(),
}));
jest.mock('../src/service/log-wrapper.ts');
describe('ZipProcessor', () => {
it('should process and send the response for valid Asset', async() => {
const zipFilePath = path.resolve(__dirname, './assets/gateway-asset.zip');
const Buffer = fs.readFileSync(zipFilePath);
const zipprocess = new ZipProcessor(Buffer);
const result=await zipprocess.processZip();
expect(result).not.toBe(undefined);
expect(result).not.toBe(false);
});
it('should return null for the invalid asset', async () => {
const zipFilePath = path.resolve(__dirname, './assets/gateway-asset-error.zip');
const Buffer = fs.readFileSync(zipFilePath);
const zipprocess = new ZipProcessor(Buffer);
const result=await zipprocess.processZip();
expect(result).not.toBe(undefined);
expect(result).not.toBe(false);
expect(result).toBe(null);
});
it('should return false if zip file does not contain minimum required files', async () => {
const obj = new ZipProcessor(Buffer.from(''));
jest.spyOn(obj as any, 'validateReferences').mockResolvedValue(true);
jest.spyOn(obj as any, 'validatePaths').mockResolvedValue(true);
jest.spyOn(obj as any, 'validateZip').mockResolvedValue(false);
const result = await obj['validate']();
expect(result).toBe(false);
});
it('should return false if api file is not valid', async () => {
const obj = new ZipProcessor(Buffer.from(''));
jest.spyOn(obj as any, 'validateReferences').mockResolvedValue(true);
jest.spyOn(obj as any, 'validatePaths').mockResolvedValue(true);
jest.spyOn(obj as any, 'validateZip').mockResolvedValue(true);
jest.spyOn(obj as any, 'validateApiFiles').mockResolvedValue(false);
const result = await obj['validate']();
expect(result).toBe(false);
});
it('should return false if yaml file is not valid', async () => {
const obj = new ZipProcessor(Buffer.from(''));
jest.spyOn(obj as any, 'validateReferences').mockResolvedValue(true);
jest.spyOn(obj as any, 'validatePaths').mockResolvedValue(true);
jest.spyOn(obj as any, 'validateZip').mockResolvedValue(true);
jest.spyOn(obj as any, 'validateApiFiles').mockResolvedValue(true);
jest.spyOn(obj as any, 'validateYamlStructure').mockResolvedValue(false);
const result = await obj['validate']();
expect(result).toBe(false);
});
});