-
-
Notifications
You must be signed in to change notification settings - Fork 158
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: move playwright tests from main repo (#1341)
* chore: move playwright tests from main repo * fix: update import paths
- Loading branch information
1 parent
186f015
commit 0ba3297
Showing
6 changed files
with
237 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -66,3 +66,7 @@ play-store-credentials.json | |
|
||
generated-tests/ | ||
curriculum.json | ||
|
||
# e2e tests | ||
|
||
/e2e/playwright |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
import { expect, test } from "@playwright/test"; | ||
|
||
// These are all in the freeCodeCamp repo. That repo is installed at the root | ||
// in CI. | ||
import currData from "../../shared/config/curriculum.json"; | ||
import { orderedSuperBlockInfo } from "../../tools/scripts/build/build-external-curricula-data"; | ||
import { SuperBlocks } from "../../shared/config/curriculum"; | ||
|
||
// non editor superblocks should be skipped because they are not | ||
// checked if they are compatible with the mobile app. | ||
|
||
const nonEditorSB = [ | ||
SuperBlocks.PythonForEverybody, | ||
SuperBlocks.DataAnalysisPy, | ||
SuperBlocks.MachineLearningPy, | ||
SuperBlocks.CollegeAlgebraPy, | ||
SuperBlocks.A2English, | ||
SuperBlocks.B1English, | ||
]; | ||
|
||
const publicSB = orderedSuperBlockInfo | ||
.filter((sb) => sb.public === true && !nonEditorSB.includes(sb.dashedName)) | ||
.map((sb) => sb.dashedName); | ||
|
||
const removeCertSuperBlock = (currData) => { | ||
const copy = currData; | ||
delete copy["certifications"]; | ||
return copy; | ||
}; | ||
|
||
const typedCurriculum = removeCertSuperBlock(currData); | ||
|
||
test.describe("Test challenges in mobile", () => { | ||
for (const superBlock of publicSB) { | ||
for (const currBlock of Object.values( | ||
typedCurriculum[superBlock]["blocks"] | ||
)) { | ||
test.describe(`SuperBlock: ${superBlock} - Block: ${currBlock["meta"]["name"]}`, () => { | ||
for (const currChallenge of currBlock["challenges"]) { | ||
// Skip non-editor challenges | ||
if (![0, 1, 5, 6, 14].includes(currChallenge["challengeType"])) { | ||
continue; | ||
} | ||
|
||
test(`Challenge: ${currChallenge["title"]}(${currChallenge["id"]})`, async ({ | ||
page, | ||
}) => { | ||
const logMsges = []; | ||
page.on("console", (msg) => { | ||
logMsges.push(msg.text()); | ||
}); | ||
await page.goto( | ||
`/${superBlock}/${currChallenge["block"]}/${currChallenge["id"]}` | ||
); | ||
expect(logMsges).toContain("completed"); | ||
}); | ||
} | ||
}); | ||
} | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
import path from 'path'; | ||
import { config as dotenvConfig } from 'dotenv'; | ||
import { defineConfig, devices } from '@playwright/test'; | ||
|
||
/** | ||
* Read environment variables from file. | ||
* https://github.com/motdotla/dotenv | ||
*/ | ||
const envPath = path.resolve(__dirname, '.env'); | ||
dotenvConfig({ path: envPath }); | ||
/** | ||
* See https://playwright.dev/docs/test-configuration. | ||
*/ | ||
export default defineConfig({ | ||
testDir: '.', | ||
testMatch: '*.spec.js', | ||
/* Run tests in files in parallel */ | ||
fullyParallel: true, | ||
/* Fail the build on CI if you accidentally left test.only in the source code. */ | ||
forbidOnly: !!process.env.CI, | ||
/* Retry on CI only */ | ||
retries: process.env.CI ? 2 : 0, | ||
/* Reporter to use. See https://playwright.dev/docs/test-reporters */ | ||
reporter: [['html', { outputFolder: 'playwright/reporter' }]], | ||
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ | ||
timeout: 15 * 1000, | ||
outputDir: 'playwright/test-results', | ||
|
||
use: { | ||
/* Base URL to use in actions like `await page.goto('/')`. */ | ||
baseURL: 'http://127.0.0.1:3000/', | ||
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ | ||
trace: 'on-first-retry', | ||
|
||
/* Use custom test attribute */ | ||
testIdAttribute: 'data-playwright-test-label' | ||
}, | ||
|
||
/* Configure projects for major browsers */ | ||
projects: [ | ||
{ | ||
name: 'Mobile Chrome', | ||
use: { ...devices['Pixel 5'] } | ||
} | ||
], | ||
|
||
/* Run your local dev server before starting the tests */ | ||
webServer: { | ||
command: 'cd ../mobile-app && npx serve generated-tests', | ||
url: 'http://127.0.0.1:3000', | ||
reuseExistingServer: !process.env.CI | ||
} | ||
}); |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters