Skip to content

Returning inherited models of various types #231

@ryedeer

Description

@ryedeer

Hello!

I ran into a problem while writing tests for our application. We have a certain backend route that can return various models inherited from a single base model. When I tried to mock it, I found out that the mock replaces the types of the supplied model instances with the type specified as the modelName for the mock, so the data aren't loaded properly.

To illustrate this, I wrote a simple test based on your test setup:

test("mock returns inherited models with proper types", function(assert) {
  const smallHat = make('small-hat');
  const bigHat = make('big-hat');
  let mock = mockQuery('hat', { size: 'all' }).returns({ models: [smallHat, bigHat] });
  let responseData = mock.responseJson.data;
  equal(responseData[0].type, 'small-hat');
  equal(responseData[1].type, 'big-hat');
});

As it turned out, the data type specified in the JSON is 'hat' in both cases.

I would greatly appreciate your suggestions on handling this situation.

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