Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Protect fake-timer cleanup with
try/finallyto avoid cross-test leakage.If any assertion fails before Line 1016, fake timers stay enabled and may cascade failures into later tests. Wrap the body in
try/finallyand restore timers infinally.Suggested fix
it('should not fetch queries with different durations for the duration of the restoring period when isRestoring is true', async () => { - vi.useFakeTimers()-- const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1'))- const queryFn2 = vi.fn(() => sleep(20).then(() => 'data2'))-- const rendered = render(IsRestoringExample, {- props: { queryFn1, queryFn2 },- })-- await vi.advanceTimersByTimeAsync(0)-- expect(rendered.getByTestId('status1')).toHaveTextContent('pending')- expect(rendered.getByTestId('status2')).toHaveTextContent('pending')- expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle')- expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle')- expect(rendered.getByTestId('data1')).toHaveTextContent('undefined')- expect(rendered.getByTestId('data2')).toHaveTextContent('undefined')- expect(queryFn1).toHaveBeenCalledTimes(0)- expect(queryFn2).toHaveBeenCalledTimes(0)-- await vi.advanceTimersByTimeAsync(11)-- expect(rendered.getByTestId('status1')).toHaveTextContent('pending')- expect(rendered.getByTestId('status2')).toHaveTextContent('pending')- expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle')- expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle')- expect(rendered.getByTestId('data1')).toHaveTextContent('undefined')- expect(rendered.getByTestId('data2')).toHaveTextContent('undefined')- expect(queryFn1).toHaveBeenCalledTimes(0)- expect(queryFn2).toHaveBeenCalledTimes(0)-- await vi.advanceTimersByTimeAsync(10)-- expect(rendered.getByTestId('status1')).toHaveTextContent('pending')- expect(rendered.getByTestId('status2')).toHaveTextContent('pending')- expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle')- expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle')- expect(rendered.getByTestId('data1')).toHaveTextContent('undefined')- expect(rendered.getByTestId('data2')).toHaveTextContent('undefined')- expect(queryFn1).toHaveBeenCalledTimes(0)- expect(queryFn2).toHaveBeenCalledTimes(0)-- vi.useRealTimers()+ vi.useFakeTimers()+ try {+ const queryFn1 = vi.fn(() => sleep(10).then(() => 'data1'))+ const queryFn2 = vi.fn(() => sleep(20).then(() => 'data2'))++ const rendered = render(IsRestoringExample, {+ props: { queryFn1, queryFn2 },+ })++ await vi.advanceTimersByTimeAsync(0)++ expect(rendered.getByTestId('status1')).toHaveTextContent('pending')+ expect(rendered.getByTestId('status2')).toHaveTextContent('pending')+ expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle')+ expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle')+ expect(rendered.getByTestId('data1')).toHaveTextContent('undefined')+ expect(rendered.getByTestId('data2')).toHaveTextContent('undefined')+ expect(queryFn1).toHaveBeenCalledTimes(0)+ expect(queryFn2).toHaveBeenCalledTimes(0)++ await vi.advanceTimersByTimeAsync(11)++ expect(rendered.getByTestId('status1')).toHaveTextContent('pending')+ expect(rendered.getByTestId('status2')).toHaveTextContent('pending')+ expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle')+ expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle')+ expect(rendered.getByTestId('data1')).toHaveTextContent('undefined')+ expect(rendered.getByTestId('data2')).toHaveTextContent('undefined')+ expect(queryFn1).toHaveBeenCalledTimes(0)+ expect(queryFn2).toHaveBeenCalledTimes(0)++ await vi.advanceTimersByTimeAsync(10)++ expect(rendered.getByTestId('status1')).toHaveTextContent('pending')+ expect(rendered.getByTestId('status2')).toHaveTextContent('pending')+ expect(rendered.getByTestId('fetchStatus1')).toHaveTextContent('idle')+ expect(rendered.getByTestId('fetchStatus2')).toHaveTextContent('idle')+ expect(rendered.getByTestId('data1')).toHaveTextContent('undefined')+ expect(rendered.getByTestId('data2')).toHaveTextContent('undefined')+ expect(queryFn1).toHaveBeenCalledTimes(0)+ expect(queryFn2).toHaveBeenCalledTimes(0)+ } finally {+ vi.useRealTimers()+ } })📝 Committable suggestion
🤖 Prompt for AI Agents