Как проверить this.router.navigateToRoute () в компоненте - PullRequest
1 голос
/ 03 апреля 2020

Как я могу проверить this.router.navigateToRoute ("home")?

при запуске теста, который я продолжаю получать. Ошибка: не удалось найти маршрут с именем «home». Убедитесь, что в конфигурации маршрута указано name: 'home'.

мой тестовый файл

import { StageComponent } from "aurelia-testing";
import { bootstrap } from "aurelia-bootstrapper";
import { PLATFORM } from "aurelia-pal";
import { Container } from "aurelia-dependency-injection";
import { UserService } from "../../src/shared/services/user-service";
import { RouterConfiguration, Router } from "aurelia-router";

describe("MyComponent with sign up", () => {
  let component;

  beforeEach(() => {
    component = new Container();
    component.get(UserService);
    component.get(Router);
    component.get(RouterConfiguration);
    component = StageComponent.withResources(
      PLATFORM.moduleName("components/auth/auth-component")
    )
      .inView(
        '<auth-component type.bind="type" email.bind="email" password.bind="password"></auth-component>'
      )
      .boundTo({ type: "login", email: "t@1.com", password: "qqqq" });
  });

  it("should render Login", done => {
    component
      .create(bootstrap)
      .then(() => {
        const routeConfig = { name: "login" };
        component.viewModel.activate("", routeConfig);
        component.viewModel.determineActivationStrategy();
        const nameElement = document.querySelector(".LogTest");
        component.viewModel.submit();
        expect(nameElement.innerHTML).toBe("Sign in");
        done();
      })
      .catch(e => {
        console.log(e.toString());
      });
  });

  afterEach(() => {
    component.dispose();
  });
});

1 Ответ

0 голосов
/ 18 апреля 2020

Ваша ошибка означает, что вы не зарегистрировали маршрут с именем home в вашем app.ts, поэтому вам нужно сначала сделать это, а затем это сработает. Однако, если вы просто хотите перейти к маршруту, например так: https-: // [mydomain] / home, вам нужно будет просто использовать router.navigate, а не navigateToRoute. Функция navigateToRoute предназначена для маршрутов, зарегистрированных на маршрутизаторе с помощью начальной настройки.

Для настройки маршрутизатора: Настройка маршрутизатора

Перейдите к сведениям о маршруте: navigateToRoute

...