Test serializers using factories.
Hello, During serialization / normalization tests I have encountered a problem, which I am not sure is possible to resolve. Ofc I would like to use factories. E.g. I test my serializer, using expected payload from server.
this.store.normalize('model', payload);
Using make / build I can create objects which depend on models - usually fairly distinct from server response payload. Let's suppose I have old system without rest, json-api conventions. My member factory method (build) returns:
{
id: 1,
name: 'member1',
group: 1
}
But serializer needs sth like:
{
member: {
id: 1
},
group: {
id: 1
}
}
I was wondering about sth like:
build('member').payload()
and define additional hook in factory e.g.
FactoryGuy.define('member', {
default: {
...
},
payload(member) {
return {
member: member,
group: member.group
}
}
WDYT ? Any possible solutions, ideas ?
I am not exactly sure what you need but factory guy has
mockAny({url: "http://blah", responseText: {whatever the heck you want}).
see here the tests for it .. because YIKES ,, it is not documented!
Hmm ok sounds reasonable. If you mentioned mock* functions... Is it any simple way of testing pending states using mock* helpers ?
Pseudo test idea:
let request = mockFindAll('comment'); // don't specify what endpoint returns
let response = commentService.findAllWithSpinner(); //adapter 'findAll' returns pending promise
// here test spinner is visible
request.resolve(comments);
await response;
// here test spinner is hidden
assert.ok(response.value);
I don't know man .. if you can make a PR for this that is clean .. i would take it .. but not so easy.