Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract duplicate e2e test setup to jest config #2846

Merged
merged 14 commits into from Dec 16, 2020
3 changes: 3 additions & 0 deletions __device-tests__/.eslintrc.js
@@ -0,0 +1,3 @@
module.exports = {
extends: '../gutenberg/packages/react-native-editor/__device-tests__/.eslintrc.js',
};
36 changes: 0 additions & 36 deletions __device-tests__/gutenberg-editor-contact-info.test.js
@@ -1,48 +1,12 @@
/**
* Internal dependencies
*/
import EditorPage from '../gutenberg/packages/react-native-editor/__device-tests__/pages/editor-page';
import {
setupDriver,
isLocalEnvironment,
stopDriver,
} from '../gutenberg/packages/react-native-editor/__device-tests__/helpers/utils';

jest.setTimeout( 1000000 );

describe( 'Gutenberg Editor Contact Info Block tests', () => {
let driver;
let editorPage;
let allPassed = true;
// const contactInfoBlockName = 'Contact Info';

// Use reporter for setting status for saucelabs Job
if ( ! isLocalEnvironment() ) {
const reporter = {
specDone: async ( result ) => {
allPassed = allPassed && result.status !== 'failed';
},
};

// eslint-disable-next-line jest/no-jasmine-globals
jasmine.getEnv().addReporter( reporter );
}

beforeAll( async () => {
driver = await setupDriver();
editorPage = new EditorPage( driver );
} );

it( 'should be able to see visual editor', async () => {
await expect( editorPage.getBlockList() ).resolves.toBe( true );
} );

//TODO: Add tests

afterAll( async () => {
if ( ! isLocalEnvironment() ) {
driver.sauceJobStatus( allPassed );
}
await stopDriver( driver );
} );
} );
2 changes: 1 addition & 1 deletion gutenberg
Submodule gutenberg updated 43 files
+1 −0 .github/workflows/end2end-test.yml
+77 −48 packages/block-library/src/template-part/edit/index.js
+12 −0 packages/components/src/disabled/README.md
+9 −1 packages/components/src/disabled/index.js
+42 −12 packages/components/src/disabled/stories/index.js
+60 −2 packages/components/src/disabled/test/index.js
+11 −16 packages/core-data/src/actions.js
+65 −10 packages/core-data/src/entities.js
+141 −1 packages/core-data/src/test/entities.js
+2 −53 packages/edit-post/src/components/header/template-save-button/index.js
+108 −139 packages/edit-site/src/components/editor/index.js
+57 −0 packages/edit-site/src/components/editor/popover-wrapper.js
+11 −0 packages/edit-site/src/components/editor/style.scss
+9 −17 packages/edit-site/src/components/header/index.js
+3 −1 packages/edit-site/src/components/navigation-sidebar/navigation-panel/index.js
+6 −0 packages/react-native-editor/__device-tests__/.eslintrc.js
+38 −68 packages/react-native-editor/__device-tests__/gutenberg-editor-block-insertion.test.js
+2 −37 packages/react-native-editor/__device-tests__/gutenberg-editor-columns.test.js
+4 −43 packages/react-native-editor/__device-tests__/gutenberg-editor-cover.test.js
+7 −39 packages/react-native-editor/__device-tests__/gutenberg-editor-file.test.js
+4 −39 packages/react-native-editor/__device-tests__/gutenberg-editor-gallery.test.js
+12 −52 packages/react-native-editor/__device-tests__/gutenberg-editor-heading.test.js
+14 −50 packages/react-native-editor/__device-tests__/gutenberg-editor-image.test.js
+4 −39 packages/react-native-editor/__device-tests__/gutenberg-editor-latest-posts.test.js
+15 −49 packages/react-native-editor/__device-tests__/gutenberg-editor-lists-canary.test.js
+8 −44 packages/react-native-editor/__device-tests__/gutenberg-editor-lists-end.test.js
+13 −48 packages/react-native-editor/__device-tests__/gutenberg-editor-lists.test.js
+4 −39 packages/react-native-editor/__device-tests__/gutenberg-editor-more.test.js
+41 −66 packages/react-native-editor/__device-tests__/gutenberg-editor-paragraph.test.js
+26 −51 packages/react-native-editor/__device-tests__/gutenberg-editor-paste.test.js
+16 −53 packages/react-native-editor/__device-tests__/gutenberg-editor-rotation.test.js
+4 −39 packages/react-native-editor/__device-tests__/gutenberg-editor-separator.test.js
+4 −39 packages/react-native-editor/__device-tests__/gutenberg-editor-spacer.test.js
+0 −35 packages/react-native-editor/__device-tests__/gutenberg-editor-unsupported-blocks.test.js
+4 −39 packages/react-native-editor/__device-tests__/gutenberg-editor-verse.test.js
+4 −4 packages/react-native-editor/__device-tests__/helpers/appium-local.js
+0 −1 packages/react-native-editor/__device-tests__/helpers/caps.js
+8 −125 packages/react-native-editor/__device-tests__/helpers/utils.js
+39 −6 packages/react-native-editor/__device-tests__/pages/editor-page.js
+4 −2 packages/react-native-editor/jest_ui.config.js
+146 −0 packages/react-native-editor/jest_ui_setup_after_env.js
+26 −0 packages/react-native-editor/jest_ui_test_environment.js
+4 −4 packages/react-native-editor/package.json
14 changes: 6 additions & 8 deletions jest_ui.config.js
@@ -1,12 +1,10 @@
const main = require( './jest.config.js' );
const gutenbergJestUIConfig = require( './gutenberg/packages/react-native-editor/jest_ui.config.js' );

