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>2023-01-21 03:08:59 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-01-21 03:08:59 +0300
commit367847e266036617e540e41b7fd3c7d03033800c (patch)
treea14547ad7556d48dcdeb977021f8cd89305ea026 /spec/frontend/environments/stop_stale_environments_modal_spec.js
parent5d7e5a8902382caaffa616e1b496b684ba72d148 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/environments/stop_stale_environments_modal_spec.js')
-rw-r--r--spec/frontend/environments/stop_stale_environments_modal_spec.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/spec/frontend/environments/stop_stale_environments_modal_spec.js b/spec/frontend/environments/stop_stale_environments_modal_spec.js
new file mode 100644
index 00000000000..a2ab4f707b5
--- /dev/null
+++ b/spec/frontend/environments/stop_stale_environments_modal_spec.js
@@ -0,0 +1,60 @@
+import MockAdapter from 'axios-mock-adapter';
+import { GlModal } from '@gitlab/ui';
+import { shallowMount } from '@vue/test-utils';
+import StopStaleEnvironmentsModal from '~/environments/components/stop_stale_environments_modal.vue';
+import axios from '~/lib/utils/axios_utils';
+import { getDateInPast } from '~/lib/utils/datetime_utility';
+import { STOP_STALE_ENVIRONMENTS_PATH } from '~/api/environments_api';
+import { HTTP_STATUS_OK } from '~/lib/utils/http_status';
+
+const DEFAULT_OPTS = {
+ provide: { projectId: 1 },
+};
+
+const ONE_WEEK_AGO = getDateInPast(new Date(), 7);
+const TEN_YEARS_AGO = getDateInPast(new Date(), 3650);
+
+describe('~/environments/components/stop_stale_environments_modal.vue', () => {
+ let wrapper;
+ let mock;
+ let before;
+ let originalGon;
+
+ const createWrapper = (opts = {}) =>
+ shallowMount(StopStaleEnvironmentsModal, {
+ ...DEFAULT_OPTS,
+ ...opts,
+ propsData: { modalId: 'stop-stale-environments-modal', visible: true },
+ });
+
+ beforeEach(() => {
+ originalGon = window.gon;
+ window.gon = { api_version: 'v4' };
+
+ mock = new MockAdapter(axios);
+ jest.spyOn(axios, 'post');
+ wrapper = createWrapper();
+ before = wrapper.find("[data-testid='stop-environments-before']");
+ });
+
+ afterEach(() => {
+ mock.restore();
+ wrapper.destroy();
+ jest.resetAllMocks();
+ window.gon = originalGon;
+ });
+
+ it('sets the correct min and max dates', async () => {
+ expect(before.props().minDate.toISOString()).toBe(TEN_YEARS_AGO.toISOString());
+ expect(before.props().maxDate.toISOString()).toBe(ONE_WEEK_AGO.toISOString());
+ });
+
+ it('requests cleanup when submit is clicked', async () => {
+ mock.onPost().replyOnce(HTTP_STATUS_OK);
+ wrapper.findComponent(GlModal).vm.$emit('primary');
+ const url = STOP_STALE_ENVIRONMENTS_PATH.replace(':id', 1).replace(':version', 'v4');
+ expect(axios.post).toHaveBeenCalledWith(url, null, {
+ params: { before: ONE_WEEK_AGO.toISOString() },
+ });
+ });
+});