@@ -21,7 +21,7 @@ import {
21
21
ConfigFile ,
22
22
getTSConfig ,
23
23
isYarnUsed ,
24
- getPkgManagerName ,
24
+ getPkgManagerCommand ,
25
25
} from '../src/util' ;
26
26
27
27
/**
@@ -46,35 +46,37 @@ function makeFakeFsExistsSync(
46
46
) : ( path : PathLike ) => boolean {
47
47
return ( path : PathLike ) => expected . some ( item => item === path ) ;
48
48
}
49
+
50
+ const FAKE_DIRECTORY = '/some/fake/directory' ;
51
+ const PATH_TO_TSCONFIG = path . resolve ( FAKE_DIRECTORY , 'tsconfig.json' ) ;
52
+ const PATH_TO_CONFIG2 = path . resolve ( FAKE_DIRECTORY , 'FAKE_CONFIG2' ) ;
53
+ const PATH_TO_CONFIG3 = path . resolve ( FAKE_DIRECTORY , 'FAKE_CONFIG3' ) ;
54
+
49
55
describe ( 'util' , ( ) => {
50
56
it ( 'get should parse the correct tsconfig file' , async ( ) => {
51
- const FAKE_DIRECTORY = '/some/fake/directory' ;
52
57
const FAKE_CONFIG1 = { files : [ 'b' ] } ;
53
58
54
59
function fakeReadFilep (
55
60
configPath : string ,
56
61
encoding : string
57
62
) : Promise < string > {
58
- assert . strictEqual (
59
- configPath ,
60
- path . join ( FAKE_DIRECTORY , 'tsconfig.json' )
61
- ) ;
63
+ assert . strictEqual ( configPath , PATH_TO_TSCONFIG ) ;
62
64
assert . strictEqual ( encoding , 'utf8' ) ;
63
65
return Promise . resolve ( JSON . stringify ( FAKE_CONFIG1 ) ) ;
64
66
}
65
67
const contents = await getTSConfig ( FAKE_DIRECTORY , fakeReadFilep ) ;
68
+
66
69
assert . deepStrictEqual ( contents , FAKE_CONFIG1 ) ;
67
70
} ) ;
68
71
69
72
it ( 'should throw an error if it finds a circular reference' , ( ) => {
70
- const FAKE_DIRECTORY = '/some/fake/directory' ;
71
73
const FAKE_CONFIG1 = { files : [ 'b' ] , extends : 'FAKE_CONFIG2' } ;
72
74
const FAKE_CONFIG2 = { extends : 'FAKE_CONFIG3' } ;
73
75
const FAKE_CONFIG3 = { extends : 'tsconfig.json' } ;
74
76
const myMap = new Map ( ) ;
75
- myMap . set ( '/some/fake/directory/tsconfig.json' , FAKE_CONFIG1 ) ;
76
- myMap . set ( '/some/fake/directory/FAKE_CONFIG2' , FAKE_CONFIG2 ) ;
77
- myMap . set ( '/some/fake/directory/FAKE_CONFIG3' , FAKE_CONFIG3 ) ;
77
+ myMap . set ( PATH_TO_TSCONFIG , FAKE_CONFIG1 ) ;
78
+ myMap . set ( PATH_TO_CONFIG2 , FAKE_CONFIG2 ) ;
79
+ myMap . set ( PATH_TO_CONFIG3 , FAKE_CONFIG3 ) ;
78
80
79
81
return assert . rejects (
80
82
( ) => getTSConfig ( FAKE_DIRECTORY , createFakeReadFilep ( myMap ) ) ,
@@ -84,7 +86,6 @@ describe('util', () => {
84
86
} ) ;
85
87
86
88
it ( 'should follow dependency chain caused by extends files' , async ( ) => {
87
- const FAKE_DIRECTORY = '/some/fake/directory' ;
88
89
const FAKE_CONFIG1 = {
89
90
compilerOptions : { a : 'n' } ,
90
91
files : [ 'b' ] ,
@@ -100,9 +101,9 @@ describe('util', () => {
100
101
} ;
101
102
102
103
const myMap = new Map ( ) ;
103
- myMap . set ( '/some/fake/directory/tsconfig.json' , FAKE_CONFIG1 ) ;
104
- myMap . set ( '/some/fake/directory/FAKE_CONFIG2' , FAKE_CONFIG2 ) ;
105
- myMap . set ( '/some/fake/directory/FAKE_CONFIG3' , FAKE_CONFIG3 ) ;
104
+ myMap . set ( PATH_TO_TSCONFIG , FAKE_CONFIG1 ) ;
105
+ myMap . set ( PATH_TO_CONFIG2 , FAKE_CONFIG2 ) ;
106
+ myMap . set ( PATH_TO_CONFIG3 , FAKE_CONFIG3 ) ;
106
107
107
108
const contents = await getTSConfig (
108
109
FAKE_DIRECTORY ,
@@ -112,15 +113,14 @@ describe('util', () => {
112
113
} ) ;
113
114
114
115
it ( 'when a file contains an extends field, the base file is loaded first then overridden by the inherited files' , async ( ) => {
115
- const FAKE_DIRECTORY = '/some/fake/directory' ;
116
116
const FAKE_CONFIG1 = { files : [ 'b' ] , extends : 'FAKE_CONFIG2' } ;
117
117
const FAKE_CONFIG2 = { files : [ 'c' ] , extends : 'FAKE_CONFIG3' } ;
118
118
const FAKE_CONFIG3 = { files : [ 'd' ] } ;
119
119
const combinedConfig = { compilerOptions : { } , files : [ 'b' ] } ;
120
120
const myMap = new Map ( ) ;
121
- myMap . set ( '/some/fake/directory/tsconfig.json' , FAKE_CONFIG1 ) ;
122
- myMap . set ( '/some/fake/directory/FAKE_CONFIG2' , FAKE_CONFIG2 ) ;
123
- myMap . set ( '/some/fake/directory/FAKE_CONFIG3' , FAKE_CONFIG3 ) ;
121
+ myMap . set ( PATH_TO_TSCONFIG , FAKE_CONFIG1 ) ;
122
+ myMap . set ( PATH_TO_CONFIG2 , FAKE_CONFIG2 ) ;
123
+ myMap . set ( PATH_TO_CONFIG3 , FAKE_CONFIG3 ) ;
124
124
125
125
const contents = await getTSConfig (
126
126
FAKE_DIRECTORY ,
@@ -130,7 +130,6 @@ describe('util', () => {
130
130
} ) ;
131
131
132
132
it ( 'when reading a file, all filepaths should be relative to the config file currently being read' , async ( ) => {
133
- const FAKE_DIRECTORY = '/some/fake/directory' ;
134
133
const FAKE_CONFIG1 = { files : [ 'b' ] , extends : './foo/FAKE_CONFIG2' } ;
135
134
const FAKE_CONFIG2 = { include : [ 'c' ] , extends : './bar/FAKE_CONFIG3' } ;
136
135
const FAKE_CONFIG3 = { exclude : [ 'd' ] } ;
@@ -141,9 +140,12 @@ describe('util', () => {
141
140
include : [ 'c' ] ,
142
141
} ;
143
142
const myMap = new Map ( ) ;
144
- myMap . set ( '/some/fake/directory/tsconfig.json' , FAKE_CONFIG1 ) ;
145
- myMap . set ( '/some/fake/directory/foo/FAKE_CONFIG2' , FAKE_CONFIG2 ) ;
146
- myMap . set ( '/some/fake/directory/foo/bar/FAKE_CONFIG3' , FAKE_CONFIG3 ) ;
143
+ myMap . set ( PATH_TO_TSCONFIG , FAKE_CONFIG1 ) ;
144
+ myMap . set ( path . resolve ( FAKE_DIRECTORY , './foo/FAKE_CONFIG2' ) , FAKE_CONFIG2 ) ;
145
+ myMap . set (
146
+ path . resolve ( FAKE_DIRECTORY , './foo/bar/FAKE_CONFIG3' ) ,
147
+ FAKE_CONFIG3
148
+ ) ;
147
149
148
150
const contents = await getTSConfig (
149
151
FAKE_DIRECTORY ,
@@ -153,7 +155,6 @@ describe('util', () => {
153
155
} ) ;
154
156
155
157
it ( 'function throws an error when reading a file that does not exist' , ( ) => {
156
- const FAKE_DIRECTORY = '/some/fake/directory' ;
157
158
const myMap = new Map ( ) ;
158
159
159
160
return assert . rejects (
@@ -178,13 +179,15 @@ describe('util', () => {
178
179
assert . strictEqual ( isYarnUsed ( existsSync ) , false ) ;
179
180
} ) ;
180
181
181
- it ( 'getPkgManagerName returns npm by default' , ( ) => {
182
- assert . strictEqual ( getPkgManagerName ( ) , 'npm' ) ;
183
- assert . strictEqual ( getPkgManagerName ( ) , getPkgManagerName ( false ) ) ;
182
+ const npmCmd = process . platform !== 'win32' ? 'npm' : 'npm.cmd' ;
183
+ const yarnCmd = process . platform !== 'win32' ? 'yarn' : 'yarn.cmd' ;
184
+ it ( 'getPkgManagerCommand returns npm by default' , ( ) => {
185
+ assert . strictEqual ( getPkgManagerCommand ( ) , npmCmd ) ;
186
+ assert . strictEqual ( getPkgManagerCommand ( ) , getPkgManagerCommand ( false ) ) ;
184
187
} ) ;
185
188
186
- it ( 'getPkgManagerName returns yarn' , ( ) => {
187
- assert . strictEqual ( getPkgManagerName ( true ) , 'yarn' ) ;
189
+ it ( 'getPkgManagerCommand returns yarn' , ( ) => {
190
+ assert . strictEqual ( getPkgManagerCommand ( true ) , yarnCmd ) ;
188
191
} ) ;
189
192
190
193
// TODO: test errors in readFile, JSON.parse.
0 commit comments