UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

74 lines (62 loc) 2.91 kB
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); }); });