From 34d7f8ecebdfe5b3061fef1621c7228f619d5b41 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 13:00:06 +0000 Subject: [PATCH] refactor: extract flushFileReader helper function for better maintainability Co-authored-by: hyoban <38493346+hyoban@users.noreply.github.com> --- .../components/update-dsl-modal.spec.tsx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/web/app/components/rag-pipeline/components/update-dsl-modal.spec.tsx b/web/app/components/rag-pipeline/components/update-dsl-modal.spec.tsx index 824ade5d6b..4440b20af9 100644 --- a/web/app/components/rag-pipeline/components/update-dsl-modal.spec.tsx +++ b/web/app/components/rag-pipeline/components/update-dsl-modal.spec.tsx @@ -151,6 +151,11 @@ describe('UpdateDSLModal', () => { onImport: mockOnImport, } + // Helper function to flush FileReader microtasks + const flushFileReader = async () => { + await flushFileReader() + } + beforeEach(() => { vi.clearAllMocks() mockImportDSL.mockResolvedValue({ @@ -394,7 +399,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) // Wait for FileReader to process - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) await waitFor(() => { @@ -430,7 +435,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) // Wait for FileReader to process - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) await waitFor(() => { @@ -463,7 +468,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) await waitFor(() => { @@ -552,7 +557,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) // Wait for FileReader to process and button to be enabled @@ -619,7 +624,7 @@ describe('UpdateDSLModal', () => { // Flush the FileReader microtask to ensure fileContent is set await act(async () => { - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) const importButton = screen.getByText('common.overwriteAndImport') @@ -675,7 +680,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) // Flush microtasks scheduled by the FileReader mock (which uses queueMicrotask) - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) const importButton = screen.getByText('common.overwriteAndImport') @@ -712,7 +717,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) await waitFor(() => { @@ -749,7 +754,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) await waitFor(() => { @@ -807,7 +812,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) // Flush microtasks scheduled by the FileReader mock (which uses queueMicrotask) - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) const importButton = screen.getByText('common.overwriteAndImport') @@ -1065,7 +1070,7 @@ describe('UpdateDSLModal', () => { await act(async () => { fireEvent.change(fileInput, { target: { files: [file] } }) // Flush microtasks scheduled by the FileReader mock (which uses queueMicrotask) - await new Promise(resolve => queueMicrotask(resolve)) + await flushFileReader() }) const importButton = screen.getByText('common.overwriteAndImport')