Не уверен, если вы все еще сталкиваетесь с этой проблемой, но я смог решить ее, используя этот комментарий в проблеме: https://github.com/apollographql/apollo-angular/issues/691#issuecomment-417293424.
Это сводится к трем частям:
- Добавление дополнительного провайдера в тестовый модуль
TestBed.configureTestingModule({
...
providers: [
...
{
provide: APOLLO_TESTING_CACHE,
useValue: new InMemoryCache({addTypename: true}),
},
]
});
Обернуть запрос в
expectOne
при вызове
addTypenameToDocument
const op = controller.expectOne(addTypenameToDocument(getClientsQuery));
Добавьте соответствующие
__typename
к фиктивным данным ... Я считаю, что в вашем случае это выглядело бы так:
op.flush({
'conditions': [
{
'glItemType': 'DEPARTMENT',
'operation': 'LEQ',
'value': 1300,
'__typename': 'DefinedOnBackend'
},
{
'glItemType': 'SUBDEPARTMENT',
'operation': 'GEQ',
'value': 4805,
'__typename': 'DefinedOnBackend'
}
],
'consequent': {
'isExluded': true,
'__typename': 'DefinedOnBackend'
},
})
Для меня это выглядело так (по сути, добавив __typename
к каждой возвращаемой записи):
op.flush({
data: {
getClients: clients.map(c => ({ ...c, __typename: 'ClientDTO' }))
}
});