@@ -216,18 +216,20 @@ func TestConfigSSH_FileWriteAndOptionsFlow(t *testing.T) {
216
216
ssh string
217
217
}
218
218
type wantConfig struct {
219
- ssh string
219
+ ssh string
220
+ regexMatch string
220
221
}
221
222
type match struct {
222
223
match , write string
223
224
}
224
225
tests := []struct {
225
- name string
226
- args []string
227
- matches []match
228
- writeConfig writeConfig
229
- wantConfig wantConfig
230
- wantErr bool
226
+ name string
227
+ args []string
228
+ matches []match
229
+ writeConfig writeConfig
230
+ wantConfig wantConfig
231
+ wantErr bool
232
+ echoResponse * echo.Responses
231
233
}{
232
234
{
233
235
name : "Config file is created" ,
@@ -579,6 +581,20 @@ func TestConfigSSH_FileWriteAndOptionsFlow(t *testing.T) {
579
581
},
580
582
wantErr : true ,
581
583
},
584
+ {
585
+ name : "Custom CLI Path" ,
586
+ args : []string {
587
+ "-y" , "--coder-cli-path" , "/foo/bar/coder" ,
588
+ },
589
+ wantErr : false ,
590
+ echoResponse : & echo.Responses {
591
+ Parse : echo .ParseComplete ,
592
+ ProvisionApply : echo .ProvisionApplyWithAgent ("" ),
593
+ },
594
+ wantConfig : wantConfig {
595
+ regexMatch : "ProxyCommand /foo/bar/coder" ,
596
+ },
597
+ },
582
598
}
583
599
for _ , tt := range tests {
584
600
tt := tt
@@ -588,7 +604,7 @@ func TestConfigSSH_FileWriteAndOptionsFlow(t *testing.T) {
588
604
var (
589
605
client = coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
590
606
user = coderdtest .CreateFirstUser (t , client )
591
- version = coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
607
+ version = coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , tt . echoResponse )
592
608
_ = coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
593
609
project = coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
594
610
workspace = coderdtest .CreateWorkspace (t , client , user .OrganizationID , project .ID )
@@ -627,9 +643,14 @@ func TestConfigSSH_FileWriteAndOptionsFlow(t *testing.T) {
627
643
628
644
<- done
629
645
630
- if tt .wantConfig .ssh != "" {
646
+ if tt .wantConfig .ssh != "" || tt . wantConfig . regexMatch != "" {
631
647
got := sshConfigFileRead (t , sshConfigName )
632
- assert .Equal (t , tt .wantConfig .ssh , got )
648
+ if tt .wantConfig .ssh != "" {
649
+ assert .Equal (t , tt .wantConfig .ssh , got )
650
+ }
651
+ if tt .wantConfig .regexMatch != "" {
652
+ assert .Regexp (t , tt .wantConfig .regexMatch , got , "regex match" )
653
+ }
633
654
}
634
655
})
635
656
}
0 commit comments