diff --git a/packages/core/tests/config.test.ts b/packages/core/tests/config.test.ts index 3a94feeb..16cc5e67 100644 --- a/packages/core/tests/config.test.ts +++ b/packages/core/tests/config.test.ts @@ -5,7 +5,7 @@ import type { RslibConfig } from '../src/types/config'; describe('Should load config file correctly', () => { test('Load config.js in cjs project', async () => { - const fixtureDir = join(__dirname, 'config/cjs'); + const fixtureDir = join(__dirname, 'fixtures/config/cjs'); const configDir = join(fixtureDir, 'rslib.config.js'); const config = await loadConfig(configDir); expect(config).toEqual({ @@ -22,7 +22,7 @@ describe('Should load config file correctly', () => { }); test('Load config.mjs in cjs project', async () => { - const fixtureDir = join(__dirname, 'config/cjs'); + const fixtureDir = join(__dirname, 'fixtures/config/cjs'); const configDir = join(fixtureDir, 'rslib.config.mjs'); const config = await loadConfig(configDir); expect(config).toEqual({ @@ -39,7 +39,7 @@ describe('Should load config file correctly', () => { }); test('Load config.ts in cjs project', async () => { - const fixtureDir = join(__dirname, 'config/cjs'); + const fixtureDir = join(__dirname, 'fixtures/config/cjs'); const configDir = join(fixtureDir, 'rslib.config.ts'); const config = await loadConfig(configDir); expect(config).toEqual({ @@ -56,7 +56,7 @@ describe('Should load config file correctly', () => { }); test('Load config.cjs with defineConfig in cjs project', async () => { - const fixtureDir = join(__dirname, 'config/cjs'); + const fixtureDir = join(__dirname, 'fixtures/config/cjs'); const configDir = join(fixtureDir, 'rslib.config.cjs'); const config = await loadConfig(configDir); expect(config).toEqual({ @@ -73,7 +73,7 @@ describe('Should load config file correctly', () => { }); test('Load config.js in esm project', async () => { - const fixtureDir = join(__dirname, 'config/esm'); + const fixtureDir = join(__dirname, 'fixtures/config/esm'); const configDir = join(fixtureDir, 'rslib.config.js'); const config = await loadConfig(configDir); expect(config).toEqual({ @@ -90,7 +90,7 @@ describe('Should load config file correctly', () => { }); test('Load config.cjs in esm project', async () => { - const fixtureDir = join(__dirname, 'config/esm'); + const fixtureDir = join(__dirname, 'fixtures/config/esm'); const configDir = join(fixtureDir, 'rslib.config.cjs'); const config = await loadConfig(configDir); expect(config).toEqual({ @@ -107,7 +107,7 @@ describe('Should load config file correctly', () => { }); test('Load config.ts in esm project', async () => { - const fixtureDir = join(__dirname, 'config/esm'); + const fixtureDir = join(__dirname, 'fixtures/config/esm'); const configDir = join(fixtureDir, 'rslib.config.ts'); const config = await loadConfig(configDir); expect(config).toEqual({ @@ -124,7 +124,7 @@ describe('Should load config file correctly', () => { }); test('Load config.mjs with defineConfig in esm project', async () => { - const fixtureDir = join(__dirname, 'config/esm'); + const fixtureDir = join(__dirname, 'fixtures/config/esm'); const configDir = join(fixtureDir, 'rslib.config.mjs'); const config = await loadConfig(configDir); expect(config).toEqual({ diff --git a/packages/core/tests/core.test.ts b/packages/core/tests/core.test.ts deleted file mode 100644 index cc15a93c..00000000 --- a/packages/core/tests/core.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -describe('core', () => { - it('should work', () => { - expect(1).toBe(1); - }); -}); diff --git a/packages/core/tests/extension.test.ts b/packages/core/tests/extension.test.ts new file mode 100644 index 00000000..eedadcf6 --- /dev/null +++ b/packages/core/tests/extension.test.ts @@ -0,0 +1,99 @@ +import { join } from 'node:path'; +import { describe, expect, it } from 'vitest'; +import { getDefaultExtension } from '../src/utils/extension'; + +describe('should get extension correctly', () => { + it('autoExtension is false', () => { + const options = { + format: 'cjs', + root: '/path/to/root', + autoExtension: false, + }; + + const result = getDefaultExtension(options); + + expect(result).toEqual({ + jsExtension: '.js', + dtsExtension: '.d.ts', + }); + }); + + it('package.json is broken', () => { + const options = { + format: 'cjs', + root: '/path/to/root', + autoExtension: true, + }; + + const result = getDefaultExtension(options); + + expect(result).toEqual({ + jsExtension: '.js', + dtsExtension: '.d.ts', + }); + }); + + it('format is cjs and type is module in package.json', () => { + const options = { + format: 'cjs', + root: join(__dirname, 'fixtures/extension/type-module'), + autoExtension: true, + }; + + const result = getDefaultExtension(options); + + expect(result).toEqual({ + jsExtension: '.cjs', + dtsExtension: '.d.cts', + isModule: true, + }); + }); + + it('format is cjs and type is commonjs in package.json', () => { + const options = { + format: 'cjs', + root: join(__dirname, 'fixtures/extension/type-commonjs'), + autoExtension: true, + }; + + const result = getDefaultExtension(options); + + expect(result).toEqual({ + jsExtension: '.js', + dtsExtension: '.d.ts', + isModule: false, + }); + }); + + it('format is esm and type is commonjs in package.json', () => { + const options = { + format: 'esm', + root: join(__dirname, 'fixtures/extension/type-commonjs'), + autoExtension: true, + }; + + const result = getDefaultExtension(options); + + expect(result).toEqual({ + jsExtension: '.mjs', + dtsExtension: '.d.mts', + isModule: false, + }); + }); + + it('format is esm and type is module in package.json', () => { + const options = { + format: 'esm', + root: join(__dirname, 'fixtures/extension/type-module'), + autoExtension: true, + }; + + const result = getDefaultExtension(options); + + expect(result).toEqual({ + jsExtension: '.js', + dtsExtension: '.d.ts', + isModule: true, + }); + }); +}); diff --git a/packages/core/tests/config/cjs/package.json b/packages/core/tests/fixtures/config/cjs/package.json similarity index 100% rename from packages/core/tests/config/cjs/package.json rename to packages/core/tests/fixtures/config/cjs/package.json diff --git a/packages/core/tests/config/cjs/rslib.config.cjs b/packages/core/tests/fixtures/config/cjs/rslib.config.cjs similarity index 65% rename from packages/core/tests/config/cjs/rslib.config.cjs rename to packages/core/tests/fixtures/config/cjs/rslib.config.cjs index aa2b913a..0b9702ca 100644 --- a/packages/core/tests/config/cjs/rslib.config.cjs +++ b/packages/core/tests/fixtures/config/cjs/rslib.config.cjs @@ -1,4 +1,4 @@ -const { defineConfig } = require('../../../../core/src/config'); +const { defineConfig } = require('../../../../../core/src/config'); module.exports = defineConfig((args) => ({ lib: [], diff --git a/packages/core/tests/config/cjs/rslib.config.js b/packages/core/tests/fixtures/config/cjs/rslib.config.js similarity index 100% rename from packages/core/tests/config/cjs/rslib.config.js rename to packages/core/tests/fixtures/config/cjs/rslib.config.js diff --git a/packages/core/tests/config/cjs/rslib.config.mjs b/packages/core/tests/fixtures/config/cjs/rslib.config.mjs similarity index 100% rename from packages/core/tests/config/cjs/rslib.config.mjs rename to packages/core/tests/fixtures/config/cjs/rslib.config.mjs diff --git a/packages/core/tests/config/cjs/rslib.config.ts b/packages/core/tests/fixtures/config/cjs/rslib.config.ts similarity index 100% rename from packages/core/tests/config/cjs/rslib.config.ts rename to packages/core/tests/fixtures/config/cjs/rslib.config.ts diff --git a/packages/core/tests/config/esm/package.json b/packages/core/tests/fixtures/config/esm/package.json similarity index 100% rename from packages/core/tests/config/esm/package.json rename to packages/core/tests/fixtures/config/esm/package.json diff --git a/packages/core/tests/config/esm/rslib.config.cjs b/packages/core/tests/fixtures/config/esm/rslib.config.cjs similarity index 100% rename from packages/core/tests/config/esm/rslib.config.cjs rename to packages/core/tests/fixtures/config/esm/rslib.config.cjs diff --git a/packages/core/tests/config/esm/rslib.config.js b/packages/core/tests/fixtures/config/esm/rslib.config.js similarity index 100% rename from packages/core/tests/config/esm/rslib.config.js rename to packages/core/tests/fixtures/config/esm/rslib.config.js diff --git a/packages/core/tests/config/esm/rslib.config.mjs b/packages/core/tests/fixtures/config/esm/rslib.config.mjs similarity index 66% rename from packages/core/tests/config/esm/rslib.config.mjs rename to packages/core/tests/fixtures/config/esm/rslib.config.mjs index facaa7ee..f94b552b 100644 --- a/packages/core/tests/config/esm/rslib.config.mjs +++ b/packages/core/tests/fixtures/config/esm/rslib.config.mjs @@ -1,4 +1,4 @@ -import { defineConfig } from '../../../../core/src/config'; +import { defineConfig } from '../../../../../core/src/config'; export default defineConfig((args) => ({ lib: [], diff --git a/packages/core/tests/config/esm/rslib.config.ts b/packages/core/tests/fixtures/config/esm/rslib.config.ts similarity index 100% rename from packages/core/tests/config/esm/rslib.config.ts rename to packages/core/tests/fixtures/config/esm/rslib.config.ts diff --git a/packages/core/tests/fixtures/extension/type-commonjs/package.json b/packages/core/tests/fixtures/extension/type-commonjs/package.json new file mode 100644 index 00000000..5bbefffb --- /dev/null +++ b/packages/core/tests/fixtures/extension/type-commonjs/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/packages/core/tests/fixtures/extension/type-module/package.json b/packages/core/tests/fixtures/extension/type-module/package.json new file mode 100644 index 00000000..3dbc1ca5 --- /dev/null +++ b/packages/core/tests/fixtures/extension/type-module/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +}