Skip to content

Commit 3e120ca

Browse files
authored
fix: some flakes (#3830)
1 parent 819dcd9 commit 3e120ca

File tree

7 files changed

+249
-63
lines changed

7 files changed

+249
-63
lines changed

src/layouts/Header/components/UserDropdown/UserDropdown.test.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,9 @@ describe('UserDropdown', () => {
166166

167167
const link = screen.getByText('Settings')
168168
expect(link).toBeVisible()
169-
expect(link).toHaveAttribute('href', '/account/gh/janedoe')
169+
await waitFor(() =>
170+
expect(link).toHaveAttribute('href', '/account/gh/janedoe')
171+
)
170172
})
171173

172174
it('shows sign out button', async () => {

src/pages/MembersPage/MembersActivation/MembersActivation.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ function MemberActivation() {
2222
const planAutoActivateIsDefined = !isUndefined(
2323
accountDetails?.planAutoActivate
2424
)
25+
const planDataIsDefined = !isUndefined(planData)
2526
const isNotTrialing =
2627
!planData?.plan?.isTrialPlan &&
2728
planData?.plan?.trialStatus !== TrialStatuses.ONGOING
@@ -30,7 +31,10 @@ function MemberActivation() {
3031
) // only show for admins on enterprise cloud plans
3132

3233
const showAutoActivate =
33-
planAutoActivateIsDefined && isNotTrialing && isNotAnEnterpriseDeveloper
34+
planAutoActivateIsDefined &&
35+
planDataIsDefined &&
36+
isNotTrialing &&
37+
isNotAnEnterpriseDeveloper
3438

3539
return (
3640
<div className="border-2 border-ds-gray-primary">

src/pages/RepoPage/CoverageTab/OverviewTab/subroute/ComponentsMultiSelect/ComponentsMultiSelect.test.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,12 @@ describe('ComponentsMultiSelect', () => {
194194

195195
render(<ComponentsMultiSelect />, { wrapper })
196196

197-
const select = await screen.findByText('All components')
197+
const select = await screen.findByRole('button', {
198+
name: 'Select components to show',
199+
})
198200
expect(select).toBeInTheDocument()
201+
202+
await waitFor(() => expect(select).not.toHaveAttribute('disabled'))
199203
await user.click(select)
200204

201205
const component1 = await screen.findByText('component-1')

src/pages/RepoPage/CoverageTab/OverviewTab/subroute/FileExplorer/FlagMultiSelect.test.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,12 @@ describe('FlagMultiSelect', () => {
232232

233233
render(<FlagMultiSelect />, { wrapper })
234234

235-
const select = await screen.findByText('All flags')
235+
const select = await screen.findByRole('button', {
236+
name: 'Select flags to show',
237+
})
236238
expect(select).toBeInTheDocument()
239+
240+
await waitFor(() => expect(select).not.toHaveAttribute('disabled'))
237241
await user.click(select)
238242

239243
const flag1 = await screen.findByText('flag-1')

src/pages/RepoPage/FailedTestsTab/FailedTestsPage/FailedTestsTable/FailedTestsTable.test.tsx

Lines changed: 51 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,17 @@ const node3 = {
6363
totalSkipCount: 13,
6464
}
6565

66+
const queryClient = new QueryClient({
67+
defaultOptions: {
68+
queries: {
69+
suspense: false,
70+
},
71+
},
72+
})
73+
6674
const server = setupServer()
6775
const wrapper =
6876
(
69-
queryClient: QueryClient,
7077
initialEntries: string[] = ['/gh/codecov/repo/tests']
7178
): React.FC<React.PropsWithChildren> =>
7279
({ children }) => (
@@ -139,14 +146,6 @@ describe('FailedTestsTable', () => {
139146
isPrivate = false,
140147
isFirstPullRequest = false,
141148
}: SetupArgs) {
142-
const queryClient = new QueryClient({
143-
defaultOptions: {
144-
queries: {
145-
suspense: false,
146-
},
147-
},
148-
})
149-
150149
const user = userEvent.setup({ delay: null })
151150
const mockVariables = vi.fn()
152151

@@ -221,22 +220,23 @@ describe('FailedTestsTable', () => {
221220
})
222221
)
223222

224-
return { queryClient, user, mockVariables }
223+
return { user, mockVariables }
225224
}
226225

227226
describe('renders table headers', () => {
228227
describe('when repo is private', () => {
229228
describe('when plan is team plan', () => {
230229
it('does not render flake rate column', async () => {
231-
const { queryClient } = setup({
230+
setup({
232231
planValue: Plans.USERS_TEAMM,
233232
isPrivate: true,
234233
})
235234
render(<FailedTestsTable />, {
236-
wrapper: wrapper(queryClient),
235+
wrapper: wrapper(),
237236
})
238237

239-
await waitFor(() => expect(queryClient.isFetching()).toBeFalsy())
238+
const tableData = await screen.findByText('test-1')
239+
expect(tableData).toBeInTheDocument()
240240

241241
const flakeRateColumn = screen.queryByText('Flake rate')
242242
expect(flakeRateColumn).not.toBeInTheDocument()
@@ -245,15 +245,16 @@ describe('FailedTestsTable', () => {
245245

246246
describe('when plan is free', () => {
247247
it('does not render flake rate column', async () => {
248-
const { queryClient } = setup({
248+
setup({
249249
planValue: Plans.USERS_DEVELOPER,
250250
isPrivate: true,
251251
})
252252
render(<FailedTestsTable />, {
253-
wrapper: wrapper(queryClient),
253+
wrapper: wrapper(),
254254
})
255255

256-
await waitFor(() => expect(queryClient.isFetching()).toBeFalsy())
256+
const tableData = await screen.findByText('test-1')
257+
expect(tableData).toBeInTheDocument()
257258

258259
const flakeRateColumn = screen.queryByText('Flake rate')
259260
expect(flakeRateColumn).not.toBeInTheDocument()
@@ -262,12 +263,13 @@ describe('FailedTestsTable', () => {
262263

263264
describe('when not on default branch', () => {
264265
it('does not render flake rate column', async () => {
265-
const { queryClient } = setup({})
266+
setup({})
266267
render(<FailedTestsTable />, {
267-
wrapper: wrapper(queryClient, ['/gh/codecov/repo/tests/lol']),
268+
wrapper: wrapper(['/gh/codecov/repo/tests/lol']),
268269
})
269270

270-
await waitFor(() => expect(queryClient.isFetching()).toBeFalsy())
271+
const tableData = await screen.findByText('test-1')
272+
expect(tableData).toBeInTheDocument()
271273

272274
const flakeRateColumn = screen.queryByText('Flake rate')
273275
expect(flakeRateColumn).not.toBeInTheDocument()
@@ -276,9 +278,9 @@ describe('FailedTestsTable', () => {
276278
})
277279

278280
it('renders each column name', async () => {
279-
const { queryClient } = setup({})
281+
setup({})
280282
render(<FailedTestsTable />, {
281-
wrapper: wrapper(queryClient),
283+
wrapper: wrapper(),
282284
})
283285

284286
const nameColumn = await screen.findByText('Test name')
@@ -301,9 +303,9 @@ describe('FailedTestsTable', () => {
301303
})
302304

303305
it('renders table header', async () => {
304-
const { queryClient } = setup({})
306+
setup({})
305307
render(<FailedTestsTable />, {
306-
wrapper: wrapper(queryClient),
308+
wrapper: wrapper(),
307309
})
308310

309311
const tableHeader = await screen.findByText('Table Header')
@@ -313,9 +315,9 @@ describe('FailedTestsTable', () => {
313315

314316
describe('renders table body', () => {
315317
it('renders the first element', async () => {
316-
const { queryClient } = setup({})
318+
setup({})
317319
render(<FailedTestsTable />, {
318-
wrapper: wrapper(queryClient),
320+
wrapper: wrapper(),
319321
})
320322

321323
const loading = await screen.findByText('Loading')
@@ -341,9 +343,9 @@ describe('FailedTestsTable', () => {
341343
})
342344

343345
it('shows additional info when hovering flake rate', async () => {
344-
const { queryClient, user } = setup({})
346+
const { user } = setup({})
345347
render(<FailedTestsTable />, {
346-
wrapper: wrapper(queryClient),
348+
wrapper: wrapper(),
347349
})
348350

349351
const loading = await screen.findByText('Loading')
@@ -363,12 +365,12 @@ describe('FailedTestsTable', () => {
363365
describe('when first pull request', () => {
364366
describe('when there are no test results', () => {
365367
it('renders no data message', async () => {
366-
const { queryClient } = setup({
368+
setup({
367369
isFirstPullRequest: true,
368370
noEntries: true,
369371
})
370372
render(<FailedTestsTable />, {
371-
wrapper: wrapper(queryClient),
373+
wrapper: wrapper(),
372374
})
373375

374376
const noDataMessage = await screen.findByText('No data yet')
@@ -383,9 +385,9 @@ describe('FailedTestsTable', () => {
383385

384386
describe('there are test results', () => {
385387
it('renders data in the table', async () => {
386-
const { queryClient } = setup({ isFirstPullRequest: true })
388+
setup({ isFirstPullRequest: true })
387389
render(<FailedTestsTable />, {
388-
wrapper: wrapper(queryClient),
390+
wrapper: wrapper(),
389391
})
390392

391393
const nameColumn = await screen.findByText('test-1')
@@ -411,9 +413,9 @@ describe('FailedTestsTable', () => {
411413

412414
describe('no data is returned', () => {
413415
it('still returns an empty table', async () => {
414-
const { queryClient } = setup({ noEntries: true })
416+
setup({ noEntries: true })
415417
render(<FailedTestsTable />, {
416-
wrapper: wrapper(queryClient),
418+
wrapper: wrapper(),
417419
})
418420

419421
const tableBody = screen.getByTestId('failed-tests-table-body')
@@ -424,9 +426,9 @@ describe('FailedTestsTable', () => {
424426

425427
describe('ability to sort', () => {
426428
it('can sort on duration column', async () => {
427-
const { queryClient, user, mockVariables } = setup({ noEntries: true })
429+
const { user, mockVariables } = setup({ noEntries: true })
428430
render(<FailedTestsTable />, {
429-
wrapper: wrapper(queryClient),
431+
wrapper: wrapper(),
430432
})
431433

432434
const durationColumn = await screen.findByText('Avg. duration')
@@ -458,9 +460,9 @@ describe('FailedTestsTable', () => {
458460
})
459461

460462
it('can sort on failure rate column', async () => {
461-
const { queryClient, user, mockVariables } = setup({ noEntries: true })
463+
const { user, mockVariables } = setup({ noEntries: true })
462464
render(<FailedTestsTable />, {
463-
wrapper: wrapper(queryClient),
465+
wrapper: wrapper(),
464466
})
465467

466468
const failureRateColumn = await screen.findByText('Failure rate')
@@ -492,9 +494,9 @@ describe('FailedTestsTable', () => {
492494
})
493495

494496
it('can sort on flake rate column', async () => {
495-
const { queryClient, user, mockVariables } = setup({ noEntries: true })
497+
const { user, mockVariables } = setup({ noEntries: true })
496498
render(<FailedTestsTable />, {
497-
wrapper: wrapper(queryClient),
499+
wrapper: wrapper(),
498500
})
499501

500502
const flakeRateColumn = await screen.findByText('Flake rate')
@@ -526,9 +528,9 @@ describe('FailedTestsTable', () => {
526528
})
527529

528530
it('can sort on commits failed column', async () => {
529-
const { queryClient, user, mockVariables } = setup({ noEntries: true })
531+
const { user, mockVariables } = setup({ noEntries: true })
530532
render(<FailedTestsTable />, {
531-
wrapper: wrapper(queryClient),
533+
wrapper: wrapper(),
532534
})
533535

534536
const commitsFailedColumn = await screen.findByText('Commits failed')
@@ -560,9 +562,9 @@ describe('FailedTestsTable', () => {
560562
})
561563

562564
it('can sort on last run column', async () => {
563-
const { queryClient, user, mockVariables } = setup({ noEntries: true })
565+
const { user, mockVariables } = setup({ noEntries: true })
564566
render(<FailedTestsTable />, {
565-
wrapper: wrapper(queryClient),
567+
wrapper: wrapper(),
566568
})
567569

568570
const lastRunColumn = await screen.findByText('Last run')
@@ -596,9 +598,9 @@ describe('FailedTestsTable', () => {
596598

597599
describe('infinite scrolling', () => {
598600
it('loads next page', async () => {
599-
const { queryClient } = setup({})
601+
setup({})
600602
render(<FailedTestsTable />, {
601-
wrapper: wrapper(queryClient),
603+
wrapper: wrapper(),
602604
})
603605

604606
const loading = await screen.findByText('Loading')
@@ -612,9 +614,9 @@ describe('FailedTestsTable', () => {
612614

613615
describe('when landing on a branch page', () => {
614616
it('filters data by the expected branch', async () => {
615-
const { queryClient, mockVariables } = setup({})
617+
const { mockVariables } = setup({})
616618
render(<FailedTestsTable />, {
617-
wrapper: wrapper(queryClient, ['/gh/codecov/repo/tests/main']),
619+
wrapper: wrapper(['/gh/codecov/repo/tests/main']),
618620
})
619621

620622
await waitFor(() => {
@@ -629,9 +631,9 @@ describe('FailedTestsTable', () => {
629631
})
630632

631633
it('renders no data if no entries are returned', async () => {
632-
const { queryClient } = setup({ noEntries: true })
634+
setup({ noEntries: true })
633635
render(<FailedTestsTable />, {
634-
wrapper: wrapper(queryClient, ['/gh/codecov/repo/tests/main']),
636+
wrapper: wrapper(['/gh/codecov/repo/tests/main']),
635637
})
636638

637639
const content = await screen.findByText('No test results found')

0 commit comments

Comments
 (0)