Sneha Singh
09/08/2022, 1:41 PM'use strict'
import { setupServer } from 'msw/node'
import { rest } from 'msw'
import { fetchFields } from '../api/index'
import provider from './provider'
import interactions from './interactions/interactions'
describe('fetch fields', () => {
const expectedBody = { status: true, data: [{ fullName: 'dummy' }] }
const server = setupServer(
rest.get(
`<http://localhost:8992/fields?object_type=dummy>`,
(req, res, ctx) =>
res(
ctx.status(200),
ctx.json(expectedBody)
)
)
)
beforeAll(() => server.listen())
afterEach(() => server.resetHandlers())
afterAll(() => server.close())
describe('request to fetch ACE fields', () => {
beforeAll(async () => {
await provider.setup();
await provider.addInteraction(interactions.fetchAceFields);
});
test('verify it returns the correct response', async () => {
const res = await fetchFields("dummy")
expect(res.data).toEqual(expectedBody)
})
})
})Yousaf Nabi (pactflow.io)
Yousaf Nabi (pactflow.io)
Sneha Singh
09/08/2022, 4:19 PM'use strict'
import { setupServer } from 'msw/node';
import { rest } from 'msw';
import { fetchFields } from '../api/index';
import interactions from './interactions/interactions';
import provider from './provider';
import { setupWorker } from "msw";
import {API} from './app'
import { setupPactMswAdapter } from "@pactflow/pact-msw-adapter";
const expectedBody = { status: true, data: [{ fullName: 'dummy' }] }
const server = setupServer(rest.get("<http://localhost:8229>"+"/fields?object_type=dummy", (req, res, ctx) => {
return res(ctx.status(200), ctx.json(expectedBody));
}));
const pactMswAdapter = setupPactMswAdapter({
server,
options: {
consumer: "webapp",
providers: {
['service']: ['/fields'],
},
debug: true,
includeUrl: ['/fields'],
},
});
describe('fetch fields', () => {
beforeAll(async () => {
server.listen();
});
beforeEach(async () => {
pactMswAdapter.newTest();
});
afterEach(async () => {
pactMswAdapter.verifyTest();
server.resetHandlers();
});
afterAll(async () => {
await pactMswAdapter.writeToFile();
pactMswAdapter.clear();
server.close();
});
test('verify it returns the correct response', async () => {
const respProducts = await fetchFields("dummy");
expect(respProducts).toEqual(expectedBody);
})
})Yousaf Nabi (pactflow.io)
import { fetchFields } from '../api/index'; so we can see how your client is configured.Sneha Singh
09/08/2022, 4:35 PMexport const API = axios.create();
export const fetchFields = (objectType: string) =>
API.get(`${serviceUrl}/ace-fields?object_type=${objectType}`)Yousaf Nabi (pactflow.io)
/fields
const server = setupServer(rest.get("<http://localhost:8229>"+"/fields?object_type=dummy", (req, res, ctx) => {
return res(ctx.status(200), ctx.json(expectedBody));
}));
but your client is using /ace-fields
export const API = axios.create();
export const fetchFields = (objectType: string) =>
API.get(`${serviceUrl}/ace-fields?object_type=${objectType}`)
How is your serviceUrl being set?Sneha Singh
09/08/2022, 4:44 PMSneha Singh
09/08/2022, 4:48 PMYousaf Nabi (pactflow.io)
"use strict";
const setupServer = require("msw/node").setupServer;
const rest = require("msw").rest;
const fetchFields = require("./app").fetchFields;
const setupPactMswAdapter =
require("@pactflow/pact-msw-adapter").setupPactMswAdapter;
const expectedBody = { status: true, data: [{ fullName: "dummy" }] };
const server = setupServer(
rest.get(
"<http://localhost:8229>" + "/fields?object_type=dummy",
(req, res, ctx) => {
return res(ctx.status(200), ctx.json(expectedBody));
}
)
);
const pactMswAdapter = setupPactMswAdapter({
server,
options: {
consumer: "webapp",
providers: {
["service"]: ["/fields"],
},
debug: true,
includeUrl: ["/fields"],
},
});
describe("fetch fields", () => {
beforeAll(async () => {
server.listen();
});
beforeEach(async () => {
pactMswAdapter.newTest();
});
afterEach(async () => {
pactMswAdapter.verifyTest();
server.resetHandlers();
});
afterAll(async () => {
await pactMswAdapter.writeToFile();
pactMswAdapter.clear();
server.close();
});
test("verify it returns the correct response", async () => {
const respProducts = await fetchFields("dummy");
expect(respProducts.data).toEqual(expectedBody);
});
});
app.js
const axios = require("axios");
const API = axios.create();
const serviceUrl = "<http://localhost:8229>";
const fetchFields = (objectType) =>
API.get(`${serviceUrl}/fields?object_type=${objectType}`);
module.exports = {
API,
fetchFields,
};Yousaf Nabi (pactflow.io)
Slackbot
09/08/2022, 4:52 PMYousaf Nabi (pactflow.io)
Sneha Singh
09/08/2022, 5:00 PMYousaf Nabi (pactflow.io)
Sneha Singh
09/08/2022, 5:31 PM