ember octane test-helpers: currentURL () возвращает адресную строку URL () - PullRequest
0 голосов
/ 05 апреля 2020

Я заметил currentURL() из @ember/test-helpers возвращает фактический URL адресной строки окна теста вместо currentUrl () теста.

Я убедился, что мой ENV.locationType=none. Может ли кто-нибудь заметить что-то действительно очевидное, что я пропускаю?

Ожидаемое поведение: когда пользователь посещает «/ clientname», они должны быть перенаправлены на «/ clientname / login»:

config / environment. js:

module.exports = function (environment) {
  let ENV = {
    modulePrefix: "portal-client3",
    environment,
    rootURL: "/",
    locationType: "auto",
    EmberENV: {
      FEATURES: {
        // Here you can enable experimental features on an ember canary build
        // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
      },
      EXTEND_PROTOTYPES: {
        // Prevent Ember Data from overriding Date.parse.
        Date: false,
      },
    },

    APP: {},
  };

  if (environment === "test") {
    ENV.locationType = "none";
    ENV.APP.LOG_ACTIVE_GENERATION = false;
    ENV.APP.LOG_VIEW_LOOKUPS = false;
    ENV.APP.rootElement = "#ember-testing";
    ENV.APP.autoboot = false;
  }
  return ENV;
};

приложение / маршрутизатор:

import EmberRouter from "@ember/routing/router";
import config from "./config/environment";

export default class Router extends EmberRouter {
  location = config.locationType;
  rootURL = config.rootURL;
}

tests / test-helper:

import Application from "../app";
import config from "../config/environment";
import { setApplication } from "@ember/test-helpers";
import { start } from "ember-qunit";

setApplication(Application.create(config.APP));
start();

тесты / прием / логин-тест:

import { module, test } from "qunit";
import { visit, currentURL } from "@ember/test-helpers";
import { setupApplicationTest } from "ember-qunit";
import { setupMirage } from "ember-cli-mirage/test-support";

module("Acceptance | login", function (hooks) {
  setupApplicationTest(hooks);
  setupMirage(hooks);

  test("visiting /login", async function (assert) {
    await visit("/clientname");
    assert.equal(currentURL(), "/clientname/login");  
    // I see currentUrl()='/tests/login' instead of '/clientname/login'

  });
});

Снимок экрана: enter image description here

...