Skip to content

Commit

Permalink
install sourcecmap-support into normal runtime as well
Browse files Browse the repository at this point in the history
Fixes #5925
  • Loading branch information
SimenB committed Apr 9, 2018
1 parent 89d98d3 commit 0e18c77
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 18 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@

### Fixes

* `[jest-jasmine2]` Install `sourcemap-support` into normal runtime to catch
runtime errors ([#5945](https://github.com/facebook/jest/pull/5945))
* `[jest-jasmine2]` Added assertion error handling inside `afterAll hook`
([#5884](https://github.com/facebook/jest/pull/5884))
* `[jest-cli]` Remove the notifier actions in case of failure when not in watch
Expand Down
1 change: 1 addition & 0 deletions integration-tests/__tests__/stack_trace.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ describe('Stack Trace', () => {
expect(stderr).toMatch(
/ReferenceError: thisIsARuntimeError is not defined/,
);
expect(stderr).toMatch(/> 10 \| thisIsARuntimeError\(\);/);
expect(stderr).toMatch(
/\s+at\s(?:.+?)\s\(__tests__\/runtime_error.test\.js/,
);
Expand Down
43 changes: 25 additions & 18 deletions packages/jest-jasmine2/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import type Runtime from 'jest-runtime';
import path from 'path';
import fs from 'graceful-fs';
import {getCallsite} from 'jest-util';
import sourcemapSupport from 'source-map-support';
import JasmineReporter from './reporter';
import {install as jasmineAsyncInstall} from './jasmine_async';

Expand Down Expand Up @@ -116,29 +117,35 @@ async function jasmine2(
runtime.requireModule(config.setupTestFrameworkScriptFile);
}

const sourcemapOptions = {
environment: 'node',
handleUncaughtExceptions: false,
retrieveSourceMap: source => {
const sourceMaps = runtime.getSourceMaps();
const sourceMapSource = sourceMaps && sourceMaps[source];

if (sourceMapSource) {
try {
return {
map: JSON.parse(fs.readFileSync(sourceMapSource)),
url: source,
};
} catch (e) {}
}
return null;
},
};

// For tests
runtime
.requireInternalModule(
require.resolve('source-map-support'),
'source-map-support',
)
.install({
environment: 'node',
handleUncaughtExceptions: false,
retrieveSourceMap: source => {
const sourceMaps = runtime.getSourceMaps();
const sourceMapSource = sourceMaps && sourceMaps[source];

if (sourceMapSource) {
try {
return {
map: JSON.parse(fs.readFileSync(sourceMapSource)),
url: source,
};
} catch (e) {}
}
return null;
},
});
.install(sourcemapOptions);

// For runtime errors
sourcemapSupport.install(sourcemapOptions);

if (globalConfig.enabledTestsMap) {
env.specFilter = spec => {
Expand Down

0 comments on commit 0e18c77

Please sign in to comment.