Syntax previewClick to edit
1234
export default function resolvePackageEntry(pkg, options) {
throw new Error('Not implemented');
}
Syntax previewClick to edit
12345678910111213141516171819202122232425262728293031323334353637
import resolvePackageEntry from './resolvePackageEntry';
describe('resolvePackageEntry', () => {
test('resolves string exports', () => {
const pkg = { exports: './dist/index.js' };
expect(resolvePackageEntry(pkg)).toBe('./dist/index.js');
});
test('resolves conditional exports with browser + kind', () => {
const pkg = {
exports: {
'.': {
browser: {
import: './dist/browser.mjs',
require: './dist/browser.cjs'
},
default: './dist/index.js'
}
}
};
expect(resolvePackageEntry(pkg, { kind: 'import', conditions: ['browser'] })).toBe('./dist/browser.mjs');
expect(resolvePackageEntry(pkg, { kind: 'require', conditions: ['browser'] })).toBe('./dist/browser.cjs');
expect(resolvePackageEntry(pkg, { kind: 'import' })).toBe('./dist/index.js');
});
test('falls back to module/main when exports is missing', () => {
const pkg = { module: './esm.js', main: './cjs.js' };
expect(resolvePackageEntry(pkg, { kind: 'import' })).toBe('./esm.js');
expect(resolvePackageEntry(pkg, { kind: 'require' })).toBe('./cjs.js');
});
test('throws when nothing can be resolved', () => {
expect(() => resolvePackageEntry({})).toThrow();
});
});
Run tests to see results.