discourse/test/javascripts/acceptance/enforce-second-factor-test.js.es6
Robin Ward a8793d0d9a REFACTOR: Test Memory Usage Fixes (#7769)
* Calling `Discourse.reset()` creates a new container
We should run our de-initializers only after acceptance tests,
since initializers are not run outside of acceptance tests anyway,
and the container at this point can be passed properly to the
`teardown()` method.

* Remove `Discourse.reset` from tests
This would cause a new container to be created which leaks many objects.

* `updateCurrentUser` is more accurate than `replaceCurrentUser`
2019-06-14 14:54:20 +02:00

52 lines
1.2 KiB
JavaScript

import { acceptance, updateCurrentUser } from "helpers/qunit-helpers";
acceptance("Enforce Second Factor", {
loggedIn: true
});
QUnit.test("as an admin", async assert => {
await visit("/u/eviltrout/preferences/second-factor");
Discourse.SiteSettings.enforce_second_factor = "staff";
await visit("/u/eviltrout/summary");
assert.equal(
find(".control-label").text(),
"Password",
"it will not transition from second-factor preferences"
);
await click("#toggle-hamburger-menu");
await click("a.admin-link");
assert.equal(
find(".control-label").text(),
"Password",
"it stays at second-factor preferences"
);
});
QUnit.test("as a user", async assert => {
updateCurrentUser({ staff: false, admin: false });
await visit("/u/eviltrout/preferences/second-factor");
Discourse.SiteSettings.enforce_second_factor = "all";
await visit("/u/eviltrout/summary");
assert.equal(
find(".control-label").text(),
"Password",
"it will not transition from second-factor preferences"
);
await click("#toggle-hamburger-menu");
await click("a.about-link");
assert.equal(
find(".control-label").text(),
"Password",
"it stays at second-factor preferences"
);
});