1+ import type { LibraryFormats , LibraryOptions } from '../build'
12import { resolveLibFilename } from '../build'
23import { resolve } from 'path'
34
5+ type FormatsToFileNames = [ LibraryFormats , string ] [ ]
6+ const baseLibOptions : LibraryOptions = {
7+ fileName : 'my-lib' ,
8+ entry : 'mylib.js'
9+ }
10+
411describe ( 'resolveLibFilename' , ( ) => {
512 test ( 'custom filename function' , ( ) => {
613 const filename = resolveLibFilename (
@@ -25,7 +32,7 @@ describe('resolveLibFilename', () => {
2532 resolve ( __dirname , 'packages/name' )
2633 )
2734
28- expect ( filename ) . toBe ( 'custom-filename.es.js ' )
35+ expect ( filename ) . toBe ( 'custom-filename.es.mjs ' )
2936 } )
3037
3138 test ( 'package name as filename' , ( ) => {
@@ -37,7 +44,7 @@ describe('resolveLibFilename', () => {
3744 resolve ( __dirname , 'packages/name' )
3845 )
3946
40- expect ( filename ) . toBe ( 'mylib.es.js ' )
47+ expect ( filename ) . toBe ( 'mylib.es.mjs ' )
4148 } )
4249
4350 test ( 'custom filename and no package name' , ( ) => {
@@ -50,7 +57,7 @@ describe('resolveLibFilename', () => {
5057 resolve ( __dirname , 'packages/noname' )
5158 )
5259
53- expect ( filename ) . toBe ( 'custom-filename.es.js ' )
60+ expect ( filename ) . toBe ( 'custom-filename.es.mjs ' )
5461 } )
5562
5663 test ( 'missing filename' , ( ) => {
@@ -64,4 +71,42 @@ describe('resolveLibFilename', () => {
6471 )
6572 } ) . toThrow ( )
6673 } )
74+
75+ test ( 'commonjs package extensions' , ( ) => {
76+ const formatsToFilenames : FormatsToFileNames = [
77+ [ 'es' , 'my-lib.es.mjs' ] ,
78+ [ 'umd' , 'my-lib.umd.js' ] ,
79+ [ 'cjs' , 'my-lib.cjs.js' ] ,
80+ [ 'iife' , 'my-lib.iife.js' ]
81+ ]
82+
83+ for ( const [ format , expectedFilename ] of formatsToFilenames ) {
84+ const filename = resolveLibFilename (
85+ baseLibOptions ,
86+ format ,
87+ resolve ( __dirname , 'packages/noname' )
88+ )
89+
90+ expect ( filename ) . toBe ( expectedFilename )
91+ }
92+ } )
93+
94+ test ( 'module package extensions' , ( ) => {
95+ const formatsToFilenames : FormatsToFileNames = [
96+ [ 'es' , 'my-lib.es.js' ] ,
97+ [ 'umd' , 'my-lib.umd.cjs' ] ,
98+ [ 'cjs' , 'my-lib.cjs.cjs' ] ,
99+ [ 'iife' , 'my-lib.iife.js' ]
100+ ]
101+
102+ for ( const [ format , expectedFilename ] of formatsToFilenames ) {
103+ const filename = resolveLibFilename (
104+ baseLibOptions ,
105+ format ,
106+ resolve ( __dirname , 'packages/module' )
107+ )
108+
109+ expect ( filename ) . toBe ( expectedFilename )
110+ }
111+ } )
67112} )
0 commit comments