node-jest/e2e/__tests__/failureDetailsProperty.test.ts

258 lines
6.5 KiB
TypeScript

/**
* Copyright (c) Facebook, Inc. and its affiliates. 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.
*/
import {isJestJasmineRun} from '@jest/test-utils';
import runJest from '../runJest';
const removeStackTraces = (stdout: string) =>
stdout.replace(
/at (new Promise \(<anonymous>\)|.+:\d+:\d+\)?)/g,
'at <stacktrace>',
);
test('that the failureDetails property is set', () => {
const {stdout, stderr} = runJest('failureDetails-property', [
'tests.test.js',
]);
// safety check: if the reporter errors it'll show up here
expect(stderr).toStrictEqual('');
const output = JSON.parse(removeStackTraces(stdout));
if (isJestJasmineRun()) {
expect(output).toMatchInlineSnapshot(`
Array [
Array [
Object {
"actual": "",
"error": Object {
"matcherResult": Object {
"actual": true,
"expected": false,
"message": "expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true",
"name": "toBe",
"pass": false,
},
},
"expected": "",
"matcherName": "",
"message": "Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true",
"passed": false,
"stack": "Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
at <stacktrace>",
},
],
Array [
Object {
"actual": "",
"error": Object {
"matcherResult": Object {
"actual": true,
"expected": false,
"message": "expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true",
"name": "toBe",
"pass": false,
},
},
"expected": "",
"matcherName": "",
"message": "Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true",
"passed": false,
"stack": "Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
at <stacktrace>",
},
],
Array [
Object {
"actual": "",
"error": Object {
"matcherResult": Object {
"actual": "Object {
"p1": "hello",
"p2": "world",
}",
"expected": "Object {
"p1": "hello",
"p2": "sunshine",
}",
"message": "expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: \`my test a snapshot failure 1\`
- Snapshot - 1
+ Received + 1
Object {
"p1": "hello",
- "p2": "sunshine",
+ "p2": "world",
}",
"name": "toMatchInlineSnapshot",
"pass": false,
},
},
"expected": "",
"matcherName": "",
"message": "expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: \`my test a snapshot failure 1\`
- Snapshot - 1
+ Received + 1
Object {
"p1": "hello",
- "p2": "sunshine",
+ "p2": "world",
}",
"passed": false,
"stack": "Error: expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: \`my test a snapshot failure 1\`
- Snapshot - 1
+ Received + 1
Object {
"p1": "hello",
- "p2": "sunshine",
+ "p2": "world",
}
at <stacktrace>",
},
],
Array [
Object {
"actual": "",
"error": Object {},
"expected": "",
"matcherName": "",
"message": "Error",
"passed": false,
"stack": "Error:
at <stacktrace>",
},
],
Array [
Object {
"actual": "",
"error": Object {
"message": "expect(received).rejects.toThrowError()
Received promise resolved instead of rejected
Resolved to value: 1",
},
"expected": "",
"matcherName": "",
"message": "Error: expect(received).rejects.toThrowError()
Received promise resolved instead of rejected
Resolved to value: 1",
"passed": false,
"stack": "Error: expect(received).rejects.toThrowError()
Received promise resolved instead of rejected
Resolved to value: 1
at <stacktrace>",
},
],
]
`);
} else {
expect(output).toMatchInlineSnapshot(`
Array [
Array [
Object {
"matcherResult": Object {
"actual": true,
"expected": false,
"message": "expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true",
"name": "toBe",
"pass": false,
},
},
],
Array [
Object {
"matcherResult": Object {
"actual": true,
"expected": false,
"message": "expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true",
"name": "toBe",
"pass": false,
},
},
],
Array [
Object {
"matcherResult": Object {
"actual": "Object {
"p1": "hello",
"p2": "world",
}",
"expected": "Object {
"p1": "hello",
"p2": "sunshine",
}",
"message": "expect(received).toMatchInlineSnapshot(snapshot)
Snapshot name: \`my test a snapshot failure 1\`
- Snapshot - 1
+ Received + 1
Object {
"p1": "hello",
- "p2": "sunshine",
+ "p2": "world",
}",
"name": "toMatchInlineSnapshot",
"pass": false,
},
},
],
Array [
Object {},
],
Array [
Object {
"message": "expect(received).rejects.toThrowError()
Received promise resolved instead of rejected
Resolved to value: 1",
},
],
]
`);
}
});