ember-cli-pact icon indicating copy to clipboard operation
ember-cli-pact copied to clipboard

Error using RestSerializer

Open joemoded opened this issue 7 years ago • 2 comments

Hi @dfreeman,

So as I mentioned in Slack yesterday, my team and I are trying to integrate ember-cli-pact with our repo, which uses a RestSerializer, and have come across the error "`Invalid attempt to destructure non-iterable instance."

After downloading your repo and ensuring all tests were passing, I was then able to reproduce the error in your repo by changing the mirage application.js file to the following:

import { RestSerializer } from 'ember-cli-mirage';
import { PactEnabled } from 'ember-cli-pact/mock-provider/mirage';

export default class ApplicationSerializer extends PactEnabled(RestSerializer) {

}

If you're able to offer any insight that would be awesome. Thanks in advance!

joemoded avatar Dec 20 '17 21:12 joemoded

Hi @joemoded,

Essentially the issue here is that different Mirage serializers return different types of values from getHashForResource (which isn't technically a public hook). It's definitely something we should solve properly here, but it has some interesting implications for dealing with how side-loaded resources are managed, so it's going to take some thought.

In the short term, you should be able to work around this by adding something like the following to your serializer:

import { RestSerializer } from 'ember-cli-mirage';
import { PactEnabled } from 'ember-cli-pact/mock-provider/mirage';

export default class ApplicationSerializer extends PactEnabled(RestSerializer) {
  // Workaround for https://github.com/salsify/ember-cli-pact/issues/19
  getMatchingRulesForResource() {
    return [super.getMatchingRulesForResource(...arguments)];
  }
}

dfreeman avatar Jan 16 '18 21:01 dfreeman

Hello, sorry to bother here in another thread but.. How can I get someone to help on my issue? #32

louiseavelar avatar Jan 29 '19 17:01 louiseavelar