/**
 * Copyright Super iPaaS Integration LLC, an IBM Company 2024
 */
import {GatewayAssetHandler} from '../../src/converter/gateway-asset.handler.js';
import path from 'path';
import fs from 'fs';
jest.mock('../../src/service/log-wrapper.js');

jest.mock('@apic/studio-logger', ()=> ({
	LoggerConfig: {
		isLoggerEnabled: jest.fn(),
	},
}));

describe('GatewayAsset handler ', () => {



	test('should return valid endpoint ', async () => {
		let converter: GatewayAssetHandler;
		const zipFilePath = path.resolve(__dirname, '../assets/valid-asset.zip');
		const zipBuffer = fs.readFileSync(zipFilePath);
		// eslint-disable-next-line prefer-const
		converter = new GatewayAssetHandler(zipBuffer);
		const result = await converter.getApiEndpoints('PaymentAPI:1.0.1');
		expect(result).toStrictEqual( [ 'https://localhost:3000/' ]);
		expect(result).not.toBe([]);
		expect(result).not.toBe(undefined);
	});
	test('should return empty array if gateway json is not present', async () => {
		let converter: GatewayAssetHandler;
		const zipFilePath = path.resolve(__dirname, '../assets/invalid-asset-without-gateway-json.zip');
		const zipBuffer = fs.readFileSync(zipFilePath);
		// eslint-disable-next-line prefer-const
		converter = new GatewayAssetHandler(zipBuffer);
		const result = await converter.getApiEndpoints('PaymentAPI:1.0.1');
		expect(result).toStrictEqual([]);

	});





});
