Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -38,7 +38,7 @@ jobs:
steps:
- attach_workspace:
at: ~/react-native-cli
- run: yarn test
- run: yarn test:ci
- store_artifacts:
path: coverage
destination: coverage
Expand Down
1 change: 1 addition & 0 deletions e2e/jest.config.js
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
module.exports = {
testEnvironment: 'node',
testPathIgnorePatterns: ['<rootDir>/(?:.+?)/__tests__/'],
setupFiles: ['./testSetup.js'],
};
1 change: 1 addition & 0 deletions e2e/testSetup.js
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
jest.setTimeout(60000);
4 changes: 4 additions & 0 deletions jest.config.js
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
module.exports = {
testEnvironment: 'node',
projects: ['<rootDir>/packages/*', '<rootDir>/e2e'],
};
11 changes: 3 additions & 8 deletions package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,7 @@
"build-clean": "rm -rf ./packages/*/build",
"watch": "node ./scripts/watch.js",
"test": "jest",
"test:ci": "jest -i",
"lint": "eslint . --cache --report-unused-disable-directives",
"flow-check": "flow check",
"postinstall": "yarn build-clean && yarn build",
Expand All@@ -20,23 +21,17 @@
"@babel/preset-env": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"@react-native-community/eslint-config": "^0.0.3",
"babel-jest": "^24.5.0",
"babel-jest": "^24.6.0",
"chalk": "^2.4.2",
"eslint": "^5.10.0",
"execa": "^1.0.0",
"flow-bin": "^0.95.1",
"flow-typed": "^2.5.1",
"glob": "^7.1.3",
"jest": "^24.5.0",
"jest": "^24.6.0",
"lerna": "^3.13.1",
"micromatch": "^3.1.10",
"mkdirp": "^0.5.1",
"string-length": "^2.0.0"
},
"jest": {
"projects": [
"packages/*",
"e2e"
]
}
}
2 changes: 1 addition & 1 deletion packages/cli/src/commands/info/__tests__/info.test.js
Original file line numberDiff line numberDiff line change
Expand Up@@ -34,6 +34,6 @@ test('prints output without arguments', async () => {
// TODO: move to e2e tests and adjust expectations to include npm packages
expect(output).toContain('System:');
expect(output).toContain('Binaries:');
});
}, 20000);

test.todo('prints output with --packages');
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,8 @@ project(':test').projectDir = new File(rootProject.projectDir, '../node_modules/

// Simulate Windows environment on POSIX filesystem
// TODO: scope this test to Windows-only once we setup CI on Windows
it('includes project with correct path on Windows', () => {
// as changing path to be windows-specific breaks global path mock
it.skip('includes project with correct path on Windows', () => {
jest.resetModules();
jest.doMock('path', () => {
const path = jest.requireActual('path');
Expand Down
18 changes: 13 additions & 5 deletions packages/cli/src/commands/upgrade/__tests__/upgrade.test.js
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ import execa from 'execa';
import path from 'path';
import fs from 'fs';
import snapshotDiff from 'snapshot-diff';
import stripAnsi from 'strip-ansi';
import upgrade from '../upgrade';
import {fetch} from '../helpers';
import logger from '../../../tools/logger';
Expand DownExpand Up@@ -74,7 +75,7 @@ const samplePatch = jest
let logs = [];
const mockPushLog = (...args) =>
logs.push(args.map(x => (Array.isArray(x) ? x.join(' ') : x)).join(' '));
const flushOutput = () => logs.join('\n');
const flushOutput = () => stripAnsi(logs.join('\n'));

beforeEach(() => {
jest.clearAllMocks();
Expand All@@ -85,6 +86,13 @@ beforeEach(() => {
logs = [];
});

afterEach(() => {
// $FlowFixMe
fs.writeFileSync = jest.requireMock('fs').writeFileSync;
// $FlowFixMe
fs.unlinkSync = jest.requireMock('fs').unlinkSync;
});

test('uses latest version of react-native when none passed', async () => {
await upgrade.func([], ctx, opts);
expect(execa).toBeCalledWith('npm', ['info', 'react-native', 'version']);
Expand DownExpand Up@@ -184,14 +192,14 @@ test('cleans up if patching fails,', async () => {
$ execa git apply --check tmp-upgrade-rn.patch --exclude=package.json -p2 --3way
info Applying diff (excluding: package.json, .flowconfig)...
$ execa git apply tmp-upgrade-rn.patch --exclude=package.json --exclude=.flowconfig -p2 --3way
error: .flowconfig: does not exist in index
error: .flowconfig: does not exist in index
error Automatically applying diff failed
[fs] unlink tmp-upgrade-rn.patch
$ execa git status -s
error Patch failed to apply for unknown reason. Please fall back to manual way of upgrading
info You may find these resources helpful:
• Release notes: https://github.com/facebook/react-native/releases/tag/v0.58.4
• Comparison between versions: https://github.com/react-native-community/rn-diff-purge/compare/version/0.57.8..version/0.58.4
• Git diff: https://github.com/react-native-community/rn-diff-purge/compare/version/0.57.8..version/0.58.4.diff"
• Release notes: https://github.com/facebook/react-native/releases/tag/v0.58.4
• Comparison between versions: https://github.com/react-native-community/rn-diff-purge/compare/version/0.57.8..version/0.58.4
• Git diff: https://github.com/react-native-community/rn-diff-purge/compare/version/0.57.8..version/0.58.4.diff"
`);
});
6 changes: 5 additions & 1 deletion packages/cli/src/tools/__tests__/PackageManager-test.js
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,6 +10,9 @@ const PROJECT_ROOT = '/some/dir';
beforeEach(() => {
jest.spyOn(ChildProcess, 'execSync').mockImplementation(() => {});
});
afterEach(() => {
(ChildProcess.execSync: any).mockRestore();
});

describe('yarn', () => {
beforeEach(() => {
Expand DownExpand Up@@ -99,7 +102,8 @@ it('should use npm if project is not using yarn', () => {
});

it('should use yarn if project is using yarn', () => {
jest.spyOn(yarn, 'isProjectUsingYarn').mockImplementation(() => false);
jest.spyOn(yarn, 'getYarnVersionIfAvailable').mockImplementation(() => true);
jest.spyOn(yarn, 'isProjectUsingYarn').mockImplementation(() => true);

PackageManager.setProjectDir(PROJECT_ROOT);
PackageManager.install(PACKAGES);
Expand Down
4 changes: 4 additions & 0 deletions packages/cli/src/tools/__tests__/makeCommand-test.js
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,6 +18,10 @@ jest.setMock('child_process', {

const {makeCommand} = require('../getHooks');

afterAll(() => {
jest.restoreAllMocks();
});

describe('makeCommand', () => {
const command = makeCommand('echo');

Expand Down
2 changes: 2 additions & 0 deletions packages/cli/testSetup.js
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
// @flow
jest.mock('./src/tools/logger');

jest.setTimeout(20000);
Loading