// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. jest.mock('mattermost-redux/actions/users'); import * as UserActions from 'mattermost-redux/actions/users'; import configureStore from 'tests/test_store'; import { activateMfa, deactivateMfa, generateMfaSecret, } from './mfa'; describe('actions/views/mfa', () => { describe('activateMfa', () => { it('should call updateUserMfa to enable MFA for the current user', async () => { const currentUserId = 'abcd'; const store = configureStore({ entities: { users: { currentUserId, }, }, }); jest.mocked(UserActions.updateUserMfa).mockImplementation(() => async () => ({data: true})); const code = 'mfa code'; await store.dispatch(activateMfa(code)); expect(UserActions.updateUserMfa).toHaveBeenCalledWith(currentUserId, true, code); }); }); describe('deactivateMfa', () => { it('should call updateUserMfa to disable MFA for the current user', async () => { const currentUserId = 'abcd'; const store = configureStore({ entities: { users: { currentUserId, }, }, }); jest.mocked(UserActions.updateUserMfa).mockImplementation(() => async () => ({data: true})); await store.dispatch(deactivateMfa()); expect(UserActions.updateUserMfa).toHaveBeenCalledWith(currentUserId, false); }); }); describe('generateMfaSecret', () => { it('should call generateMfaSecret for the current user', async () => { const currentUserId = 'abcd'; const store = configureStore({ entities: { users: { currentUserId, }, }, }); jest.mocked(UserActions.generateMfaSecret).mockImplementation(() => async () => ({data: {secret: '1234', qr_code: ''}})); await store.dispatch(generateMfaSecret()); expect(UserActions.generateMfaSecret).toHaveBeenCalledWith(currentUserId); }); }); });