summaryrefslogtreecommitdiff
path: root/spec/frontend
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-13 12:10:03 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-13 12:10:03 +0000
commit75ee59f7a108cf0c57e1e66e3ef5e439bae24fcd (patch)
treeb2f1ec89e16c6b27041f608c9fb12b7586e5ce94 /spec/frontend
parente79918ce90dc31527be1ef0140a99cfe450d931e (diff)
downloadgitlab-ce-75ee59f7a108cf0c57e1e66e3ef5e439bae24fcd.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend')
-rw-r--r--spec/frontend/logs/components/environment_logs_spec.js10
-rw-r--r--spec/frontend/vue_mr_widget/components/mr_widget_terraform_plan_spec.js89
2 files changed, 96 insertions, 3 deletions
diff --git a/spec/frontend/logs/components/environment_logs_spec.js b/spec/frontend/logs/components/environment_logs_spec.js
index befcd462828..d097610cb0a 100644
--- a/spec/frontend/logs/components/environment_logs_spec.js
+++ b/spec/frontend/logs/components/environment_logs_spec.js
@@ -43,7 +43,7 @@ describe('EnvironmentLogs', () => {
const findSimpleFilters = () => wrapper.find({ ref: 'log-simple-filters' });
const findAdvancedFilters = () => wrapper.find({ ref: 'log-advanced-filters' });
- const findInfoAlert = () => wrapper.find('.js-elasticsearch-alert');
+ const findElasticsearchNotice = () => wrapper.find({ ref: 'elasticsearchNotice' });
const findLogControlButtons = () => wrapper.find({ name: 'log-control-buttons-stub' });
const findInfiniteScroll = () => wrapper.find({ ref: 'infiniteScroll' });
@@ -160,6 +160,10 @@ describe('EnvironmentLogs', () => {
initWrapper();
});
+ it('does not display an alert to upgrade to ES', () => {
+ expect(findElasticsearchNotice().exists()).toBe(false);
+ });
+
it('displays a disabled environments dropdown', () => {
expect(findEnvironmentsDropdown().attributes('disabled')).toBe('true');
expect(findEnvironmentsDropdown().findAll(GlDropdownItem).length).toBe(0);
@@ -204,7 +208,7 @@ describe('EnvironmentLogs', () => {
});
it('displays an alert to upgrade to ES', () => {
- expect(findInfoAlert().exists()).toBe(true);
+ expect(findElasticsearchNotice().exists()).toBe(true);
});
it('displays simple filters for kubernetes logs API', () => {
@@ -235,7 +239,7 @@ describe('EnvironmentLogs', () => {
});
it('does not display an alert to upgrade to ES', () => {
- expect(findInfoAlert().exists()).toBe(false);
+ expect(findElasticsearchNotice().exists()).toBe(false);
});
it('populates environments dropdown', () => {
diff --git a/spec/frontend/vue_mr_widget/components/mr_widget_terraform_plan_spec.js b/spec/frontend/vue_mr_widget/components/mr_widget_terraform_plan_spec.js
new file mode 100644
index 00000000000..1951b56587a
--- /dev/null
+++ b/spec/frontend/vue_mr_widget/components/mr_widget_terraform_plan_spec.js
@@ -0,0 +1,89 @@
+import { GlLoadingIcon, GlSprintf } from '@gitlab/ui';
+import { shallowMount } from '@vue/test-utils';
+import axios from '~/lib/utils/axios_utils';
+import MockAdapter from 'axios-mock-adapter';
+import MrWidgetTerraformPlan from '~/vue_merge_request_widget/components/mr_widget_terraform_plan.vue';
+
+const plan = {
+ create: 10,
+ update: 20,
+ delete: 30,
+ job_path: '/path/to/ci/logs',
+};
+
+describe('MrWidgetTerraformPlan', () => {
+ let mock;
+ let wrapper;
+
+ const propsData = { endpoint: '/path/to/terraform/report.json' };
+
+ const mockPollingApi = (response, body, header) => {
+ mock.onGet(propsData.endpoint).reply(response, body, header);
+ };
+
+ const mountWrapper = () => {
+ wrapper = shallowMount(MrWidgetTerraformPlan, { propsData });
+ return axios.waitForAll();
+ };
+
+ beforeEach(() => {
+ mock = new MockAdapter(axios);
+ });
+
+ afterEach(() => {
+ wrapper.destroy();
+ mock.restore();
+ });
+
+ describe('loading poll', () => {
+ beforeEach(() => {
+ mockPollingApi(200, { 'tfplan.json': plan }, {});
+
+ return mountWrapper().then(() => {
+ wrapper.setData({ loading: true });
+ return wrapper.vm.$nextTick();
+ });
+ });
+
+ it('Diplays loading icon when loading is true', () => {
+ expect(wrapper.find(GlLoadingIcon).exists()).toBe(true);
+
+ expect(wrapper.find(GlSprintf).exists()).toBe(false);
+
+ expect(wrapper.text()).not.toContain(
+ 'A terraform report was generated in your pipelines. Changes are unknown',
+ );
+ });
+ });
+
+ describe('successful poll', () => {
+ beforeEach(() => {
+ mockPollingApi(200, { 'tfplan.json': plan }, {});
+ return mountWrapper();
+ });
+
+ it('content change text', () => {
+ expect(wrapper.find(GlSprintf).exists()).toBe(true);
+ });
+
+ it('renders button when url is found', () => {
+ expect(wrapper.find('a').text()).toContain('View full log');
+ });
+ });
+
+ describe('polling fails', () => {
+ beforeEach(() => {
+ mockPollingApi(500, null, {});
+ return mountWrapper();
+ });
+
+ it('does not display changes text when api fails', () => {
+ expect(wrapper.text()).toContain(
+ 'A terraform report was generated in your pipelines. Changes are unknown',
+ );
+
+ expect(wrapper.find('.js-terraform-report-link').exists()).toBe(false);
+ expect(wrapper.text()).not.toContain('View full log');
+ });
+ });
+});