import nock = require("nock"); import { config } from "../../src/utils/config"; export function mockMsAuction(fixedPriceWinner: string, marketplaceWinner: string) { if (!nock.isActive()) { nock.activate(); } const fixedPriceResponse = { campaign: parseInt(fixedPriceWinner), advert_id: "advertId", advertiser_domain: "advertiser_domain", price: 30, seat: "4", }; const marketplaceResponse = { campaign: parseInt(marketplaceWinner), advert_id: "advertId", advertiser_domain: "advertiser_domain", price: 1, seat: "4", }; const emptyResponse = { campaign: 0, advert_id: "advertId", advertiser_domain: "", price: 0, seat: "", }; nock(`http://${config.MS_AUCTION_HOST}`) .defaultReplyHeaders({ "Content-Type": "application/json", }) .post(`/auction`) .query(true) .reply(200, function (_uri: any, body: any) { if ( body.context.auction_type === "fixed_price" && !!body.campaigns.find((c: any) => c.id === fixedPriceResponse.campaign) ) { return fixedPriceResponse; } else if ( (body.context.auction_type === "private_auction" || body.context.auction_type === "open_auction") && !!body.campaigns.find((c: any) => c.id === marketplaceResponse.campaign) ) { return marketplaceResponse; } return emptyResponse; }) .persist(); } export function restoreMsAuction() { nock.cleanAll(); nock.restore(); }