2019-06-14 20:54:20 +08:00
|
|
|
import { acceptance, updateCurrentUser } from "helpers/qunit-helpers";
|
2019-03-15 19:09:37 +08:00
|
|
|
|
|
|
|
acceptance("Enforce Second Factor", {
|
2019-06-27 07:58:06 +08:00
|
|
|
loggedIn: true,
|
|
|
|
pretend(server, helper) {
|
|
|
|
server.post("/u/second_factors.json", () => {
|
|
|
|
return helper.response({
|
|
|
|
success: "OK",
|
|
|
|
password_required: "true"
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
2019-03-15 19:09:37 +08:00
|
|
|
});
|
|
|
|
|
2020-07-10 03:54:53 +08:00
|
|
|
QUnit.test("as an admin", async function(assert) {
|
2019-03-15 19:09:37 +08:00
|
|
|
await visit("/u/eviltrout/preferences/second-factor");
|
2020-07-10 03:54:53 +08:00
|
|
|
this.siteSettings.enforce_second_factor = "staff";
|
2019-03-15 19:09:37 +08:00
|
|
|
|
|
|
|
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"
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
2020-07-10 03:54:53 +08:00
|
|
|
QUnit.test("as a user", async function(assert) {
|
2019-07-25 04:01:08 +08:00
|
|
|
updateCurrentUser({ moderator: false, admin: false });
|
2019-03-15 19:09:37 +08:00
|
|
|
|
|
|
|
await visit("/u/eviltrout/preferences/second-factor");
|
2020-07-10 03:54:53 +08:00
|
|
|
this.siteSettings.enforce_second_factor = "all";
|
2019-03-15 19:09:37 +08:00
|
|
|
|
|
|
|
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"
|
|
|
|
);
|
|
|
|
});
|
2019-06-28 06:01:27 +08:00
|
|
|
|
2020-07-10 03:54:53 +08:00
|
|
|
QUnit.test("as an anonymous user", async function(assert) {
|
2019-07-25 04:01:08 +08:00
|
|
|
updateCurrentUser({ moderator: false, admin: false, is_anonymous: true });
|
2019-06-28 06:01:27 +08:00
|
|
|
|
|
|
|
await visit("/u/eviltrout/preferences/second-factor");
|
2020-07-10 03:54:53 +08:00
|
|
|
this.siteSettings.enforce_second_factor = "all";
|
|
|
|
this.siteSettings.allow_anonymous_posting = true;
|
2019-06-28 06:01:27 +08:00
|
|
|
|
|
|
|
await visit("/u/eviltrout/summary");
|
|
|
|
|
|
|
|
assert.notEqual(
|
|
|
|
find(".control-label").text(),
|
|
|
|
"Password",
|
|
|
|
"it will transition from second-factor preferences"
|
|
|
|
);
|
|
|
|
|
|
|
|
await click("#toggle-hamburger-menu");
|
|
|
|
await click("a.about-link");
|
|
|
|
|
|
|
|
assert.notEqual(
|
|
|
|
find(".control-label").text(),
|
|
|
|
"Password",
|
|
|
|
"it is possible to navigate to other pages"
|
|
|
|
);
|
|
|
|
});
|