Files
teleport/web/packages/shared/utils/createMfaOptions.test.ts
T
Jeff Pihach 991856e137 Added eslint rule to enforce the order of file imports (#1030)
* add import order lint rule.
* auto fix import order and spacing.
* prettier fix.
* manual fix of import order.
* update failing snapshots.
* bump e submodule for import order fixes.
2022-07-25 16:21:23 -06:00

74 lines
1.8 KiB
TypeScript

/**
* Copyright 2022 Gravitational, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Auth2faType, PreferredMfaType } from 'shared/services';
import createMfaOptions from './createMfaOptions';
describe('test retrieving mfa options', () => {
const testCases: {
name: string;
type?: Auth2faType;
preferred?: PreferredMfaType;
expect: Auth2faType[];
}[] = [
{
name: 'type undefined',
expect: [],
},
{
name: 'type off',
type: 'off',
expect: [],
},
{
name: 'type on',
type: 'on',
expect: ['webauthn', 'otp'],
},
{
name: 'type optional',
type: 'optional',
expect: ['webauthn', 'otp', 'optional'],
},
{
name: 'type webauthn only',
type: 'webauthn',
expect: ['webauthn'],
},
{
name: 'type otp only',
type: 'otp',
expect: ['otp'],
},
];
test.each(testCases)('$name', testCase => {
const mfa = createMfaOptions({
auth2faType: testCase.type,
}).map(o => o.value);
expect(mfa).toEqual(testCase.expect);
});
test('no "none" option if requireMfa=true', () => {
const mfa = createMfaOptions({
auth2faType: 'optional',
required: true,
}).map(o => o.value);
expect(mfa).toEqual(['webauthn', 'otp']);
});
});