@@ -24,6 +24,7 @@ func TestRemoteFlagGroup_ToOptions(t *testing.T) {
2424 fields fields
2525 want flag.RemoteOptions
2626 wantLogs []string
27+ wantErr string
2728 }{
2829 {
2930 name : "happy" ,
@@ -93,6 +94,39 @@ func TestRemoteFlagGroup_ToOptions(t *testing.T) {
9394 `"--token-header" should be used with "--token"` ,
9495 },
9596 },
97+ {
98+ name : "server address without schema" ,
99+ fields : fields {
100+ Server : "localhost:8080" ,
101+ },
102+ wantErr : "server address must use HTTP or HTTPS schema, got 'localhost'" ,
103+ },
104+ {
105+ name : "server address with invalid schema" ,
106+ fields : fields {
107+ Server : "ftp://localhost:8080" ,
108+ },
109+ wantErr : "server address must use HTTP or HTTPS schema, got 'ftp'" ,
110+ },
111+ {
112+ name : "server address with malformed URL" ,
113+ fields : fields {
114+ Server : "http://[::1:8080" ,
115+ },
116+ wantErr : "invalid server address format" ,
117+ },
118+ {
119+ name : "server address with https schema" ,
120+ fields : fields {
121+ Server : "https://localhost:4954" ,
122+ TokenHeader : "Trivy-Token" ,
123+ },
124+ want : flag.RemoteOptions {
125+ CustomHeaders : http.Header {},
126+ ServerAddr : "https://localhost:4954" ,
127+ TokenHeader : "Trivy-Token" ,
128+ },
129+ },
96130 }
97131 for _ , tt := range tests {
98132 t .Run (tt .name , func (t * testing.T ) {
@@ -112,6 +146,12 @@ func TestRemoteFlagGroup_ToOptions(t *testing.T) {
112146 }
113147 flags := flag.Flags {f }
114148 got , err := flags .ToOptions (nil )
149+
150+ if tt .wantErr != "" {
151+ assert .ErrorContains (t , err , tt .wantErr )
152+ return
153+ }
154+
115155 require .NoError (t , err )
116156 assert .Equal (t , tt .want , got .RemoteOptions )
117157
0 commit comments