Угловой 7, Транспортир и Жасмин HTTP-запросы - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть простой тестовый пример E2E, где я проверяю, присутствует ли на странице тег h1.Я использую транспортир с жасмином.

Моя проблема в том, что при загрузке страницы на странице появляется распознаватель.Средство распознавания делает запрос GET для некоторых данных и передает их компоненту.Когда я запускаю тест, вызов никогда не выполняется успешно (отлично работает вне тестовой среды).Это всегда тайм-аут.

Почему это происходит?Я не уверен, что делать дальше.

Вот мой код:

ContentResolver :

@Injectable()
export class ContentResolver implements Resolve<any> {

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<any> {
        return new Promise((resolve, reject) => {
            this.httpClient.get('test/content-data').subscribe(response => {
                if (response.body && response.status < 300) {
                    resolve(response);
                }
                else {
                    reject(response);
                }
            });
        }
    }
}

Тестовые файлы :

import { AppPage } from './app.po';

describe('App', () => {
    let component: AppPage;

    beforeEach(async () => {
        component = new AppPage();
        await component.navigateTo('Test');
        await component.successfulNavigation();
    });

    it('should display welcome message', async () => {
        await component.getTitleText().then(response => {
            expect(response).toEqual('Test Data');
        });
    });
});

app.po.ts

import { browser, by, element, ExpectedConditions as EC } from 'protractor';

export class AppPage {
    async navigateTo(path) {
        await browser.get(`http://localhost:8080/${path}`);
    }

    async successfulNavigation() {
        return await browser.wait(EC.presenceOf(element(by.tagName('h1'))), 30000);
    }

    getTitleText() {
        return element(by.tagName('h1')).getText();
    }
}
...