From 009e6c20661c6a3e33e3123aee67d90c6eec13f5 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Wed, 17 Apr 2024 11:44:07 -0400 Subject: [PATCH] chore(test): fix flakey relationship tests (#5892) --- test/dev.js | 12 ++++++++++++ test/fields/collections/Relationship/e2e.spec.ts | 6 ++++++ test/helpers.ts | 4 ++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/test/dev.js b/test/dev.js index dc3b15b721..c07e254f4e 100644 --- a/test/dev.js +++ b/test/dev.js @@ -2,9 +2,16 @@ import minimist from 'minimist' import { nextDev } from 'next/dist/cli/next-dev.js' import open from 'open' import { getNextJSRootDir } from './helpers/getNextJSRootDir.js' +import { fileURLToPath } from 'node:url' +import path from 'node:path' +import fs from 'node:fs' +import chalk from 'chalk' import { createTestHooks } from './testHooks.js' +const filename = fileURLToPath(import.meta.url) +const dirname = path.dirname(filename) + process.env.PAYLOAD_DROP_DATABASE = 'true' const { @@ -12,6 +19,11 @@ const { ...args } = minimist(process.argv.slice(2)) +if (!fs.existsSync(path.resolve(dirname, testSuiteArg))) { + console.log(chalk.red(`ERROR: The test folder "${testSuiteArg}" does not exist`)) + process.exit(0) +} + if (args.turbo === true) { process.env.TURBOPACK = '1' } diff --git a/test/fields/collections/Relationship/e2e.spec.ts b/test/fields/collections/Relationship/e2e.spec.ts index e85f52baae..5acfa1bb0d 100644 --- a/test/fields/collections/Relationship/e2e.spec.ts +++ b/test/fields/collections/Relationship/e2e.spec.ts @@ -388,7 +388,13 @@ describe('relationship', () => { await page.waitForURL(url.create) const field = page.locator('#field-relationHasManyPolymorphic') + + // wait for relationship options to load + const textFieldPromise = page.waitForResponse(/api\/text-fields/) + const arrayFieldPromise = page.waitForResponse(/api\/array-fields/) await field.click() + await textFieldPromise + await arrayFieldPromise const textDocsGroup = page.locator('.rs__group-heading:has-text("Text Fields")') const firstTextDocOption = textDocsGroup.locator('+div .rs__option').first() diff --git a/test/helpers.ts b/test/helpers.ts index 9da25609c3..5db02c594a 100644 --- a/test/helpers.ts +++ b/test/helpers.ts @@ -145,8 +145,8 @@ export async function openNav(page: Page): Promise { } export async function openDocDrawer(page: Page, selector: string): Promise { - await wait(300) // wait for parent form state to initialize - await page.locator(selector).click({ delay: 100 }) + await wait(500) // wait for parent form state to initialize + await page.locator(selector).click() await wait(500) // wait for drawer form state to initialize }