@@ -12,7 +12,7 @@ test('get extensions and workspaces - no workspaces', () => {
1212 const result = getWorkspacesAndExtensions ( rootDir ) ;
1313
1414 expect ( result . workspaces ) . toStrictEqual ( [ ] ) ;
15- expect ( result . lerna ) . toStrictEqual ( { } ) ;
15+ expect ( result . lernaJson ) . toStrictEqual ( { } ) ;
1616 expect ( result . exts ) . toStrictEqual ( [ 'tsx' , 'ts' , 'jsx' , 'js' , 'mjs' ] ) ;
1717 expect ( result . extensions ) . toStrictEqual ( [
1818 '.tsx' ,
@@ -31,10 +31,10 @@ test('getWorkspacesAndExtensions - correct workspaces', () => {
3131 expect ( result . workspaces ) . toStrictEqual ( [ '@tunnckocore' , '@helios' ] ) ;
3232 expect ( result . extensions ) . toStrictEqual ( [ '.js' , '.jsx' , '.ts' ] ) ;
3333 expect ( result . exts ) . toStrictEqual ( [ 'js' , 'jsx' , 'ts' ] ) ;
34- expect ( result . lerna ) . toStrictEqual ( {
34+ expect ( result . lernaJson ) . toStrictEqual ( {
3535 packages : [ '@tunnckocore/*' , '@helios/*' ] ,
3636 } ) ;
37- expect ( result . pkg ) . toStrictEqual ( {
37+ expect ( result . packageJson ) . toStrictEqual ( {
3838 name : 'lerna-monorepo' ,
3939 extensions : result . exts ,
4040 } ) ;
@@ -45,6 +45,13 @@ test('createAliases return empty alias object', () => {
4545 const result = createAliases ( cwd ) ;
4646
4747 expect ( result . alias ) . toStrictEqual ( { } ) ;
48+ expect ( typeof result . packageJsonPath ) . toStrictEqual ( 'string' ) ;
49+ expect ( result . packageJsonPath . startsWith ( cwd ) ) . toStrictEqual ( true ) ;
50+
51+ expect ( typeof result . lernaJsonPath ) . toStrictEqual ( 'string' ) ;
52+ expect ( result . lernaJsonPath . startsWith ( cwd ) ) . toStrictEqual ( true ) ;
53+
54+ expect ( result . packageRootPath ) . toStrictEqual ( null ) ;
4855} ) ;
4956
5057test ( 'createAliases return correct aliases for yarn workspaces' , ( ) => {
@@ -59,14 +66,16 @@ test('createAliases return correct aliases for yarn workspaces', () => {
5966 } , { } ) ;
6067
6168 expect ( result . alias ) . toStrictEqual ( toAliases ( 'src' ) ) ;
62- expect ( result . lerna ) . toStrictEqual ( { } ) ;
69+ expect ( result . lernaJson ) . toStrictEqual ( { } ) ;
6370 expect ( result . exts ) . toStrictEqual ( [ 'js' , 'ts' ] ) ;
64- expect ( result . pkg ) . toStrictEqual ( {
71+ expect ( result . packageJson ) . toStrictEqual ( {
6572 extensions : result . exts ,
6673 workspaces : [ '@tunnckocore/*' , '@hela/*' ] ,
6774 } ) ;
68- expect ( result . lernaPath ) . toStrictEqual ( path . join ( yarnRoot , 'lerna.json' ) ) ;
69- expect ( result . packagePath ) . toStrictEqual ( path . join ( yarnRoot , 'package.json' ) ) ;
75+ expect ( result . lernaJsonPath ) . toStrictEqual ( path . join ( yarnRoot , 'lerna.json' ) ) ;
76+ expect ( result . packageJsonPath ) . toStrictEqual (
77+ path . join ( yarnRoot , 'package.json' ) ,
78+ ) ;
7079} ) ;
7180
7281test ( 'createAliases return correct aliases for Lerna workspaces' , ( ) => {
@@ -81,16 +90,18 @@ test('createAliases return correct aliases for Lerna workspaces', () => {
8190 } , { } ) ;
8291
8392 expect ( res . alias ) . toStrictEqual ( toAliases ( '' ) ) ;
84- expect ( res . lerna ) . toStrictEqual ( {
93+ expect ( res . lernaJson ) . toStrictEqual ( {
8594 packages : [ '@tunnckocore/*' , '@helios/*' ] ,
8695 } ) ;
8796 expect ( res . exts ) . toStrictEqual ( [ 'js' , 'jsx' , 'ts' ] ) ;
88- expect ( res . pkg ) . toStrictEqual ( {
97+ expect ( res . packageJson ) . toStrictEqual ( {
8998 name : 'lerna-monorepo' ,
9099 extensions : [ 'js' , 'jsx' , 'ts' ] ,
91100 } ) ;
92- expect ( res . lernaPath ) . toStrictEqual ( path . join ( lernaRoot , 'lerna.json' ) ) ;
93- expect ( res . packagePath ) . toStrictEqual ( path . join ( lernaRoot , 'package.json' ) ) ;
101+ expect ( res . lernaJsonPath ) . toStrictEqual ( path . join ( lernaRoot , 'lerna.json' ) ) ;
102+ expect ( res . packageJsonPath ) . toStrictEqual (
103+ path . join ( lernaRoot , 'package.json' ) ,
104+ ) ;
94105} ) ;
95106
96107test ( 'isMonorepo - true for workspaces root' , ( ) => {
@@ -101,3 +112,35 @@ test('isMonorepo - true for workspaces root', () => {
101112test ( 'isMonorepo - false regular repository' , ( ) => {
102113 expect ( isMonorepo ( path . dirname ( __dirname ) ) ) . toStrictEqual ( false ) ;
103114} ) ;
115+
116+ test ( 'correct *Path properties when Lerna monorepo' , ( ) => {
117+ const lernaRoot = path . join ( __dirname , 'fixtures' , 'lerna' ) ;
118+ const result = createAliases ( lernaRoot ) ;
119+
120+ expect ( typeof result . lernaJsonPath ) . toStrictEqual ( 'string' ) ;
121+ expect ( typeof result . packageJsonPath ) . toStrictEqual ( 'string' ) ;
122+ expect ( typeof result . packageRootPath ) . toStrictEqual ( 'string' ) ;
123+
124+ expect ( path . dirname ( result . lernaJsonPath ) ) . toStrictEqual (
125+ result . packageRootPath ,
126+ ) ;
127+
128+ expect ( result . packageJson ) . toBeTruthy ( ) ;
129+ expect ( typeof result . packageJson ) . toStrictEqual ( 'object' ) ;
130+ } ) ;
131+
132+ test ( 'correct *Path properties when Yarn Workspaces monorepo' , ( ) => {
133+ const yarnWorkspaces = path . join ( __dirname , 'fixtures' , 'yarn-workspaces' ) ;
134+ const result = createAliases ( yarnWorkspaces ) ;
135+
136+ expect ( typeof result . lernaJsonPath ) . toStrictEqual ( 'string' ) ;
137+ expect ( typeof result . packageJsonPath ) . toStrictEqual ( 'string' ) ;
138+ expect ( typeof result . packageRootPath ) . toStrictEqual ( 'string' ) ;
139+
140+ expect ( path . dirname ( result . packageJsonPath ) ) . toStrictEqual (
141+ result . packageRootPath ,
142+ ) ;
143+
144+ expect ( result . packageJson ) . toBeTruthy ( ) ;
145+ expect ( typeof result . packageJson ) . toStrictEqual ( 'object' ) ;
146+ } ) ;
0 commit comments