0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-02-17 22:04:19 -05:00

refactor(test): reset mfa settings after testing (#4671)

This commit is contained in:
Xiao Yijun 2023-10-16 17:42:42 +08:00 committed by GitHub
parent 7d7f435bc1
commit a2ede7e36e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 44 additions and 32 deletions

View file

@ -82,3 +82,6 @@ export const enableMandatoryMfaWithTotp = async () =>
policy: MfaPolicy.Mandatory, policy: MfaPolicy.Mandatory,
}, },
}); });
export const resetMfaSettings = async () =>
updateSignInExperience({ mfa: { policy: MfaPolicy.UserControlled, factors: [] } });

View file

@ -1,5 +1,5 @@
import { ConnectorType } from '@logto/connector-kit'; import { ConnectorType } from '@logto/connector-kit';
import { MfaPolicy, MfaFactor, SignInIdentifier } from '@logto/schemas'; import { SignInIdentifier } from '@logto/schemas';
import { deleteUser } from '#src/api/admin-user.js'; import { deleteUser } from '#src/api/admin-user.js';
import { updateSignInExperience } from '#src/api/sign-in-experience.js'; import { updateSignInExperience } from '#src/api/sign-in-experience.js';
@ -9,6 +9,7 @@ import {
setEmailConnector, setEmailConnector,
setSmsConnector, setSmsConnector,
} from '#src/helpers/connector.js'; } from '#src/helpers/connector.js';
import { enableMandatoryMfaWithTotp, resetMfaSettings } from '#src/helpers/sign-in-experience.js';
import { generateNewUser } from '#src/helpers/user.js'; import { generateNewUser } from '#src/helpers/user.js';
import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js'; import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js';
import { generateEmail, generatePhone, waitFor } from '#src/utils.js'; import { generateEmail, generatePhone, waitFor } from '#src/utils.js';
@ -16,12 +17,11 @@ import { generateEmail, generatePhone, waitFor } from '#src/utils.js';
describe('MFA - TOTP', () => { describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]); await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]);
await updateSignInExperience({ await enableMandatoryMfaWithTotp();
mfa: { });
policy: MfaPolicy.Mandatory,
factors: [MfaFactor.TOTP], afterAll(async () => {
}, await resetMfaSettings();
});
}); });
it('should add missing password before binding missing TOTP factor', async () => { it('should add missing password before binding missing TOTP factor', async () => {

View file

@ -1,5 +1,5 @@
import { ConnectorType } from '@logto/connector-kit'; import { ConnectorType } from '@logto/connector-kit';
import { MfaPolicy, MfaFactor, SignInIdentifier } from '@logto/schemas'; import { SignInIdentifier } from '@logto/schemas';
import { deleteUser } from '#src/api/admin-user.js'; import { deleteUser } from '#src/api/admin-user.js';
import { updateSignInExperience } from '#src/api/sign-in-experience.js'; import { updateSignInExperience } from '#src/api/sign-in-experience.js';
@ -9,7 +9,11 @@ import {
setEmailConnector, setEmailConnector,
setSmsConnector, setSmsConnector,
} from '#src/helpers/connector.js'; } from '#src/helpers/connector.js';
import { defaultSignUpMethod } from '#src/helpers/sign-in-experience.js'; import {
defaultSignUpMethod,
enableMandatoryMfaWithTotp,
resetMfaSettings,
} from '#src/helpers/sign-in-experience.js';
import { generateNewUser } from '#src/helpers/user.js'; import { generateNewUser } from '#src/helpers/user.js';
import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js'; import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js';
import { generateEmail, generatePhone } from '#src/utils.js'; import { generateEmail, generatePhone } from '#src/utils.js';
@ -19,13 +23,11 @@ import TotpTestingContext from './totp-testing-context.js';
describe('MFA - TOTP', () => { describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]); await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]);
await updateSignInExperience({ await enableMandatoryMfaWithTotp();
signUp: defaultSignUpMethod, });
mfa: {
policy: MfaPolicy.Mandatory, afterAll(async () => {
factors: [MfaFactor.TOTP], await resetMfaSettings();
},
});
}); });
describe('email and verification code', () => { describe('email and verification code', () => {
@ -34,6 +36,7 @@ describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await setEmailConnector(); await setEmailConnector();
await updateSignInExperience({ await updateSignInExperience({
signUp: defaultSignUpMethod,
signIn: { signIn: {
methods: [ methods: [
{ {
@ -106,6 +109,7 @@ describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await setSmsConnector(); await setSmsConnector();
await updateSignInExperience({ await updateSignInExperience({
signUp: defaultSignUpMethod,
signIn: { signIn: {
methods: [ methods: [
{ {

View file

@ -1,10 +1,14 @@
import { ConnectorType, MfaFactor, MfaPolicy, SignInIdentifier } from '@logto/schemas'; import { ConnectorType, SignInIdentifier } from '@logto/schemas';
import { deleteUser } from '#src/api/admin-user.js'; import { deleteUser } from '#src/api/admin-user.js';
import { updateSignInExperience } from '#src/api/sign-in-experience.js'; import { updateSignInExperience } from '#src/api/sign-in-experience.js';
import { demoAppUrl } from '#src/constants.js'; import { demoAppUrl } from '#src/constants.js';
import { clearConnectorsByTypes } from '#src/helpers/connector.js'; import { clearConnectorsByTypes } from '#src/helpers/connector.js';
import { defaultSignUpMethod } from '#src/helpers/sign-in-experience.js'; import {
defaultSignUpMethod,
enableMandatoryMfaWithTotp,
resetMfaSettings,
} from '#src/helpers/sign-in-experience.js';
import { generateNewUser } from '#src/helpers/user.js'; import { generateNewUser } from '#src/helpers/user.js';
import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js'; import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js';
import { generateUsername } from '#src/utils.js'; import { generateUsername } from '#src/utils.js';
@ -14,13 +18,11 @@ import TotpTestingContext from './totp-testing-context.js';
describe('MFA - TOTP', () => { describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]); await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]);
await updateSignInExperience({ await enableMandatoryMfaWithTotp();
signUp: defaultSignUpMethod, });
mfa: {
policy: MfaPolicy.Mandatory, afterAll(async () => {
factors: [MfaFactor.TOTP], await resetMfaSettings();
},
});
}); });
describe('username and password', () => { describe('username and password', () => {
@ -28,6 +30,7 @@ describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await updateSignInExperience({ await updateSignInExperience({
signUp: defaultSignUpMethod,
signIn: { signIn: {
methods: [ methods: [
{ {
@ -110,6 +113,7 @@ describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await updateSignInExperience({ await updateSignInExperience({
signUp: defaultSignUpMethod,
signIn: { signIn: {
methods: [ methods: [
{ {
@ -162,6 +166,7 @@ describe('MFA - TOTP', () => {
beforeAll(async () => { beforeAll(async () => {
await updateSignInExperience({ await updateSignInExperience({
signUp: defaultSignUpMethod,
signIn: { signIn: {
methods: [ methods: [
{ {

View file

@ -1,11 +1,10 @@
import { ConnectorType } from '@logto/connector-kit'; import { ConnectorType } from '@logto/connector-kit';
import { MfaPolicy, MfaFactor } from '@logto/schemas';
import { deleteUser } from '#src/api/admin-user.js'; import { deleteUser } from '#src/api/admin-user.js';
import { updateSignInExperience } from '#src/api/sign-in-experience.js'; import { updateSignInExperience } from '#src/api/sign-in-experience.js';
import { demoAppUrl } from '#src/constants.js'; import { demoAppUrl } from '#src/constants.js';
import { clearConnectorsByTypes, setSocialConnector } from '#src/helpers/connector.js'; import { clearConnectorsByTypes, setSocialConnector } from '#src/helpers/connector.js';
import { defaultSignUpMethod } from '#src/helpers/sign-in-experience.js'; import { enableMandatoryMfaWithTotp, resetMfaSettings } from '#src/helpers/sign-in-experience.js';
import { generateNewUser } from '#src/helpers/user.js'; import { generateNewUser } from '#src/helpers/user.js';
import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js'; import ExpectTotpExperience from '#src/ui-helpers/expect-totp-experience.js';
import { generateUserId } from '#src/utils.js'; import { generateUserId } from '#src/utils.js';
@ -17,16 +16,17 @@ describe('MFA - TOTP', () => {
await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]); await clearConnectorsByTypes([ConnectorType.Email, ConnectorType.Sms, ConnectorType.Social]);
await setSocialConnector(); await setSocialConnector();
await updateSignInExperience({ await updateSignInExperience({
signUp: defaultSignUpMethod, signUp: { identifiers: [], password: false, verify: false }, // Social only account creation
mfa: {
policy: MfaPolicy.Mandatory,
factors: [MfaFactor.TOTP],
},
signIn: { signIn: {
methods: [], methods: [],
}, },
socialSignInConnectorTargets: ['mock-social'], socialSignInConnectorTargets: ['mock-social'],
}); });
await enableMandatoryMfaWithTotp();
});
afterAll(async () => {
await resetMfaSettings();
}); });
describe('social flow', () => { describe('social flow', () => {