Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/token_access/opt_in_jwt_spec.js')
-rw-r--r--spec/frontend/token_access/opt_in_jwt_spec.js144
1 files changed, 0 insertions, 144 deletions
diff --git a/spec/frontend/token_access/opt_in_jwt_spec.js b/spec/frontend/token_access/opt_in_jwt_spec.js
deleted file mode 100644
index 3a68f247aa6..00000000000
--- a/spec/frontend/token_access/opt_in_jwt_spec.js
+++ /dev/null
@@ -1,144 +0,0 @@
-import { GlLink, GlLoadingIcon, GlToggle, GlSprintf } from '@gitlab/ui';
-import Vue from 'vue';
-import VueApollo from 'vue-apollo';
-import createMockApollo from 'helpers/mock_apollo_helper';
-import { mountExtended, shallowMountExtended } from 'helpers/vue_test_utils_helper';
-import waitForPromises from 'helpers/wait_for_promises';
-import { createAlert } from '~/flash';
-import { OPT_IN_JWT_HELP_LINK } from '~/token_access/constants';
-import OptInJwt from '~/token_access/components/opt_in_jwt.vue';
-import getOptInJwtSettingQuery from '~/token_access/graphql/queries/get_opt_in_jwt_setting.query.graphql';
-import updateOptInJwtMutation from '~/token_access/graphql/mutations/update_opt_in_jwt.mutation.graphql';
-import { optInJwtMutationResponse, optInJwtQueryResponse } from './mock_data';
-
-const errorMessage = 'An error occurred';
-const error = new Error(errorMessage);
-
-Vue.use(VueApollo);
-
-jest.mock('~/flash');
-
-describe('OptInJwt component', () => {
- let wrapper;
-
- const failureHandler = jest.fn().mockRejectedValue(error);
- const enabledOptInJwtHandler = jest.fn().mockResolvedValue(optInJwtQueryResponse(true));
- const disabledOptInJwtHandler = jest.fn().mockResolvedValue(optInJwtQueryResponse(false));
- const updateOptInJwtHandler = jest.fn().mockResolvedValue(optInJwtMutationResponse(true));
-
- const findHelpLink = () => wrapper.findComponent(GlLink);
- const findLoadingIcon = () => wrapper.findComponent(GlLoadingIcon);
- const findToggle = () => wrapper.findComponent(GlToggle);
- const findOptInJwtExpandedSection = () => wrapper.findByTestId('opt-in-jwt-expanded-section');
-
- const createMockApolloProvider = (requestHandlers) => {
- return createMockApollo(requestHandlers);
- };
-
- const createComponent = (requestHandlers, mountFn = shallowMountExtended, options = {}) => {
- wrapper = mountFn(OptInJwt, {
- provide: {
- fullPath: 'root/my-repo',
- },
- apolloProvider: createMockApolloProvider(requestHandlers),
- data() {
- return {
- targetProjectPath: 'root/test',
- };
- },
- ...options,
- });
- };
-
- const createShallowComponent = (requestHandlers, options = {}) =>
- createComponent(requestHandlers, shallowMountExtended, options);
- const createFullComponent = (requestHandlers, options = {}) =>
- createComponent(requestHandlers, mountExtended, options);
-
- describe('loading state', () => {
- it('shows loading state and hides toggle while waiting on query to resolve', async () => {
- createShallowComponent([[getOptInJwtSettingQuery, enabledOptInJwtHandler]]);
-
- expect(findLoadingIcon().exists()).toBe(true);
- expect(findToggle().exists()).toBe(false);
-
- await waitForPromises();
-
- expect(findLoadingIcon().exists()).toBe(false);
- expect(findToggle().exists()).toBe(true);
- });
- });
-
- describe('template', () => {
- it('renders help link', async () => {
- createShallowComponent([[getOptInJwtSettingQuery, enabledOptInJwtHandler]], {
- stubs: {
- GlToggle,
- GlSprintf,
- GlLink,
- },
- });
- await waitForPromises();
-
- expect(findHelpLink().exists()).toBe(true);
- expect(findHelpLink().attributes('href')).toBe(OPT_IN_JWT_HELP_LINK);
- });
- });
-
- describe('toggle JWT token access', () => {
- it('code instruction is visible when toggle is enabled', async () => {
- createShallowComponent([[getOptInJwtSettingQuery, enabledOptInJwtHandler]]);
-
- await waitForPromises();
-
- expect(findToggle().props('value')).toBe(true);
- expect(findOptInJwtExpandedSection().exists()).toBe(true);
- });
-
- it('code instruction is hidden when toggle is disabled', async () => {
- createShallowComponent([[getOptInJwtSettingQuery, disabledOptInJwtHandler]]);
-
- await waitForPromises();
-
- expect(findToggle().props('value')).toBe(false);
- expect(findOptInJwtExpandedSection().exists()).toBe(false);
- });
-
- describe('update JWT token access', () => {
- it('calls updateOptInJwtMutation with correct arguments', async () => {
- createFullComponent([
- [getOptInJwtSettingQuery, disabledOptInJwtHandler],
- [updateOptInJwtMutation, updateOptInJwtHandler],
- ]);
-
- await waitForPromises();
-
- findToggle().vm.$emit('change', true);
-
- expect(updateOptInJwtHandler).toHaveBeenCalledWith({
- input: {
- fullPath: 'root/my-repo',
- optInJwt: true,
- },
- });
- });
-
- it('handles update error', async () => {
- createFullComponent([
- [getOptInJwtSettingQuery, enabledOptInJwtHandler],
- [updateOptInJwtMutation, failureHandler],
- ]);
-
- await waitForPromises();
-
- findToggle().vm.$emit('change', false);
-
- await waitForPromises();
-
- expect(createAlert).toHaveBeenCalledWith({
- message: 'An error occurred while update the setting. Please try again.',
- });
- });
- });
- });
-});