diff --git a/web/__test__/components/Activation/ActivationPluginsStep.test.ts b/web/__test__/components/Activation/ActivationPluginsStep.test.ts index c3d42dc07..2975a6ea6 100644 --- a/web/__test__/components/Activation/ActivationPluginsStep.test.ts +++ b/web/__test__/components/Activation/ActivationPluginsStep.test.ts @@ -65,6 +65,14 @@ describe('ActivationPluginsStep', () => { const { wrapper, props } = mountComponent(); + const checkboxes = wrapper.findAll('input[type="checkbox"]'); + for (const checkbox of checkboxes) { + const input = checkbox.element as HTMLInputElement; + input.checked = true; + await checkbox.trigger('change'); + } + await flushPromises(); + const installButton = wrapper .findAll('[data-testid="brand-button"]') .find((button) => button.text().includes('Install')); @@ -76,15 +84,33 @@ describe('ActivationPluginsStep', () => { const firstCallArgs = installPluginMock.mock.calls[0]?.[0]; expect(firstCallArgs?.forced).toBe(true); expect(firstCallArgs?.url).toContain('community.applications'); - expect(props.onComplete).toHaveBeenCalled(); + expect(props.onComplete).not.toHaveBeenCalled(); expect(wrapper.html()).toContain('installation started'); expect(wrapper.html()).toContain('installed successfully'); + + const continueButton = wrapper + .findAll('[data-testid="brand-button"]') + .find((button) => button.text().includes('Continue')); + expect(continueButton).toBeTruthy(); + const callsBeforeContinue = props.onComplete.mock.calls.length; + await continueButton!.trigger('click'); + + expect(props.onComplete.mock.calls.length).toBeGreaterThanOrEqual(callsBeforeContinue + 1); }); it('shows error message when installation fails', async () => { installPluginMock.mockRejectedValueOnce(new Error('install failed')); const { wrapper, props } = mountComponent(); + + const errorCheckboxes = wrapper.findAll('input[type="checkbox"]'); + for (const checkbox of errorCheckboxes) { + const input = checkbox.element as HTMLInputElement; + input.checked = true; + await checkbox.trigger('change'); + } + await flushPromises(); + const installButton = wrapper .findAll('[data-testid="brand-button"]') .find((button) => button.text().includes('Install')); diff --git a/web/src/components/Activation/ActivationPluginsStep.vue b/web/src/components/Activation/ActivationPluginsStep.vue index 56a6362af..68cdfe487 100644 --- a/web/src/components/Activation/ActivationPluginsStep.vue +++ b/web/src/components/Activation/ActivationPluginsStep.vue @@ -1,5 +1,5 @@