UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

111 lines (97 loc) 3.03 kB
import { BaseAsset } from "../../../model/assets-model.js"; import { KindEnums } from "@apic/api-model/common/StudioEnums.js"; import { AssetCacheModel } from "../../../model/asset-cache-model.js"; import { getRefsFromMockEndpointAsset } from "./mockEndpoint-kind-helper.js"; jest.mock('../../common/message-helper.js', () => ({ showWarning: jest.fn(), })); const mockEndpointAsset: BaseAsset = { spec: { config: [ { condition: "($request.path equals v2/pet and $request.method equals GET and $request.query.<key1> equals 'test')", response: { $ref: "sample:api_response:2.0", }, }, { condition: "($request.path equals v2/pet and $request.method equals POST and $request.query.<key1> equals 'test' and $request.body.<val>)", response: { $ref: "sample:api_response1:2.0", }, }, { condition: "default", response: { $ref: "sample:api_response2:2.0", }, }, ], }, } as unknown as BaseAsset; describe("getRefsFromMockEndpointAsset", () => { it.skip("should return AssetCacheModel with mock-response refs", () => { const result: AssetCacheModel[] = getRefsFromMockEndpointAsset(mockEndpointAsset); expect(result).toEqual([ { kind: KindEnums.MockResponse, ref: "sample:api_response:2.0", isNewlyAdded: true, }, { kind: KindEnums.MockResponse, ref: "sample:api_response1:2.0", isNewlyAdded: true, }, { kind: KindEnums.MockResponse, ref: "sample:api_response2:2.0", isNewlyAdded: true, }, ]); }); it.skip("should not add duplicate refs to result", () => { const duplicateMockEndpointAsset: BaseAsset = { spec: { config: [ { response: { $ref: "sample:api_response:2.0", }, }, { response: { $ref: "sample:api_response:2.0", }, }, ], }, } as unknown as BaseAsset; const result: AssetCacheModel[] = getRefsFromMockEndpointAsset(duplicateMockEndpointAsset); expect(result).toEqual([ { kind: KindEnums.MockResponse, ref: "sample:api_response:2.0", isNewlyAdded: true, }, ]); }); it.skip("should return an empty array when there are no response refs", () => { const emptyMockEndpointAsset: BaseAsset = { spec: { config: [ {} ], }, } as unknown as BaseAsset; const result: AssetCacheModel[] = getRefsFromMockEndpointAsset(emptyMockEndpointAsset); expect(result).toEqual([]); }); it.skip("should handle asset with missing or undefined config", () => { const missingConfigMockEndpointAsset: BaseAsset = { spec: {}, } as unknown as BaseAsset; const result: AssetCacheModel[] = getRefsFromMockEndpointAsset(missingConfigMockEndpointAsset); expect(result).toEqual([]); }); });