@@ -68,19 +68,19 @@ tap.test('cli overrides .node-dev.json from false to true', t => {
6868tap . test ( '-r ts-node/register --inspect test/fixture/server.js' , t => {
6969 const argv = 'node bin/node-dev -r ts-node/register --inspect test/fixture/server.js' . split ( ' ' ) ;
7070 const { nodeArgs } = cli ( argv ) ;
71- t . same ( nodeArgs , [ '-r ' , 'ts-node/register' , '--inspect '] ) ;
71+ t . same ( nodeArgs , [ '--inspect ' , '--require= ts-node/register' ] ) ;
7272 t . end ( ) ;
7373} ) ;
7474
7575tap . test ( '--inspect -r ts-node/register test/fixture/server.js' , t => {
7676 const argv = 'node bin/node-dev --inspect -r ts-node/register test/fixture/server.js' . split ( ' ' ) ;
7777 const { nodeArgs } = cli ( argv ) ;
78- t . same ( nodeArgs , [ '--inspect' , '-r' , ' ts-node/register'] ) ;
78+ t . same ( nodeArgs , [ '--inspect' , '--require= ts-node/register' ] ) ;
7979 t . end ( ) ;
8080} ) ;
8181
8282tap . test ( '--expose_gc gc.js foo' , t => {
83- const argv = 'node bin/node-dev --expose_gc test/fixture/gc.js test/fixture/ foo' . split ( ' ' ) ;
83+ const argv = 'node bin/node-dev --expose_gc test/fixture/gc.js foo' . split ( ' ' ) ;
8484 const { nodeArgs } = cli ( argv ) ;
8585 t . same ( nodeArgs , [ '--expose_gc' ] ) ;
8686 t . end ( ) ;
@@ -139,3 +139,147 @@ tap.test('--debounce=2000', t => {
139139 t . equal ( debounce , 2000 ) ;
140140 t . end ( ) ;
141141} ) ;
142+
143+ tap . test ( '--require source-map-support/register' , t => {
144+ const { nodeArgs } = cli ( [
145+ 'node' ,
146+ 'bin/node-dev' ,
147+ '--require' ,
148+ 'source-map-support/register' ,
149+ 'test'
150+ ] ) ;
151+
152+ t . same ( nodeArgs , [ '--require=source-map-support/register' ] ) ;
153+ t . end ( ) ;
154+ } ) ;
155+
156+ tap . test ( '--require=source-map-support/register' , t => {
157+ const { nodeArgs } = cli ( [
158+ 'node' ,
159+ 'bin/node-dev' ,
160+ '--require=source-map-support/register' ,
161+ 'test'
162+ ] ) ;
163+
164+ t . same ( nodeArgs , [ '--require=source-map-support/register' ] ) ;
165+ t . end ( ) ;
166+ } ) ;
167+
168+ tap . test ( '-r source-map-support/register' , t => {
169+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '-r' , 'source-map-support/register' , 'test' ] ) ;
170+
171+ t . same ( nodeArgs , [ '--require=source-map-support/register' ] ) ;
172+ t . end ( ) ;
173+ } ) ;
174+
175+ tap . test ( '-r=source-map-support/register' , t => {
176+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '-r=source-map-support/register' , 'test' ] ) ;
177+
178+ t . same ( nodeArgs , [ '--require=source-map-support/register' ] ) ;
179+ t . end ( ) ;
180+ } ) ;
181+
182+ tap . test ( '--inspect=127.0.0.1:12345' , t => {
183+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '--inspect=127.0.0.1:12345' , 'test' ] ) ;
184+
185+ t . same ( nodeArgs , [ '--inspect=127.0.0.1:12345' ] ) ;
186+ t . end ( ) ;
187+ } ) ;
188+
189+ tap . test ( '--inspect' , t => {
190+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '--inspect' , 'test' ] ) ;
191+
192+ t . same ( nodeArgs , [ '--inspect' ] ) ;
193+ t . end ( ) ;
194+ } ) ;
195+
196+ tap . test ( '--require source-map-support/register --require ts-node/register' , t => {
197+ const { nodeArgs } = cli ( [
198+ 'node' ,
199+ 'bin/node-dev' ,
200+ '--require' ,
201+ 'source-map-support/register' ,
202+ '--require' ,
203+ 'ts-node/register' ,
204+ 'test'
205+ ] ) ;
206+
207+ t . same ( nodeArgs , [ '--require=source-map-support/register' , '--require=ts-node/register' ] ) ;
208+ t . end ( ) ;
209+ } ) ;
210+
211+ // This should display usage information at some point
212+ tap . test ( 'No script or option should fail' , t => {
213+ t . throws ( ( ) => cli ( [ 'node' , 'bin/node-dev' ] ) ) ;
214+ t . end ( ) ;
215+ } ) ;
216+
217+ tap . test ( 'Just an option should fail' , t => {
218+ t . throws ( ( ) => cli ( [ 'node' , 'bin/node-dev' , '--option' ] ) ) ;
219+ t . end ( ) ;
220+ } ) ;
221+
222+ tap . test ( 'Just an option with a value should fail' , t => {
223+ t . throws ( ( ) => cli ( [ 'node' , 'bin/node-dev' , '--option=value' ] ) ) ;
224+ t . end ( ) ;
225+ } ) ;
226+
227+ tap . test ( 'An unknown argument with a value instead of a script should fail.' , t => {
228+ t . throws ( ( ) => cli ( [ 'node' , 'bin/node-dev' , '--unknown-arg' , 'value' ] ) ) ;
229+ t . end ( ) ;
230+ } ) ;
231+
232+ tap . test ( 'An unknown argument with a value' , t => {
233+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '--unknown-arg=value' , 'test' ] ) ;
234+
235+ t . same ( nodeArgs , [ '--unknown-arg=value' ] ) ;
236+ t . end ( ) ;
237+ } ) ;
238+
239+ tap . test ( 'An unknown argument without a value can use -- to delimit' , t => {
240+ // use -- to delimit the end of options
241+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '--unknown-arg' , '--' , 'test' ] ) ;
242+
243+ t . same ( nodeArgs , [ '--unknown-arg' ] ) ;
244+ t . end ( ) ;
245+ } ) ;
246+
247+ tap . test ( 'Single dash with value' , t => {
248+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '-u' , 'value' , 'test' ] ) ;
249+
250+ t . same ( nodeArgs , [ '-u=value' ] ) ;
251+ t . end ( ) ;
252+ } ) ;
253+
254+ tap . test ( 'Single dash with = and value' , t => {
255+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '-u=value' , 'test' ] ) ;
256+
257+ t . same ( nodeArgs , [ '-u=value' ] ) ;
258+ t . end ( ) ;
259+ } ) ;
260+
261+ tap . test ( 'Single dash without value should fail' , t => {
262+ t . throws ( ( ) => cli ( [ 'node' , 'bin/node-dev' , '-u' , 'test' ] ) ) ;
263+ t . end ( ) ;
264+ } ) ;
265+
266+ tap . test ( 'Single dash without value can use -- to delimit' , t => {
267+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '-u' , '--' , 'test' ] ) ;
268+
269+ t . same ( nodeArgs , [ '-u' ] ) ;
270+ t . end ( ) ;
271+ } ) ;
272+
273+ tap . test ( 'Repeated single dash' , t => {
274+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '-u=value1' , '-u=value2' , 'test' ] ) ;
275+
276+ t . same ( nodeArgs , [ '-u=value1' , '-u=value2' ] ) ;
277+ t . end ( ) ;
278+ } ) ;
279+
280+ tap . test ( 'Repeated single dash without =' , t => {
281+ const { nodeArgs } = cli ( [ 'node' , 'bin/node-dev' , '-u' , 'value1' , '-u' , 'value2' , 'test' ] ) ;
282+
283+ t . same ( nodeArgs , [ '-u=value1' , '-u=value2' ] ) ;
284+ t . end ( ) ;
285+ } ) ;
0 commit comments