/*
* Copyright OpenSearch Contributors
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* or in the "license" file accompanying this file. This file 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 { shallow } from 'enzyme';
import React from 'react';
import { AuthView } from '../auth-view';
// eslint-disable-next-line
const mockAuthViewUtils = require('../../../utils/auth-view-utils');
describe('Auth view', () => {
const mockCoreStart = {
http: 1,
};
const setState = jest.fn();
beforeEach(() => {
jest.spyOn(React, 'useState').mockImplementation((initialValue) => [initialValue, setState]);
jest.spyOn(React, 'useEffect').mockImplementationOnce((f) => f());
});
it('valid data', (done) => {
const config = {
authc: {
basic_internal_auth_domain: {
authentication_backend: {
type: 'intern',
config: {},
},
},
},
authz: {
ldap: {
http_enabled: true,
},
},
};
mockAuthViewUtils.getSecurityConfig = jest.fn().mockReturnValue(config);
shallow();
process.nextTick(() => {
expect(mockAuthViewUtils.getSecurityConfig).toHaveBeenCalledTimes(1);
expect(setState).toHaveBeenNthCalledWith(1, config.authc);
expect(setState).toHaveBeenNthCalledWith(2, config.authz);
done();
});
});
it('return error', (done) => {
mockAuthViewUtils.getSecurityConfig = jest.fn().mockImplementationOnce(() => {
throw Error();
});
jest.spyOn(console, 'log').mockImplementationOnce(() => {});
shallow();
process.nextTick(() => {
expect(mockAuthViewUtils.getSecurityConfig).toHaveBeenCalledTimes(1);
expect(setState).toHaveBeenCalledTimes(0);
done();
});
});
});