Skip to content

Commit

Permalink
Add summary_reporter.test.js (#5389)
Browse files Browse the repository at this point in the history
* add special option -- for npm update command

* Update CHANGELOG.md

* add testcase for summary_reporter.js

* add testcase for yarn

* Update CHANGELOG.md

* import SummaryReporter at the top

* remove duplicated definition of results

* remove description

* add snapshot test

* update test title

* remove duplicated line

* add missing attributes for test results
  • Loading branch information
kdnakt authored and cpojer committed Jan 28, 2018
1 parent 0110101 commit 2167439
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 1 deletion.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
* `[expect]` Support class instances in `.toHaveProperty()` matcher.
([#5367](https://github.com/facebook/jest/pull/5367))
* `[jest-cli]` Fix npm update command for snapshot summary.
([#5376](https://github.com/facebook/jest/pull/5376))
([#5376](https://github.com/facebook/jest/pull/5376),
[5389](https://github.com/facebook/jest/pull/5389/))
* `[expect]` Make `rejects` and `resolves` synchronously validate its argument.
([#5364](https://github.com/facebook/jest/pull/5364))
* `[docs]` Add tutorial page for ES6 class mocks.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`snapshots needs update with npm test 1`] = `
"<bold>Snapshot Summary</>
<bold><red> › 2 snapshot tests</></> failed in 1 test suite. <dim>Inspect your code changes or run \`npm test -- -u\` to update them.</>
<bold>Test Suites: </><bold><red>1 failed</></>, 1 total
<bold>Tests: </><bold><red>1 failed</></>, 1 total
<bold>Snapshots: </><bold><red>2 failed</></>, 2 total
<bold>Time:</> 0.01s
<dim>Ran all test suites</><dim>.</>
"
`;
exports[`snapshots needs update with yarn test 1`] = `
"<bold>Snapshot Summary</>
<bold><red> › 2 snapshot tests</></> failed in 1 test suite. <dim>Inspect your code changes or run \`yarn test -u\` to update them.</>
<bold>Test Suites: </><bold><red>1 failed</></>, 1 total
<bold>Tests: </><bold><red>1 failed</></>, 1 total
<bold>Snapshots: </><bold><red>2 failed</></>, 2 total
<bold>Time:</> 0.01s
<dim>Ran all test suites</><dim>.</>
"
`;
60 changes: 60 additions & 0 deletions packages/jest-cli/src/reporters/__tests__/summary_reporter.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';

import SummaryReporter from '../summary_reporter';

const env = Object.assign({}, process.env);
const now = Date.now;
const write = process.stderr.write;
const globalConfig = {
watch: false,
};
const aggregatedResults = {
numFailedTestSuites: 1,
numFailedTests: 1,
numPassedTestSuites: 0,
numTotalTestSuites: 1,
numTotalTests: 1,
snapshot: {
filesUnmatched: 1,
total: 2,
unmatched: 2,
},
startTime: 0,
testResults: {},
};

let results = [];

beforeEach(() => {
process.env.npm_lifecycle_event = 'test';
process.env.npm_lifecycle_script = 'jest';
process.stderr.write = result => results.push(result);
Date.now = () => 10;
});

afterEach(() => {
results = [];
process.env = env;
process.stderr.write = write;
Date.now = now;
});

test('snapshots needs update with npm test', () => {
process.env.npm_config_user_agent = 'npm';
const testReporter = new SummaryReporter(globalConfig);
testReporter.onRunComplete(new Set(), aggregatedResults);
expect(results.join('')).toMatchSnapshot();
});

test('snapshots needs update with yarn test', () => {
process.env.npm_config_user_agent = 'yarn';
const testReporter = new SummaryReporter(globalConfig);
testReporter.onRunComplete(new Set(), aggregatedResults);
expect(results.join('')).toMatchSnapshot();
});

0 comments on commit 2167439

Please sign in to comment.