diff --git a/src/views/CloudNative/ConfirmOrder/index.vue b/src/views/CloudNative/ConfirmOrder/index.vue index 2505ba2..d2eeb97 100644 --- a/src/views/CloudNative/ConfirmOrder/index.vue +++ b/src/views/CloudNative/ConfirmOrder/index.vue @@ -221,6 +221,7 @@ export default { // _this.$router.push({ path: '/nativeCloud/DBInstance/index', query: { flag: _this.flag }}) } }).catch(function(error) { + _this.loading = false _this.$message.error(error) }) } else { @@ -237,6 +238,7 @@ export default { _this.$router.push({ path: '/nativeCloud/DBInstance/index', query: { flag: _this.flag }}) } }).catch(function(error) { + _this.loading = false _this.$message.error(error) }) } diff --git a/tests/unit/components/ConfirmOrder.spec.js b/tests/unit/components/ConfirmOrder.spec.js index 1ce2c94..437dc8c 100644 --- a/tests/unit/components/ConfirmOrder.spec.js +++ b/tests/unit/components/ConfirmOrder.spec.js @@ -24,6 +24,27 @@ const mockAxios = new MockAdapter(axios) describe('ConfirmOrder.vue', () => { ConfirmOrder.mounted = jest.fn() + it.each([0, 1])('请求失败后解除加载状态 (restoreType=%s)', async (restoreType) => { + const router = new VueRouter({ routes }) + const wrapper = shallowMount(ConfirmOrder, { localVue, router }) + const errorMessage = jest.fn() + wrapper.vm.$message = { error: errorMessage } + wrapper.setData({ + confirmData: { restoreType }, + createForm: { originalInstanceId: 'instance-1', originalBackupId: 'backup-1' } + }) + const url = restoreType === 1 ? '/instances/instance-1/restore' : '/instances' + mockAxios.onPost(url).networkError() + + wrapper.vm.onSubmit() + expect(wrapper.vm.loading).toBe(true) + await new Promise(resolve => setImmediate(resolve)) + + expect(errorMessage).toHaveBeenCalled() + expect(wrapper.vm.loading).toBe(false) + wrapper.destroy() + }) + it('创建新实例成功', async () => { const router = new VueRouter({ routes }) const wrapper = shallowMount(ConfirmOrder, {