From 9eb3ac58e91e7471493adaea587ed6b45793f338 Mon Sep 17 00:00:00 2001 From: Emily Xiong Date: Mon, 8 Nov 2021 12:33:13 -0500 Subject: [PATCH] chore(react-native): uncomment detox e2e test to build and test native ios (#7479) --- .github/workflows/e2e-matrix.yml | 16 +++++++++++++++- e2e/detox/src/detox.test.ts | 10 +++------- e2e/react-native/src/react-native.test.ts | 18 ++++++++++-------- packages/detox/migrations.json | 13 +++++++++++++ packages/detox/package.json | 4 ++-- packages/detox/src/utils/versions.ts | 4 ++-- packages/react-native/migrations.json | 17 +++++++++++++++++ packages/react-native/package.json | 4 ++-- packages/react-native/src/utils/versions.ts | 6 +++--- 9 files changed, 67 insertions(+), 25 deletions(-) diff --git a/.github/workflows/e2e-matrix.yml b/.github/workflows/e2e-matrix.yml index 86c74a04ea..0b85ea4830 100644 --- a/.github/workflows/e2e-matrix.yml +++ b/.github/workflows/e2e-matrix.yml @@ -125,11 +125,25 @@ jobs: sudo apt-get install lsof echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p + - name: Homebrew cache directory path + if: ${{ matrix.os == 'macos-latest' }} + id: homebrew-cache-dir-path + run: echo "::set-output name=dir::$(brew --cache)" + + - name: Cache Homebrew + if: ${{ matrix.os == 'macos-latest' }} + uses: actions/cache@v2 + with: + path: ${{ steps.homebrew-cache-dir-path.outputs.dir }} + key: brew-${{ matrix.node-version }} + restore-keys: | + brew- + - name: Install applesimutils, reset ios simulators if: ${{ matrix.os == 'macos-latest' }} run: | HOMEBREW_NO_AUTO_UPDATE=1 brew tap wix/brew >/dev/null - brew install applesimutils + HOMEBREW_NO_AUTO_UPDATE=1 brew install applesimutils >/dev/null xcrun simctl shutdown all && xcrun simctl erase all - name: Run e2e tests diff --git a/e2e/detox/src/detox.test.ts b/e2e/detox/src/detox.test.ts index b709e79490..215f5da64e 100644 --- a/e2e/detox/src/detox.test.ts +++ b/e2e/detox/src/detox.test.ts @@ -6,6 +6,7 @@ import { runCLIAsync, uniq, getSelectedPackageManager, + killPorts, } from '@nrwl/e2e/utils'; describe('Detox', () => { @@ -37,14 +38,10 @@ describe('Detox', () => { `generate @nrwl/react-native:app ${appName} --e2eTestRunner=detox --linter=eslint` ); - expect(runCLI(`build-ios ${appName}-e2e`)).toContain( + expect(runCLI(`build-ios ${appName}-e2e --prod`)).toContain( 'Running target "build-ios" succeeded' ); - // comment out due to github issue that unable to build xcode error 12.5 https://github.com/facebook/react-native/issues/31480 - /* expect(runCLI(`build-ios ${appName}-e2e --pod`)).toContain( - 'Running target "build-ios" succeeded' - ); expect( runCLI( `test-ios ${appName}-e2e --prod --debugSynchronization=true --loglevel=trace` @@ -52,8 +49,7 @@ describe('Detox', () => { ).toContain('Running target "test-ios" succeeded'); await killPorts(8081); // kill the port for the serve command - */ - }, 1000000); + }, 3000000); } }); }); diff --git a/e2e/react-native/src/react-native.test.ts b/e2e/react-native/src/react-native.test.ts index 6e7e2fcc2d..1c0785e236 100644 --- a/e2e/react-native/src/react-native.test.ts +++ b/e2e/react-native/src/react-native.test.ts @@ -1,6 +1,9 @@ import { checkFilesExist, + expectTestsPass, getSelectedPackageManager, + isOSX, + killPorts, newProject, readJson, runCLI, @@ -34,15 +37,14 @@ describe('react native', () => { return updated; }); - const appTestResults = await runCLIAsync(`test ${appName}`); - expect(appTestResults.combinedOutput).toContain( - 'Test Suites: 1 passed, 1 total' - ); + expectTestsPass(await runCLIAsync(`test ${appName}`)); + expectTestsPass(await runCLIAsync(`test ${libName}`)); - const libTestResults = await runCLIAsync(`test ${libName}`); - expect(libTestResults.combinedOutput).toContain( - 'Test Suites: 1 passed, 1 total' - ); + const appLintResults = await runCLIAsync(`lint ${appName}`); + expect(appLintResults.combinedOutput).toContain('All files pass linting.'); + + const libLintResults = await runCLIAsync(`lint ${libName}`); + expect(libLintResults.combinedOutput).toContain('All files pass linting.'); const iosBundleResult = await runCLIAsync(`bundle-ios ${appName}`); expect(iosBundleResult.combinedOutput).toContain( diff --git a/packages/detox/migrations.json b/packages/detox/migrations.json index f7ba4a9281..34e46a1147 100644 --- a/packages/detox/migrations.json +++ b/packages/detox/migrations.json @@ -30,6 +30,19 @@ "alwaysAddToPackageJson": false } } + }, + "13.2.0": { + "version": "13.2.0-beta.0", + "packages": { + "detox": { + "version": "19.0.0", + "alwaysAddToPackageJson": false + }, + "@testing-library/jest-dom": { + "version": "5.15.0", + "alwaysAddToPackageJson": false + } + } } } } diff --git a/packages/detox/package.json b/packages/detox/package.json index 0957102cd7..cd3287a0c6 100644 --- a/packages/detox/package.json +++ b/packages/detox/package.json @@ -28,11 +28,11 @@ "@nrwl/jest": "*", "@nrwl/linter": "*", "@nrwl/react": "*", + "@nrwl/workspace": "*", "chalk": "^4.1.0" }, "peerDependencies": { - "@nrwl/workspace": "*", - "detox": "^18.22.2" + "detox": "^19.0.0" }, "builders": "./executors.json", "ng-update": { diff --git a/packages/detox/src/utils/versions.ts b/packages/detox/src/utils/versions.ts index b9cb137456..fd03db4410 100644 --- a/packages/detox/src/utils/versions.ts +++ b/packages/detox/src/utils/versions.ts @@ -1,5 +1,5 @@ export const nxVersion = '*'; -export const detoxVersion = '18.22.2'; +export const detoxVersion = '19.0.0'; export const typesDetoxVersion = '17.14.3'; -export const testingLibraryJestDom = '5.14.1'; +export const testingLibraryJestDom = '5.15.0'; diff --git a/packages/react-native/migrations.json b/packages/react-native/migrations.json index bb3737e0a7..66176729be 100644 --- a/packages/react-native/migrations.json +++ b/packages/react-native/migrations.json @@ -262,6 +262,23 @@ "alwaysAddToPackageJson": false } } + }, + "13.2.0": { + "version": "13.2.0-beta.0", + "packages": { + "react-native": { + "version": "0.66.2", + "alwaysAddToPackageJson": false + }, + "@types/react-native": { + "version": "0.66.2", + "alwaysAddToPackageJson": false + }, + "@testing-library/jest-native": { + "version": "4.0.4", + "alwaysAddToPackageJson": false + } + } } } } diff --git a/packages/react-native/package.json b/packages/react-native/package.json index f28dc7772c..351eec6eae 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -29,6 +29,7 @@ "@nrwl/jest": "*", "@nrwl/linter": "*", "@nrwl/react": "*", + "@nrwl/workspace": "*", "chalk": "^4.1.0", "ignore": "^5.0.4", "metro-resolver": "^0.66.2", @@ -36,8 +37,7 @@ "tsconfig-paths": "^3.9.0" }, "peerDependencies": { - "@nrwl/workspace": "*", - "react-native": "^0.66.1" + "react-native": "^0.66.2" }, "builders": "./executors.json", "ng-update": { diff --git a/packages/react-native/src/utils/versions.ts b/packages/react-native/src/utils/versions.ts index b1b8609e2d..09335232d7 100644 --- a/packages/react-native/src/utils/versions.ts +++ b/packages/react-native/src/utils/versions.ts @@ -1,7 +1,7 @@ export const nxVersion = '*'; -export const reactNativeVersion = '0.66.1'; -export const typesReactNativeVersion = '0.65.8'; +export const reactNativeVersion = '0.66.2'; +export const typesReactNativeVersion = '0.66.2'; export const metroVersion = '0.66.2'; @@ -12,7 +12,7 @@ export const reactNativeCommunityCliAndroid = '6.1.0'; export const metroReactNativeBabelPresetVersion = '0.66.2'; export const testingLibraryReactNativeVersion = '8.0.0'; -export const testingLibraryJestNativeVersion = '4.0.2'; +export const testingLibraryJestNativeVersion = '4.0.4'; export const jestReactNativeVersion = '18.0.0';