Skip to content

Commit

Permalink
Add smoke test to flight fixture
Browse files Browse the repository at this point in the history
  • Loading branch information
eps1lon committed Feb 15, 2024
1 parent 7ae6e02 commit 220c0f7
Show file tree
Hide file tree
Showing 7 changed files with 121 additions and 22 deletions.
46 changes: 42 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -284,12 +284,47 @@ jobs:
command: |
git diff --exit-code HEAD -- AttributeTableSnapshot.md
run_fixtures_flight_tests:
docker: *docker
environment: *environment
steps:
- checkout
- attach_workspace:
at: .
- restore_cache:
name: Restore yarn cache
keys:
- v2-yarn_cache_fixtures_flight-{{ arch }}-{{ checksum "yarn.lock" }}
- run:
name: Install dependencies
working_directory: fixtures/flight
command: |
yarn install --frozen-lockfile --cache-folder ~/.cache/yarn
if [ $? -ne 0 ]; then
yarn install --frozen-lockfile --cache-folder ~/.cache/yarn
fi
- save_cache:
name: Save yarn cache
key: v2-yarn_cache_fixtures_flight-{{ arch }}-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- run:
working_directory: fixtures/flight
name: Playwright install deps
command: |
npx playwright install
sudo npx playwright install-deps
- run:
working_directory: fixtures/flight
command: cp -r ../../build/oss-experimental/* ./node_modules/
- run:
name: Run tests
working_directory: fixtures/flight
command: yarn test
- store_artifacts:
path: fixtures/attribute-behavior/AttributeTableSnapshot.md
- store_artifacts:
path: fixtures/attribute-behavior/playwright-report
path: fixtures/flight/playwright-report
- store_artifacts:
path: fixtures/attribute-behavior/test-results
path: fixtures/flight/test-results


run_devtools_tests_for_versions:
Expand Down Expand Up @@ -575,6 +610,9 @@ workflows:
- run_fixtures_attribute-behavior_tests:
requires:
- yarn_build
- run_fixtures_flight_tests:
requires:
- yarn_build

devtools_regression_tests:
unless: << pipeline.parameters.prerelease_commit_sha >>
Expand Down
2 changes: 2 additions & 0 deletions fixtures/flight/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

# testing
/coverage
/playwright-report
/test-results

# production
/build
Expand Down
19 changes: 19 additions & 0 deletions fixtures/flight/__tests__/__e2e__/smoke.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import {test, expect} from '@playwright/test';

test('smoke test', async ({page}) => {
const consoleErrors = [];
page.on('console', msg => {
const type = msg.type();
if (type === 'warn' || type === 'error') {
consoleErrors.push({type: type, text: msg.text()});
}
});
const pageErrors = [];
page.on('pageerror', error => {
pageErrors.push(error.stack);
});
await page.goto('/');

await expect(consoleErrors).toEqual([]);
await expect(pageErrors).toEqual([]);
});
5 changes: 4 additions & 1 deletion fixtures/flight/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@
"webpack-hot-middleware": "^2.25.3",
"webpack-manifest-plugin": "^4.0.2"
},
"devDependencies": {
"@playwright/test": "^1.41.2"
},
"scripts": {
"predev": "cp -r ../../build/oss-experimental/* ./node_modules/",
"prebuild": "cp -r ../../build/oss-experimental/* ./node_modules/",
Expand All @@ -70,7 +73,7 @@
"start:global": "NODE_ENV=production node --experimental-loader ./loader/global.js server/global",
"start:region": "NODE_ENV=production node --experimental-loader ./loader/region.js --conditions=react-server server/region",
"build": "node scripts/build.js",
"test": "node scripts/test.js --env=jsdom"
"test": "playwright test"
},
"browserslist": {
"production": [
Expand Down
31 changes: 31 additions & 0 deletions fixtures/flight/playwright.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import {defineConfig, devices} from '@playwright/test';

const isCI = process.env.CI === '1';

export default defineConfig({
// relative to this configuration file.
testDir: '__tests__/__e2e__',
fullyParallel: true,
// Fail the build on CI if you accidentally left test.only in the source code.
forbidOnly: !isCI,
retries: isCI ? 2 : 0,
// Opt out of parallel tests on CI.
workers: isCI ? 1 : undefined,
reporter: 'html',
use: {
baseURL: 'http://localhost:3000',

trace: 'on-first-retry',
},
projects: [
{
name: 'chromium',
use: {...devices['Desktop Chrome']},
},
],
webServer: {
command: 'yarn dev',
url: 'http://localhost:3000',
reuseExistingServer: !isCI,
},
});
23 changes: 22 additions & 1 deletion fixtures/flight/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2689,6 +2689,13 @@
"@nodelib/fs.scandir" "2.1.3"
fastq "^1.6.0"

"@playwright/test@^1.41.2":
version "1.41.2"
resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.41.2.tgz#bd9db40177f8fd442e16e14e0389d23751cdfc54"
integrity sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==
dependencies:
playwright "1.41.2"

"@pmmmwh/react-refresh-webpack-plugin@^0.5.3":
version "0.5.11"
resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz#7c2268cedaa0644d677e8c4f377bc8fb304f714a"
Expand Down Expand Up @@ -4885,7 +4892,7 @@ fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"

fsevents@^2.3.2, fsevents@~2.3.2:
fsevents@2.3.2, fsevents@^2.3.2, fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
Expand Down Expand Up @@ -6644,6 +6651,20 @@ pkg-up@^3.1.0:
dependencies:
find-up "^3.0.0"

playwright-core@1.41.2:
version "1.41.2"
resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.41.2.tgz#db22372c708926c697acc261f0ef8406606802d9"
integrity sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==

playwright@1.41.2:
version "1.41.2"
resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.41.2.tgz#4e760b1c79f33d9129a8c65cc27953be6dd35042"
integrity sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==
dependencies:
playwright-core "1.41.2"
optionalDependencies:
fsevents "2.3.2"

postcss-attribute-case-insensitive@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741"
Expand Down
17 changes: 1 addition & 16 deletions packages/shared/ReactVersion.js
Original file line number Diff line number Diff line change
@@ -1,16 +1 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// TODO: this is special because it gets imported during build.
//
// TODO: 18.0.0 has not been released to NPM;
// It exists as a placeholder so that DevTools can support work tag changes between releases.
// When we next publish a release, update the matching TODO in backend/renderer.js
// TODO: This module is used both by the release scripts and to expose a version
// at runtime. We should instead inject the version number as part of the build
// process, and use the ReactVersions.js module as the single source of truth.
export default '18.2.0';
export default '18.3.0-PLACEHOLDER';

0 comments on commit 220c0f7

Please sign in to comment.