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:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-04-23 15:09:52 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-23 15:09:52 +0300
commitecf1ffc19875a94c9de675b0559adc408b202515 (patch)
tree92f76d0b7cbd9161eb4dff35ca4753f45f4bc6d2 /spec/frontend/security_configuration
parent65f7976d0cd11d91a4c0945b2c63a1aa2f888b07 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/security_configuration')
-rw-r--r--spec/frontend/security_configuration/configuration_table_spec.js16
-rw-r--r--spec/frontend/security_configuration/manage_sast_spec.js136
-rw-r--r--spec/frontend/security_configuration/upgrade_spec.js2
3 files changed, 13 insertions, 141 deletions
diff --git a/spec/frontend/security_configuration/configuration_table_spec.js b/spec/frontend/security_configuration/configuration_table_spec.js
index a1789052c92..fbd72265c4b 100644
--- a/spec/frontend/security_configuration/configuration_table_spec.js
+++ b/spec/frontend/security_configuration/configuration_table_spec.js
@@ -1,7 +1,7 @@
import { mount } from '@vue/test-utils';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
import ConfigurationTable from '~/security_configuration/components/configuration_table.vue';
-import { scanners, UPGRADE_CTA } from '~/security_configuration/components/scanners_constants';
+import { scanners, UPGRADE_CTA } from '~/security_configuration/components/constants';
import {
REPORT_TYPE_SAST,
@@ -12,7 +12,13 @@ describe('Configuration Table Component', () => {
let wrapper;
const createComponent = () => {
- wrapper = extendedWrapper(mount(ConfigurationTable, {}));
+ wrapper = extendedWrapper(
+ mount(ConfigurationTable, {
+ provide: {
+ projectPath: 'testProjectPath',
+ },
+ }),
+ );
};
const findHelpLinks = () => wrapper.findAll('[data-testid="help-link"]');
@@ -30,8 +36,10 @@ describe('Configuration Table Component', () => {
expect(wrapper.text()).toContain(scanner.name);
expect(wrapper.text()).toContain(scanner.description);
if (scanner.type === REPORT_TYPE_SAST) {
- expect(wrapper.findByTestId(scanner.type).text()).toBe('Configure via merge request');
- } else if (scanner.type !== REPORT_TYPE_SECRET_DETECTION) {
+ expect(wrapper.findByTestId(scanner.type).text()).toBe('Configure via Merge Request');
+ } else if (scanner.type === REPORT_TYPE_SECRET_DETECTION) {
+ expect(wrapper.findByTestId(scanner.type).exists()).toBe(false);
+ } else {
expect(wrapper.findByTestId(scanner.type).text()).toMatchInterpolatedText(UPGRADE_CTA);
}
});
diff --git a/spec/frontend/security_configuration/manage_sast_spec.js b/spec/frontend/security_configuration/manage_sast_spec.js
deleted file mode 100644
index 15a57210246..00000000000
--- a/spec/frontend/security_configuration/manage_sast_spec.js
+++ /dev/null
@@ -1,136 +0,0 @@
-import { GlButton } from '@gitlab/ui';
-import { mount } from '@vue/test-utils';
-import Vue from 'vue';
-import VueApollo from 'vue-apollo';
-import createMockApollo from 'helpers/mock_apollo_helper';
-import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-import waitForPromises from 'helpers/wait_for_promises';
-import { redirectTo } from '~/lib/utils/url_utility';
-import ManageSast from '~/security_configuration/components/manage_sast.vue';
-import configureSastMutation from '~/security_configuration/graphql/configure_sast.mutation.graphql';
-
-jest.mock('~/lib/utils/url_utility', () => ({
- redirectTo: jest.fn(),
-}));
-
-Vue.use(VueApollo);
-
-describe('Manage Sast Component', () => {
- let wrapper;
-
- const findButton = () => wrapper.findComponent(GlButton);
- const successHandler = async () => {
- return {
- data: {
- configureSast: {
- successPath: 'testSuccessPath',
- errors: [],
- __typename: 'ConfigureSastPayload',
- },
- },
- };
- };
-
- const noSuccessPathHandler = async () => {
- return {
- data: {
- configureSast: {
- successPath: '',
- errors: [],
- __typename: 'ConfigureSastPayload',
- },
- },
- };
- };
-
- const errorHandler = async () => {
- return {
- data: {
- configureSast: {
- successPath: 'testSuccessPath',
- errors: ['foo'],
- __typename: 'ConfigureSastPayload',
- },
- },
- };
- };
-
- const pendingHandler = () => new Promise(() => {});
-
- function createMockApolloProvider(handler) {
- const requestHandlers = [[configureSastMutation, handler]];
-
- return createMockApollo(requestHandlers);
- }
-
- function createComponent(options = {}) {
- const { mockApollo } = options;
- wrapper = extendedWrapper(
- mount(ManageSast, {
- apolloProvider: mockApollo,
- }),
- );
- }
-
- afterEach(() => {
- wrapper.destroy();
- wrapper = null;
- });
-
- it('should render Button with correct text', () => {
- createComponent();
- expect(findButton().text()).toContain('Configure via merge request');
- });
-
- describe('given a successful response', () => {
- beforeEach(() => {
- const mockApollo = createMockApolloProvider(successHandler);
- createComponent({ mockApollo });
- });
-
- it('should call redirect helper with correct value', async () => {
- await wrapper.trigger('click');
- await waitForPromises();
- expect(redirectTo).toHaveBeenCalledTimes(1);
- expect(redirectTo).toHaveBeenCalledWith('testSuccessPath');
- // This is done for UX reasons. If the loading prop is set to false
- // on success, then there's a period where the button is clickable
- // again. Instead, we want the button to display a loading indicator
- // for the remainder of the lifetime of the page (i.e., until the
- // browser can start painting the new page it's been redirected to).
- expect(findButton().props().loading).toBe(true);
- });
- });
-
- describe('given a pending response', () => {
- beforeEach(() => {
- const mockApollo = createMockApolloProvider(pendingHandler);
- createComponent({ mockApollo });
- });
-
- it('renders spinner correctly', async () => {
- expect(findButton().props('loading')).toBe(false);
- await wrapper.trigger('click');
- await waitForPromises();
- expect(findButton().props('loading')).toBe(true);
- });
- });
-
- describe.each`
- handler | message
- ${noSuccessPathHandler} | ${'SAST merge request creation mutation failed'}
- ${errorHandler} | ${'foo'}
- `('given an error response', ({ handler, message }) => {
- beforeEach(() => {
- const mockApollo = createMockApolloProvider(handler);
- createComponent({ mockApollo });
- });
-
- it('should catch and emit error', async () => {
- await wrapper.trigger('click');
- await waitForPromises();
- expect(wrapper.emitted('error')).toEqual([[message]]);
- expect(findButton().props('loading')).toBe(false);
- });
- });
-});
diff --git a/spec/frontend/security_configuration/upgrade_spec.js b/spec/frontend/security_configuration/upgrade_spec.js
index 1f0cc795fc5..20bb38aa469 100644
--- a/spec/frontend/security_configuration/upgrade_spec.js
+++ b/spec/frontend/security_configuration/upgrade_spec.js
@@ -1,5 +1,5 @@
import { mount } from '@vue/test-utils';
-import { UPGRADE_CTA } from '~/security_configuration/components/scanners_constants';
+import { UPGRADE_CTA } from '~/security_configuration/components/constants';
import Upgrade from '~/security_configuration/components/upgrade.vue';
const TEST_URL = 'http://www.example.test';