Merge pull request #502 from talam/update_options_parsing
options: update options parsing for better handling of incorrect values
This commit is contained in:
		
						commit
						6ddbb2c572
					
				|  | @ -180,8 +180,8 @@ func (o *Options) Validate() error { | ||||||
| 	for _, u := range o.SkipAuthRegex { | 	for _, u := range o.SkipAuthRegex { | ||||||
| 		CompiledRegex, err := regexp.Compile(u) | 		CompiledRegex, err := regexp.Compile(u) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			msgs = append(msgs, fmt.Sprintf( | 			msgs = append(msgs, fmt.Sprintf("error compiling regex=%q %s", u, err)) | ||||||
| 				"error compiling regex=%q %s", u, err)) | 			continue | ||||||
| 		} | 		} | ||||||
| 		o.CompiledRegex = append(o.CompiledRegex, CompiledRegex) | 		o.CompiledRegex = append(o.CompiledRegex, CompiledRegex) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -95,6 +95,18 @@ func TestProxyURLs(t *testing.T) { | ||||||
| 	assert.Equal(t, expected, o.proxyURLs) | 	assert.Equal(t, expected, o.proxyURLs) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func TestProxyURLsError(t *testing.T) { | ||||||
|  | 	o := testOptions() | ||||||
|  | 	o.Upstreams = append(o.Upstreams, "127.0.0.1:8081") | ||||||
|  | 	err := o.Validate() | ||||||
|  | 	assert.NotEqual(t, nil, err) | ||||||
|  | 
 | ||||||
|  | 	expected := errorMsg([]string{ | ||||||
|  | 		"error parsing upstream: parse 127.0.0.1:8081: " + | ||||||
|  | 			"first path segment in URL cannot contain colon"}) | ||||||
|  | 	assert.Equal(t, expected, err.Error()) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func TestCompiledRegex(t *testing.T) { | func TestCompiledRegex(t *testing.T) { | ||||||
| 	o := testOptions() | 	o := testOptions() | ||||||
| 	regexps := []string{"/foo/.*", "/ba[rz]/quux"} | 	regexps := []string{"/foo/.*", "/ba[rz]/quux"} | ||||||
|  | @ -119,6 +131,15 @@ func TestCompiledRegexError(t *testing.T) { | ||||||
| 		"error compiling regex=\"barquux)\" error parsing regexp: " + | 		"error compiling regex=\"barquux)\" error parsing regexp: " + | ||||||
| 			"unexpected ): `barquux)`"}) | 			"unexpected ): `barquux)`"}) | ||||||
| 	assert.Equal(t, expected, err.Error()) | 	assert.Equal(t, expected, err.Error()) | ||||||
|  | 
 | ||||||
|  | 	o.SkipAuthRegex = []string{"foobaz", "barquux)"} | ||||||
|  | 	err = o.Validate() | ||||||
|  | 	assert.NotEqual(t, nil, err) | ||||||
|  | 
 | ||||||
|  | 	expected = errorMsg([]string{ | ||||||
|  | 		"error compiling regex=\"barquux)\" error parsing regexp: " + | ||||||
|  | 			"unexpected ): `barquux)`"}) | ||||||
|  | 	assert.Equal(t, expected, err.Error()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestDefaultProviderApiSettings(t *testing.T) { | func TestDefaultProviderApiSettings(t *testing.T) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue