258 lines
6.5 KiB
TypeScript
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",
|
|
},
|
|
],
|
|
]
|
|
`);
|
|
}
|
|
});
|