diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-13 15:10:03 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-13 15:10:03 +0300 |
commit | 75ee59f7a108cf0c57e1e66e3ef5e439bae24fcd (patch) | |
tree | b2f1ec89e16c6b27041f608c9fb12b7586e5ce94 /spec/frontend | |
parent | e79918ce90dc31527be1ef0140a99cfe450d931e (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend')
-rw-r--r-- | spec/frontend/logs/components/environment_logs_spec.js | 10 | ||||
-rw-r--r-- | spec/frontend/vue_mr_widget/components/mr_widget_terraform_plan_spec.js | 89 |
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'); + }); + }); +}); |