@@ -286,7 +286,6 @@ suite('CommandLineAutoApprover', () => {
286
286
} ) ;
287
287
288
288
ok ( isAutoApproved ( 'echo hello world' ) ) ;
289
- ok ( ! isAutoApproved ( ' echo hello' ) ) ;
290
289
} ) ;
291
290
292
291
test ( 'should be case-sensitive by default' , ( ) => {
@@ -623,107 +622,85 @@ suite('CommandLineAutoApprover', () => {
623
622
test ( 'should handle environment variable assignments before commands in bash/sh' , ( ) => {
624
623
shell = 'bash' ;
625
624
os = OperatingSystem . Linux ;
626
-
625
+
627
626
setAutoApprove ( {
628
627
"env" : true ,
629
628
"echo" : true
630
629
} ) ;
631
630
632
- // Basic environment variable assignment
633
- ok ( isAutoApproved ( 'FOO=bar env' ) ) ;
634
- ok ( isAutoApproved ( 'FOO=bar echo test' ) ) ;
635
-
636
- // Multiple environment variables
637
- ok ( isAutoApproved ( 'FOO=bar BAZ=qux env' ) ) ;
638
- ok ( isAutoApproved ( 'PATH=/usr/bin HOME=/home/user echo hello' ) ) ;
639
-
640
- // Environment variables with quoted values
641
- ok ( isAutoApproved ( 'MESSAGE="hello world" echo test' ) ) ;
642
- ok ( isAutoApproved ( "GREETING='hello there' echo test" ) ) ;
643
-
644
- // Complex command after environment variables
645
- ok ( isAutoApproved ( 'DEBUG=1 env | grep DEBUG' ) ) ;
631
+ ok ( isAutoApproved ( 'FOO=bar env' ) , 'Basic environment variable assignment' ) ;
632
+ ok ( isAutoApproved ( 'FOO=bar echo test' ) , 'Basic environment variable assignment' ) ;
633
+
634
+ ok ( isAutoApproved ( 'FOO=bar BAZ=qux env' ) , 'Multiple environment variables' ) ;
635
+ ok ( isAutoApproved ( 'PATH=/usr/bin HOME=/home/user echo hello' ) , 'Multiple environment variables' ) ;
636
+
637
+ ok ( isAutoApproved ( 'MESSAGE="hello world" echo test' ) , 'Environment variables with quoted values' ) ;
638
+ ok ( isAutoApproved ( "GREETING='hello there' echo test" ) , 'Environment variables with quoted values' ) ;
646
639
} ) ;
647
640
648
641
test ( 'should not match denied commands even with environment variables' , ( ) => {
649
642
shell = 'bash' ;
650
643
os = OperatingSystem . Linux ;
651
-
644
+
652
645
setAutoApprove ( {
653
646
"env" : true ,
654
647
"rm" : false
655
648
} ) ;
656
649
657
- // Should approve env command with environment variable
658
- ok ( isAutoApproved ( 'FOO=bar env' ) ) ;
659
-
660
- // Should deny rm command even with environment variable
661
- ok ( ! isAutoApproved ( 'FOO=bar rm file.txt' ) ) ;
650
+ ok ( isAutoApproved ( 'FOO=bar env' ) , 'Should approve env command with environment variable' ) ;
651
+ ok ( ! isAutoApproved ( 'FOO=bar rm file.txt' ) , 'Should deny rm command even with environment variable' ) ;
662
652
} ) ;
663
653
664
654
test ( 'should handle environment variables with different shell types' , ( ) => {
665
655
setAutoApprove ( {
666
656
"echo" : true
667
657
} ) ;
668
658
669
- // Bash/sh should handle VAR=value syntax
670
659
shell = 'bash' ;
671
660
os = OperatingSystem . Linux ;
672
661
ok ( isAutoApproved ( 'FOO=bar echo test' ) ) ;
673
662
674
- // PowerShell should keep current behavior (not parse VAR=value as env vars)
675
663
shell = 'powershell' ;
676
664
os = OperatingSystem . Windows ;
677
- ok ( ! isAutoApproved ( 'FOO=bar echo test' ) ) ; // This should not match since FOO=bar is not recognized as env var syntax in PowerShell
665
+ ok ( ! isAutoApproved ( 'FOO=bar echo test' ) , ' This should not match since FOO=bar is not recognized as env var syntax in PowerShell' ) ;
678
666
} ) ;
679
667
680
668
test ( 'should fallback to original command if no environment variables detected' , ( ) => {
681
669
shell = 'bash' ;
682
670
os = OperatingSystem . Linux ;
683
-
671
+
684
672
setAutoApprove ( {
685
673
"echo" : true
686
674
} ) ;
687
675
688
- // Commands without environment variables should work as before
689
676
ok ( isAutoApproved ( 'echo hello' ) ) ;
690
677
ok ( isAutoApproved ( 'echo test' ) ) ;
691
-
692
- // Commands that look like they might have env vars but don't match the pattern
693
- ok ( isAutoApproved ( 'echo FOO=bar' ) ) ; // This is an argument to echo, not an env var assignment
678
+ ok ( isAutoApproved ( 'echo FOO=bar' ) , '// Commands that look like they might have env vars but don\'t match the pattern' ) ;
694
679
} ) ;
695
680
696
681
test ( 'should handle edge cases in environment variable parsing' , ( ) => {
697
682
shell = 'bash' ;
698
683
os = OperatingSystem . Linux ;
699
-
684
+
700
685
setAutoApprove ( {
701
686
"echo" : true
702
687
} ) ;
703
688
704
- // Empty value
705
- ok ( isAutoApproved ( 'FOO= echo test' ) ) ;
706
-
707
- // Underscore in variable name
708
- ok ( isAutoApproved ( 'MY_VAR=test echo hello' ) ) ;
709
-
710
- // Number in variable name (but not at start)
711
- ok ( isAutoApproved ( 'VAR1=test echo hello' ) ) ;
712
-
713
- // Should not match if variable name starts with number (invalid)
714
- ok ( ! isAutoApproved ( '1VAR=test echo hello' ) ) ; // This should not be parsed as env var
689
+ ok ( isAutoApproved ( 'FOO= echo test' ) , 'Empty value' ) ;
690
+ ok ( isAutoApproved ( 'MY_VAR=test echo hello' ) , 'Underscore in variable name' ) ;
691
+ ok ( isAutoApproved ( 'VAR1=test echo hello' ) , 'Number in variable name (but not at start)' ) ;
692
+ ok ( ! isAutoApproved ( '1VAR=test echo hello' ) , 'Should not match if variable name starts with number (invalid)' ) ;
715
693
} ) ;
716
694
717
695
test ( 'should handle unknown shell types by defaulting to bourne shell syntax' , ( ) => {
718
696
shell = 'unknown-shell' ;
719
697
os = OperatingSystem . Linux ;
720
-
698
+
721
699
setAutoApprove ( {
722
700
"echo" : true
723
701
} ) ;
724
702
725
- // Unknown shells should default to bourne shell behavior
726
- ok ( isAutoApproved ( 'FOO=bar echo test' ) ) ;
703
+ ok ( isAutoApproved ( 'FOO=bar echo test' ) , 'Unknown shells should default to bourne shell behavior' ) ;
727
704
} ) ;
728
705
} ) ;
729
706
} ) ;
0 commit comments