From 30bdb73eef2a4cf7407cecc4e4ee23d145c6aaf6 Mon Sep 17 00:00:00 2001 From: Hanabi <317387557+Hanabi9248@users.noreply.github.com> Date: Tue, 22 Sep 2026 15:16:25 +0800 Subject: [PATCH 1/2] fix: reset confirm-order loading after request failures --- src/views/CloudNative/ConfirmOrder/index.vue | 2 ++ 1 file changed, 2 insertions(+) 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) }) } From 251ee12a87b64ed733ac5a93e5e627ebfa997b61 Mon Sep 17 00:00:00 2001 From: Hanabi <317387557+Hanabi9248@users.noreply.github.com> Date: Tue, 22 Sep 2026 15:17:31 +0800 Subject: [PATCH 2/2] test: cover failed instance creation and restore requests --- tests/unit/components/ConfirmOrder.spec.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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, {