Можно ли сбросить кэш с помощью ApolloTestingModule? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть компонент, который использует клиент Apollo Angular для получения некоторых данных.Я пытаюсь написать тесты для этого, чтобы проверить, как он реагирует на различные типы данных.

Однако, кажется, есть способ изменить данные ответа после первого раза (я полагаю, из-за кэширования).Есть ли способ очистить кеш при тестировании или заставить его не использовать кеш?

Мой код выглядит примерно так

describe('TestComponent', () => {
    let apollo: ApolloTestingController;
    let component: UserDetailsComponent;
    let fixture: ComponentFixture<UserDetailsComponent>;

    beforeEach(async(() => {
        TestBed.configureTestingModule({
            imports: [
                ApolloTestingModule,
            ],
            declarations: [TestComponent],
        })
        .compileComponents();

        apollo = TestBed.get(ApolloTestingController);

        fixture = TestBed.createComponent(TestComponent);
        component = fixture.componentInstance;
    }));

    it('should work with data type 1', () => {
        apollo.expectOne('TestQuery').flush({
            data: {
                something: 'test 1',
            },
        });
    });

    it('should work with data type 2', () => {
        // Fails to match here
        apollo.expectOne('TestQuery').flush({
            data: {
                something: 'test 2',
            },
        });
    });
});

1 Ответ

0 голосов
/ 05 июля 2019

Я обнаружил, что вы можете сделать что-то вроде этого

const apolloClient = TestBed.get(Apollo).getClient();
await apolloClient.clearStore();
...