Skip to content

Commit

Permalink
add e2e toMatchNamedSnapshot with retries
Browse files Browse the repository at this point in the history
  • Loading branch information
bakamitai456 committed Jun 15, 2023
1 parent b684d88 commit 9445a2f
Showing 1 changed file with 102 additions and 0 deletions.
102 changes: 102 additions & 0 deletions e2e/__tests__/toMatchNamedSnapshotWithRetries.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/**
* 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.
*/

import * as path from 'path';
import {skipSuiteOnJasmine} from '@jest/test-utils';
import {cleanup, makeTemplate, writeFiles} from '../Utils';
import runJest from '../runJest';

const DIR = path.resolve(__dirname, '../to-match-named-snapshot-with-retries');
const TESTS_DIR = path.resolve(DIR, '__tests__');

beforeEach(() => cleanup(TESTS_DIR));
afterAll(() => cleanup(TESTS_DIR));

skipSuiteOnJasmine();

test('works with a single snapshot', () => {
const filename = 'basic-support.test.js';
const template = makeTemplate(`
let index = 0;
afterEach(() => {
index += 1;
});
jest.retryTimes($2);
test('snapshots', () => expect($1).toMatchNamedSnapshot('snapshot-retries'));
`);

{
writeFiles(TESTS_DIR, {
[filename]: template(['3', '1' /* retries */]),
});
const {stderr, exitCode} = runJest(DIR, ['-w=1', '--ci=false', filename]);
expect(stderr).toMatch('1 snapshot written from 1 test suite.');
expect(exitCode).toBe(0);
}

{
writeFiles(TESTS_DIR, {
[filename]: template(['index', '2' /* retries */]),
});
const {stderr, exitCode} = runJest(DIR, ['-w=1', '--ci=false', filename]);
expect(stderr).toMatch('Received: 2');
expect(stderr).toMatch('1 snapshot failed from 1 test suite.');
expect(exitCode).toBe(1);
}

{
writeFiles(TESTS_DIR, {
[filename]: template(['index', '4' /* retries */]),
});
const {stderr, exitCode} = runJest(DIR, ['-w=1', '--ci=false', filename]);
expect(stderr).toMatch('Snapshots: 1 passed, 1 total');
expect(exitCode).toBe(0);
}
});

test('works when multiple tests have snapshots but only one of them failed multiple times', () => {
const filename = 'basic-support.test.js';
const template = makeTemplate(`
test('passing snapshots', () => expect('foo').toMatchNamedSnapshot());
describe('with retries', () => {
let index = 0;
afterEach(() => {
index += 1;
});
jest.retryTimes($2);
test('snapshots', () => expect($1).toMatchNamedSnapshot());
});
`);

{
writeFiles(TESTS_DIR, {
[filename]: template(['3', '2' /* retries */]),
});
const {stderr, exitCode} = runJest(DIR, ['-w=1', '--ci=false', filename]);
expect(stderr).toMatch('2 snapshots written from 1 test suite.');
expect(exitCode).toBe(0);
}

{
writeFiles(TESTS_DIR, {
[filename]: template(['index', '2' /* retries */]),
});
const {stderr, exitCode} = runJest(DIR, ['-w=1', '--ci=false', filename]);
expect(stderr).toMatch('Received: 2');
expect(stderr).toMatch('1 snapshot failed from 1 test suite.');
expect(exitCode).toBe(1);
}

{
writeFiles(TESTS_DIR, {
[filename]: template(['index', '4' /* retries */]),
});
const {stderr, exitCode} = runJest(DIR, ['-w=1', '--ci=false', filename]);
expect(stderr).toMatch('Snapshots: 1 passed, 1 total');
expect(exitCode).toBe(0);
}
});

0 comments on commit 9445a2f

Please sign in to comment.