diff options
Diffstat (limited to 'spec/frontend/vue_mr_widget/components/mr_widget_terraform_plan_spec.js')
-rw-r--r-- | spec/frontend/vue_mr_widget/components/mr_widget_terraform_plan_spec.js | 18 |
1 files changed, 18 insertions, 0 deletions
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 index 1951b56587a..91e95b2bdb1 100644 --- 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 @@ -3,6 +3,7 @@ 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'; +import Poll from '~/lib/utils/poll'; const plan = { create: 10, @@ -57,11 +58,23 @@ describe('MrWidgetTerraformPlan', () => { }); describe('successful poll', () => { + let pollRequest; + let pollStop; + beforeEach(() => { + pollRequest = jest.spyOn(Poll.prototype, 'makeRequest'); + pollStop = jest.spyOn(Poll.prototype, 'stop'); + mockPollingApi(200, { 'tfplan.json': plan }, {}); + return mountWrapper(); }); + afterEach(() => { + pollRequest.mockRestore(); + pollStop.mockRestore(); + }); + it('content change text', () => { expect(wrapper.find(GlSprintf).exists()).toBe(true); }); @@ -69,6 +82,11 @@ describe('MrWidgetTerraformPlan', () => { it('renders button when url is found', () => { expect(wrapper.find('a').text()).toContain('View full log'); }); + + it('does not make additional requests after poll is successful', () => { + expect(pollRequest).toHaveBeenCalledTimes(1); + expect(pollStop).toHaveBeenCalledTimes(1); + }); }); describe('polling fails', () => { |