diff --git a/e2e/mobile/mobile-learn.spec.ts b/e2e/mobile/mobile-learn.spec.ts deleted file mode 100644 index 1c9838e497f..00000000000 --- a/e2e/mobile/mobile-learn.spec.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { expect, test } from '@playwright/test'; - -import currData from '../../shared/config/curriculum.json'; -import { orderedSuperBlockInfo } from '../../tools/scripts/build/build-external-curricula-data'; -import { SuperBlocks } from '../../shared/config/curriculum'; - -interface Curriculum { - [key: string]: { - blocks: { - [key: string]: { - challenges: { - id: string; - title: string; - block: string; - challengeType: number; - }[]; - meta: { - name: string; - }; - }; - }; - }; -} - -// 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: Curriculum): Curriculum => { - const copy = currData; - delete copy['certifications']; - return copy; -}; - -const typedCurriculum = removeCertSuperBlock(currData as never); - -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: string[] = []; - page.on('console', msg => { - logMsges.push(msg.text()); - }); - await page.goto( - `/${superBlock}/${currChallenge['block']}/${currChallenge['id']}` - ); - expect(logMsges).toContain('completed'); - }); - } - }); - } - } -}); diff --git a/knip.jsonc b/knip.jsonc index 31946b463c6..79dfea3d5af 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -4,10 +4,7 @@ "ignoreWorkspaces": ["api-server"], // Ignored based on https://github.com/freeCodeCamp/freeCodeCamp/pull/52330#issuecomment-1807917235 "workspaces": { ".": { - "playwright": [ - "playwright.config.ts", - "playwright-mobile.config.ts" // How/where is this file used? - ], + "playwright": ["playwright.config.ts"], "ignore": ["tools/scripts/redirect-gen.ts"] // Referenced in tools/scripts/redirect-gen.ts }, "api": { diff --git a/playwright-mobile.config.ts b/playwright-mobile.config.ts deleted file mode 100644 index 0de50bf076a..00000000000 --- a/playwright-mobile.config.ts +++ /dev/null @@ -1,53 +0,0 @@ -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: 'e2e', - testMatch: 'mobile/*.spec.ts', - /* 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/mobile-app && npx serve generated-tests', - url: 'http://127.0.0.1:3000', - reuseExistingServer: !process.env.CI - } -}); diff --git a/playwright.config.ts b/playwright.config.ts index 4eec550f0ed..3eed81b7316 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -13,7 +13,6 @@ dotenvConfig({ path: envPath }); */ export default defineConfig({ testDir: 'e2e', - testMatch: '!(mobile)*.spec.ts', /* Run tests in files in parallel */ fullyParallel: false, /* Fail the build on CI if you accidentally left test.only in the source code. */