Skip to content

Commit 3b7efdc

Browse files
ardatann1ru4l
andauthoredFeb 27, 2023
Rename jest-resolver.js to jest-resolver.cjs (#203)
Co-authored-by: Laurin Quast <laurinquast@googlemail.com>
1 parent d604889 commit 3b7efdc

6 files changed

+286
-10
lines changed
 

‎.changeset/red-badgers-shop.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
'bob-the-bundler': major
3+
---
4+
5+
**Breaking** `jest-resolver.js` renamed to `jest-resolver.cjs` because Bob package is an ESM
6+
package.
7+
8+
Please make sure to adjust your `jest.config.js`.
9+
10+
```diff
11+
- resolver: 'bob-the-bundler/jest-resolver.js'
12+
+ resolver: 'bob-the-bundler/jest-resolver.cjs'
13+
```

‎.prettierignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
dist/
22
.bob/
33
test/ts-tests/fixture.js
4+
jest.resolver.cjs

‎jest-resolver.js ‎jest-resolver.cjs

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
module.exports = (path, options) => {
1+
// @ts-check
2+
3+
/** This is module.exports for a reason. Please don't change it. */
4+
/**
5+
* @param {string} path
6+
* @param {import("jest-resolve").ResolverOptions} options
7+
*/
8+
module.exports = function jestResolver(path, options) {
29
/**
310
* Jest does not like .js extensions when not running Jest in EXPERIMENTAL AND TOTALLY UNSTABLE YELL-AT-YA esm mode.
411
* We rewrite it so we can run the tests.

‎package.json

+8-1
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,15 @@
1717
"bob": "dist/index.js"
1818
},
1919
"main": "dist/index.js",
20+
"exports": {
21+
"./jest-resolver": {
22+
"default": "./jest-resolver.cjs"
23+
},
24+
"./package.json": "./package.json"
25+
},
2026
"files": [
2127
"dist",
22-
"jest-resolver.js",
28+
"jest-resolver.cjs",
2329
"README.md"
2430
],
2531
"scripts": {
@@ -67,6 +73,7 @@
6773
"@typescript-eslint/parser": "5.53.0",
6874
"eslint": "8.35.0",
6975
"eslint-plugin-import": "2.27.5",
76+
"jest-resolve": "29.4.2",
7077
"jest-snapshot-serializer-raw": "1.2.0",
7178
"prettier": "2.8.4",
7279
"rimraf": "4.1.2",

‎test/jest-resolver.test.ts

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { expect, it, test } from 'vitest';
2+
import * as jestResolver from '../jest-resolver.cjs';
3+
4+
test('jest-resolver', () => {
5+
it('removes .js extension from relative paths', () => {
6+
const result = jestResolver('./foo.js', {
7+
basedir: __dirname,
8+
defaultResolver: path => path,
9+
});
10+
expect(result).toBe('./foo');
11+
});
12+
it('ignores absolute paths', () => {
13+
const result = jestResolver('/Users/username/project/foo', {
14+
basedir: __dirname,
15+
defaultResolver: path => path,
16+
});
17+
expect(result).toBe('/Users/username/project/foo');
18+
});
19+
it('ignores relative paths from node_modules', () => {
20+
const result = jestResolver('./foo', {
21+
basedir: '/Users/username/project/node_modules/foo',
22+
defaultResolver: path => path,
23+
});
24+
expect(result).toBe('./foo');
25+
});
26+
it('ignores non-js imports', () => {
27+
const result = jestResolver('./foo.graphql', {
28+
basedir: __dirname,
29+
defaultResolver: path => path,
30+
});
31+
expect(result).toBe('./foo.graphql');
32+
});
33+
});

0 commit comments

Comments
 (0)
Please sign in to comment.