@apistudio/apim-cli
Version:
CLI for API Management Products
111 lines (97 loc) • 3.03 kB
text/typescript
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([]);
});
});