@@ -28,11 +28,11 @@ test('getWorkspacesAndExtensions - correct workspaces', () => {
2828
2929 const result = getWorkspacesAndExtensions ( rootDir ) ;
3030
31- expect ( result . workspaces ) . toStrictEqual ( [ '@tunnckocore' , '@helios ' ] ) ;
31+ expect ( result . workspaces ) . toStrictEqual ( [ '@tunnckocore' , 'packages ' ] ) ;
3232 expect ( result . extensions ) . toStrictEqual ( [ '.js' , '.jsx' , '.ts' ] ) ;
3333 expect ( result . exts ) . toStrictEqual ( [ 'js' , 'jsx' , 'ts' ] ) ;
3434 expect ( result . lernaJson ) . toStrictEqual ( {
35- packages : [ '@tunnckocore/*' , '@helios /*' ] ,
35+ packages : [ '@tunnckocore/*' , 'packages /*' ] ,
3636 } ) ;
3737 expect ( result . packageJson ) . toStrictEqual ( {
3838 name : 'lerna-monorepo' ,
@@ -51,7 +51,7 @@ test('createAliases return empty alias object', () => {
5151 expect ( typeof result . lernaJsonPath ) . toStrictEqual ( 'string' ) ;
5252 expect ( result . lernaJsonPath . startsWith ( cwd ) ) . toStrictEqual ( true ) ;
5353
54- expect ( result . packageRootPath ) . toStrictEqual ( null ) ;
54+ expect ( result . workspaceRootPath ) . toStrictEqual ( null ) ;
5555} ) ;
5656
5757test ( 'createAliases return correct aliases for yarn workspaces' , ( ) => {
@@ -80,18 +80,40 @@ test('createAliases return correct aliases for yarn workspaces', () => {
8080
8181test ( 'createAliases return correct aliases for Lerna workspaces' , ( ) => {
8282 const lernaRoot = path . join ( __dirname , 'fixtures' , 'lerna' ) ;
83- const res = createAliases ( lernaRoot ) ;
83+ const res = createAliases ( lernaRoot , 'source' ) ;
84+
85+ /**
86+ * The scenario is that we have package named `@helios/qux` inside `packages/foo`
87+ * and that's the correct result of `alias`.
88+ * The key is the package name the value is path to source directory, not its root.
89+ * {
90+ * '@tunnckocore /barry': '/home/charlike//fixtures/lerna/@tunnckocore/barry/source',
91+ * '@helios/qux': '/home/charlike/fixtures/lerna/packages/foo/source',
92+ * numb: '/home/charlike/fixtures/lerna/packages/numb/source'
93+ * }
94+ */
95+
96+ expect ( Object . keys ( res . alias ) ) . toStrictEqual ( [
97+ '@tunnckocore/barry' ,
98+ '@helios/qux' ,
99+ 'numb' ,
100+ ] ) ;
84101
85- // eslint-disable-next-line unicorn/consistent-function-scoping
86- const toAliases = ( src ) =>
87- [ '@helios/foo' , '@tunnckocore/barry' ] . reduce ( ( acc , name ) => {
88- acc [ name ] = path . join ( lernaRoot , name , src ) ;
89- return acc ;
90- } , { } ) ;
102+ const bases = Object . values ( res . alias ) . map ( ( filepath ) =>
103+ filepath
104+ . split ( '/' )
105+ . slice ( - 3 )
106+ . join ( '/' ) ,
107+ ) ;
91108
92- expect ( res . alias ) . toStrictEqual ( toAliases ( '' ) ) ;
109+ // These are the real actual directories of above packages
110+ expect ( bases ) . toStrictEqual ( [
111+ '@tunnckocore/barry/source' ,
112+ 'packages/foo/source' ,
113+ 'packages/numb/source' ,
114+ ] ) ;
93115 expect ( res . lernaJson ) . toStrictEqual ( {
94- packages : [ '@tunnckocore/*' , '@helios /*' ] ,
116+ packages : [ '@tunnckocore/*' , 'packages /*' ] ,
95117 } ) ;
96118 expect ( res . exts ) . toStrictEqual ( [ 'js' , 'jsx' , 'ts' ] ) ;
97119 expect ( res . packageJson ) . toStrictEqual ( {
@@ -109,8 +131,11 @@ test('isMonorepo - true for workspaces root', () => {
109131 expect ( isMonorepo ( lernaRepo ) ) . toStrictEqual ( true ) ;
110132} ) ;
111133
112- test ( 'isMonorepo - false regular repository' , ( ) => {
134+ test ( 'isMonorepo - false, regular repository' , ( ) => {
113135 expect ( isMonorepo ( path . dirname ( __dirname ) ) ) . toStrictEqual ( false ) ;
136+
137+ // we cannot test it, because we are in monorepo where the cwd is.
138+ // expect(isMonorepo()).toStrictEqual(false);
114139} ) ;
115140
116141test ( 'correct *Path properties when Lerna monorepo' , ( ) => {
@@ -119,10 +144,10 @@ test('correct *Path properties when Lerna monorepo', () => {
119144
120145 expect ( typeof result . lernaJsonPath ) . toStrictEqual ( 'string' ) ;
121146 expect ( typeof result . packageJsonPath ) . toStrictEqual ( 'string' ) ;
122- expect ( typeof result . packageRootPath ) . toStrictEqual ( 'string' ) ;
147+ expect ( typeof result . workspaceRootPath ) . toStrictEqual ( 'string' ) ;
123148
124149 expect ( path . dirname ( result . lernaJsonPath ) ) . toStrictEqual (
125- result . packageRootPath ,
150+ result . workspaceRootPath ,
126151 ) ;
127152
128153 expect ( result . packageJson ) . toBeTruthy ( ) ;
@@ -135,10 +160,10 @@ test('correct *Path properties when Yarn Workspaces monorepo', () => {
135160
136161 expect ( typeof result . lernaJsonPath ) . toStrictEqual ( 'string' ) ;
137162 expect ( typeof result . packageJsonPath ) . toStrictEqual ( 'string' ) ;
138- expect ( typeof result . packageRootPath ) . toStrictEqual ( 'string' ) ;
163+ expect ( typeof result . workspaceRootPath ) . toStrictEqual ( 'string' ) ;
139164
140165 expect ( path . dirname ( result . packageJsonPath ) ) . toStrictEqual (
141- result . packageRootPath ,
166+ result . workspaceRootPath ,
142167 ) ;
143168
144169 expect ( result . packageJson ) . toBeTruthy ( ) ;
0 commit comments