diff --git a/client/src/components/Workflow/WorkflowRunButton.test.ts b/client/src/components/Workflow/WorkflowRunButton.test.ts index 11c02dc95549..dd9c9530abbb 100644 --- a/client/src/components/Workflow/WorkflowRunButton.test.ts +++ b/client/src/components/Workflow/WorkflowRunButton.test.ts @@ -1,4 +1,5 @@ import { mount } from "@vue/test-utils"; +import flushPromises from "flush-promises"; import { getLocalVue } from "tests/jest/helpers"; import { generateRandomString } from "./testUtils"; @@ -11,12 +12,19 @@ const WORKFLOW_ID = generateRandomString(); const WORKFLOW_RUN_BUTTON_SELECTOR = `[data-workflow-run="${WORKFLOW_ID}"]`; async function mountWorkflowRunButton(props?: { id: string; full?: boolean }) { + const mockRouter = { + push: jest.fn(), + }; + const wrapper = mount(WorkflowRunButton as object, { propsData: { ...props }, localVue, + mocks: { + $router: mockRouter, + }, }); - return { wrapper }; + return { wrapper, mockRouter }; } describe("WorkflowRunButton.vue", () => { @@ -29,10 +37,14 @@ describe("WorkflowRunButton.vue", () => { }); it("should redirect to workflow run page", async () => { - const { wrapper } = await mountWorkflowRunButton({ id: WORKFLOW_ID }); + const { wrapper, mockRouter } = await mountWorkflowRunButton({ id: WORKFLOW_ID }); + + const runButton = wrapper.find(WORKFLOW_RUN_BUTTON_SELECTOR); - const runButton = await wrapper.find(WORKFLOW_RUN_BUTTON_SELECTOR); + await runButton.trigger("click"); + await flushPromises(); - expect(runButton.attributes("href")).toBe(`/workflows/run?id=${WORKFLOW_ID}`); + expect(mockRouter.push).toHaveBeenCalledTimes(1); + expect(mockRouter.push).toHaveBeenCalledWith(`/workflows/run?id=${WORKFLOW_ID}`); }); });