@@ -91,7 +91,7 @@ impl RstestParserPlugin {
91
91
. presentational_dependencies
92
92
. push ( Box :: new ( ConstDependency :: new (
93
93
range,
94
- ".require_actual " . into ( ) ,
94
+ ".rstest_require_actual " . into ( ) ,
95
95
None ,
96
96
) ) ) ;
97
97
@@ -158,7 +158,7 @@ impl RstestParserPlugin {
158
158
. unwrap_or ( value. as_ref ( ) )
159
159
. to_string ( ) ,
160
160
) ;
161
- let is_relative_request = path_buf. starts_with ( "." ) ; // TODO: consider alias?
161
+ let is_relative_request = path_buf. to_string ( ) . starts_with ( "." ) ; // TODO: consider alias?
162
162
let mocked_target = if is_relative_request {
163
163
// Mock relative request to alongside `__mocks__` directory.
164
164
path_buf
@@ -287,14 +287,33 @@ impl RstestParserPlugin {
287
287
}
288
288
}
289
289
290
+ fn hoisted ( & self , parser : & mut JavascriptParser , call_expr : & CallExpr ) {
291
+ match call_expr. args . len ( ) {
292
+ 1 => {
293
+ parser
294
+ . presentational_dependencies
295
+ . push ( Box :: new ( MockMethodDependency :: new (
296
+ call_expr. span ( ) ,
297
+ call_expr. callee . span ( ) ,
298
+ call_expr. span ( ) . real_lo ( ) . to_string ( ) ,
299
+ true ,
300
+ MockMethod :: Hoisted ,
301
+ ) ) ) ;
302
+ }
303
+ _ => {
304
+ panic ! ( "`rs.hoisted` function expects 1 argument, got more than 1" ) ;
305
+ }
306
+ }
307
+ }
308
+
290
309
fn reset_modules ( & self , parser : & mut JavascriptParser , call_expr : & CallExpr ) -> Option < bool > {
291
310
match call_expr. args . len ( ) {
292
311
0 => {
293
312
parser
294
313
. presentational_dependencies
295
314
. push ( Box :: new ( ConstDependency :: new (
296
315
call_expr. callee . span ( ) . into ( ) ,
297
- "__webpack_require__.reset_modules " . into ( ) ,
316
+ "__webpack_require__.rstest_reset_modules " . into ( ) ,
298
317
None ,
299
318
) ) ) ;
300
319
Some ( true )
@@ -417,56 +436,61 @@ impl JavascriptParserPlugin for RstestParserPlugin {
417
436
if let Some ( prop) = q. prop . as_ident ( ) {
418
437
match ( ident. sym . as_str ( ) , prop. sym . as_str ( ) ) {
419
438
// rs.mock
420
- ( "rs" , "mock" ) => {
439
+ ( "rs" , "mock" ) | ( "rstest" , "mock" ) => {
421
440
self . process_mock ( parser, call_expr, true , true , MockMethod :: Mock , true ) ;
422
441
return Some ( false ) ;
423
442
}
424
443
// rs.mockRequire
425
- ( "rs" , "mockRequire" ) => {
444
+ ( "rs" , "mockRequire" ) | ( "rstest" , "mockRequire" ) => {
426
445
self . process_mock ( parser, call_expr, true , false , MockMethod :: Mock , true ) ;
427
446
return Some ( false ) ;
428
447
}
429
448
// rs.doMock
430
- ( "rs" , "doMock" ) => {
449
+ ( "rs" , "doMock" ) | ( "rstest" , "doMock" ) => {
431
450
self . process_mock ( parser, call_expr, false , true , MockMethod :: Mock , true ) ;
432
451
return Some ( false ) ;
433
452
}
434
453
// rs.doMockRequire
435
- ( "rs" , "doMockRequire" ) => {
454
+ ( "rs" , "doMockRequire" ) | ( "rstest" , "doMockRequire" ) => {
436
455
self . process_mock ( parser, call_expr, false , false , MockMethod :: Mock , true ) ;
437
456
return Some ( false ) ;
438
457
}
439
458
// rs.importActual
440
- ( "rs" , "importActual" ) => {
459
+ ( "rs" , "importActual" ) | ( "rstest" , "importActual" ) => {
441
460
return self . process_import_actual ( parser, call_expr) ;
442
461
}
443
462
// rs.requireActual
444
- ( "rs" , "requireActual" ) => {
463
+ ( "rs" , "requireActual" ) | ( "rstest" , "requireActual" ) => {
445
464
return self . process_require_actual ( parser, call_expr) ;
446
465
}
447
466
// rs.importMock
448
- ( "rs" , "importMock" ) => {
467
+ ( "rs" , "importMock" ) | ( "rstest" , "importMock" ) => {
449
468
return self . load_mock ( parser, call_expr, true ) ;
450
469
}
451
470
// rs.requireMock
452
- ( "rs" , "requireMock" ) => {
471
+ ( "rs" , "requireMock" ) | ( "rstest" , "requireMock" ) => {
453
472
return self . load_mock ( parser, call_expr, false ) ;
454
473
}
455
474
// rs.unmock
456
- ( "rs" , "unmock" ) => {
475
+ ( "rs" , "unmock" ) | ( "rstest" , "unmock" ) => {
457
476
self . process_mock ( parser, call_expr, true , true , MockMethod :: Unmock , false ) ;
458
477
return Some ( true ) ;
459
478
}
460
479
// rs.doUnmock
461
- ( "rs" , "doUnmock" ) => {
480
+ ( "rs" , "doUnmock" ) | ( "rstest" , "doUnmock" ) => {
462
481
// return self.unmock_method(parser, call_expr, true);
463
482
self . process_mock ( parser, call_expr, false , true , MockMethod :: Unmock , false ) ;
464
483
return Some ( true ) ;
465
484
}
466
485
// rs.resetModules
467
- ( "rs" , "resetModules" ) => {
486
+ ( "rs" , "resetModules" ) | ( "rstest" , "resetModules" ) => {
468
487
return self . reset_modules ( parser, call_expr) ;
469
488
}
489
+ // rs.hoisted
490
+ ( "rs" , "hoisted" ) | ( "rstest" , "hoisted" ) => {
491
+ self . hoisted ( parser, call_expr) ;
492
+ return Some ( true ) ;
493
+ }
470
494
_ => {
471
495
// Not a mock module, continue.
472
496
return None ;
0 commit comments