Я заметил 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'
});
});
Снимок экрана: