Files
discourse/test/javascripts/acceptance/enforce-second-factor-test.js.es6
Jeff Wong 88ef5e55fe FEATURE: add ability to have multiple totp factors (#7626)
Adds a second factor landing page that centralizes a user's second factor configuration.

This contains both TOTP and Backup, and also allows multiple TOTP tokens to be registered and organized by a name. Access to this page is authenticated via password, and cached for 30 minutes via a secure session.
2019-06-26 16:58:06 -07:00

60 lines
1.4 KiB
JavaScript

import { acceptance, updateCurrentUser } from "helpers/qunit-helpers";
acceptance("Enforce Second Factor", {
loggedIn: true,
pretend(server, helper) {
server.post("/u/second_factors.json", () => {
return helper.response({
success: "OK",
password_required: "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"
);
});