| Q | A <!--(Can use an emoji 👍) -->
| ------------------------ | ---
| Fixed Issues? |
| Patch: Bug Fix? | Y
| Major: Breaking Change? | N
| Minor: New Feature? |
| Tests Added + Pass? | Yes
| Documentation PR | <!-- If so, add `[skip ci]` to your commit message to skip CI -->
| Any Dependency Changes? |
| License | MIT
Currently the `opts.filename` value exposed to plugins is just whatever the user passed. While it _could_ be relative to the working directory, if Babel was passed an absolute URL, it'll be absolute.
This PR explicitly ensures the filename is a relative path based on the working directory. This also exposes an officially endorsed API for reading the working directory path.
20 lines
395 B
JavaScript
20 lines
395 B
JavaScript
const actual = transform(
|
|
'<Foo bar="baz" />',
|
|
Object.assign({}, opts, { filename: 'fake/path/mock.js' })
|
|
).code;
|
|
|
|
const expected = multiline([
|
|
'var _jsxFileName = "fake/path/mock.js";',
|
|
'React.createElement(Foo, {',
|
|
' bar: "baz",',
|
|
' __source: {',
|
|
' fileName: _jsxFileName,',
|
|
' lineNumber: 1',
|
|
' },',
|
|
' __self: this',
|
|
'});',
|
|
]);
|
|
|
|
|
|
expect(actual).toBe(expected);
|