module.exports = {
...main,
timers: 'real',
setupFiles: [],
testMatch: [
'<rootDir>/__device-tests__/**/*.test.[jt]s?(x)',
'<rootDir>/gutenberg/packages/react-native-editor/__device-tests__/**/*.test.[jt]s?(x)',
...gutenbergJestUIConfig,
setupFilesAfterEnv: [
'./gutenberg/packages/react-native-editor/jest_ui_setup_after_env.js',
],
testPathIgnorePatterns: [ '/node_modules/', '<rootDir>/jetpack/' ],
testEnvironment:
'./gutenberg/packages/react-native-editor/jest_ui_test_environment.js',
};
8 changes: 4 additions & 4 deletions package.json
Expand Up @@ -82,10 +82,10 @@
"wpandroid": "cd gutenberg && react-native run-android --root $TMPDIR/gbmobile-wpandroidfakernroot --variant wasabiDebug --appIdSuffix beta --appFolder WordPress --main-activity=ui.WPLaunchActivity",
"test": "cross-env NODE_ENV=test jest --verbose --config ./jest.config.js",
"test:debug": "cross-env NODE_ENV=test node --inspect-brk node_modules/.bin/jest --runInBand --verbose --config jest.config.js",
"device-tests": "cross-env NODE_ENV=test jest --no-cache --maxWorkers=3 --reporters=default --reporters=jest-junit --verbose --config jest_ui.config.js",
"device-tests-canary": "cross-env NODE_ENV=test jest --no-cache --maxWorkers=2 --testNamePattern=@canary --reporters=default --reporters=jest-junit --verbose --config jest_ui.config.js",
"device-tests:local": "IOS_APP_PATH='./gutenberg/packages/react-native-editor/ios/build/GutenbergDemo/Build/Products/Release-iphonesimulator/GutenbergDemo.app' ANDROID_APP_PATH='./gutenberg/packages/react-native-editor/android/app/build/outputs/apk/debug/app-debug.apk' cross-env NODE_ENV=test jest --runInBand --reporters=default --reporters=jest-junit --detectOpenHandles --verbose --config jest_ui.config.js",
"device-tests:debug": "IOS_APP_PATH='./gutenberg/packages/react-native-editor/ios/build/GutenbergDemo/Build/Products/Release-iphonesimulator/GutenbergDemo.app' ANDROID_APP_PATH='./gutenberg/packages/react-native-editor/android/app/build/outputs/apk/debug/app-debug.apk' cross-env NODE_ENV=test node $NODE_DEBUG_OPTION --inspect-brk node_modules/jest/bin/jest --runInBand --reporters=default --reporters=jest-junit --detectOpenHandles --verbose --config jest_ui.config.js",
"device-tests": "cross-env NODE_ENV=test jest --no-cache --maxWorkers=3 --verbose --config jest_ui.config.js",
"device-tests-canary": "cross-env NODE_ENV=test jest --no-cache --maxWorkers=2 --testNamePattern=@canary --verbose --config jest_ui.config.js",
"device-tests:local": "IOS_APP_PATH='./gutenberg/packages/react-native-editor/ios/build/GutenbergDemo/Build/Products/Release-iphonesimulator/GutenbergDemo.app' ANDROID_APP_PATH='./gutenberg/packages/react-native-editor/android/app/build/outputs/apk/debug/app-debug.apk' cross-env NODE_ENV=test jest --runInBand --detectOpenHandles --verbose --config jest_ui.config.js",
"device-tests:debug": "IOS_APP_PATH='./gutenberg/packages/react-native-editor/ios/build/GutenbergDemo/Build/Products/Release-iphonesimulator/GutenbergDemo.app' ANDROID_APP_PATH='./gutenberg/packages/react-native-editor/android/app/build/outputs/apk/debug/app-debug.apk' cross-env NODE_ENV=test node $NODE_DEBUG_OPTION --inspect-brk node_modules/jest/bin/jest --runInBand --detectOpenHandles --verbose --config jest_ui.config.js",
"test:e2e:bundle:android": "npm run test:e2e:bundle:android:text && npm run test:e2e:bundle:android:bytecode",
"test:e2e:bundle:android:text": "mkdir -p gutenberg/packages/react-native-editor/android/app/src/main/assets && npm run rn-bundle -- --reset-cache --platform android --dev false --minify false --entry-file index.js --bundle-output gutenberg/packages/react-native-editor/android/app/src/main/assets/index.android.text.bundle --assets-dest gutenberg/packages/react-native-editor/android/app/src/main/res",
"test:e2e:bundle:android:bytecode": "./gutenberg/node_modules/hermes-engine/`node -e \"const platform=require('os').platform();console.log(platform === 'darwin' ? 'osx-bin' : (platform === 'linux' ? 'linux64-bin' : (platform === 'win32' ? 'win64-bin' : 'unsupported-os')));\"`/hermes -emit-binary -O -out gutenberg/packages/react-native-editor/android/app/src/main/assets/index.android.bundle gutenberg/packages/react-native-editor/android/app/src/main/assets/index.android.text.bundle -output-source-map",
Expand Down