From 9f5f41f69de437705606e8b683eea3c7954e23be Mon Sep 17 00:00:00 2001 From: Gustavo Cabral Date: Thu, 9 Jan 2020 14:38:07 -0300 Subject: [PATCH] [fix] Records requests during iteration even though it is not serialized. --- addon-test-support/mock-provider/mirage.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addon-test-support/mock-provider/mirage.js b/addon-test-support/mock-provider/mirage.js index fcfdc6e..4c46112 100644 --- a/addon-test-support/mock-provider/mirage.js +++ b/addon-test-support/mock-provider/mirage.js @@ -55,6 +55,13 @@ export default class MirageProvider extends MockProvider { let { startMirage } = require(`${modulePrefix}/initializers/ember-cli-mirage`); this.server = startMirage(); this.server.passthrough('/_pact/*path'); + + // Workaround for issue: https://github.com/salsify/ember-cli-pact/issues/32 + const originalHandler = this.server.pretender.handledRequest; + this.server.pretender.handledRequest = (verb, path, request) => { + if (!this.interaction.captured) this.recordRequest(request); + return originalHandler(verb, path, request); + }; } catch (error) { throw new Error(`Unable to start mirage server; is ember-cli-mirage installed? ${error.message}`); } @@ -69,6 +76,7 @@ let mode = 'data'; export function PactEnabled(SerializerClass) { return class PactEnabledSerializer extends SerializerClass { + // serialize will NOT be invoked if response's body is NOT serializable (e.g. empty body after DELETE request) serialize(resource, request) { let serialized = super.serialize(...arguments); if (activeProvider) {