@pact-foundation/pact
Version:
Pact for all things Javascript
33 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.InteractionWithPlugin = void 0;
const matchers_1 = require("../../v3/matchers");
const interactionWithPluginRequest_1 = require("./interactionWithPluginRequest");
const requestWithPluginBuilder_1 = require("./requestWithPluginBuilder");
class InteractionWithPlugin {
pact;
interaction;
opts;
cleanupFn;
// tslint:disable:no-empty-function
constructor(pact, interaction, opts, cleanupFn) {
this.pact = pact;
this.interaction = interaction;
this.opts = opts;
this.cleanupFn = cleanupFn;
}
// Multiple plugins are allowed
usingPlugin(config) {
this.pact.addPlugin(config.plugin, config.version);
return this;
}
withRequest(method, path, builder) {
this.interaction.withRequest(method, (0, matchers_1.matcherValueOrString)(path));
if (typeof builder === 'function') {
builder(new requestWithPluginBuilder_1.RequestWithPluginBuilder(this.interaction));
}
return new interactionWithPluginRequest_1.InteractionWithPluginRequest(this.pact, this.interaction, this.opts, this.cleanupFn);
}
}
exports.InteractionWithPlugin = InteractionWithPlugin;
//# sourceMappingURL=interactionWithPlugin.js.map