Skip to content

withSomeParams with FormData & URL query paramsΒ #383

@patocallaghan

Description

@patocallaghan

Following on from #381 it appears the fix I submitted didn't in fact work for our use case. I'm opening this issue for discussion as I'm not sure if it is supposed to be work πŸ€·β€β™‚οΈ

//App code request - notice we have query params in the URL as well as FormData
$.ajax({
  url: '/some/url?foo=foo',
  type: 'POST',
  data: JSON.stringify({ bar:'bar' })
});

//Mock in test - in withSomeParams we are only matching the params
mock({
  url: '/some/url?foo=foo',
  type: 'POST'
})
  .withSomeParams({ foo: 'foo' });

The problem is if we see that the request is NOT a GET we only check the FormData values, which in this case is { bar: 'bar' } and not the values in the request params, { foo: 'foo' }. We do the comparison here

https://github.com/danielspaniel/ember-data-factory-guy/blob/b086500dbab1b7eb510e3a177cf196cfa5c66ad0/addon/mocks/mock-any-request.js#L49-L58

As a fix on our end we could just move the URL params inside the FormData prop but I guess a bigger question is if Factory Guy should support this or even if it's valid? jQuery seems to handle this scenario of sending both the params object and the FormData.

One solution is to combine the FormData with the query params if present? Or is it just a weird edge case?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions