github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/pkg/plugin/cors/setup_test.go (about) 1 package cors 2 3 import ( 4 "testing" 5 6 "github.com/hellofresh/janus/pkg/plugin" 7 "github.com/hellofresh/janus/pkg/proxy" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestConfig(t *testing.T) { 12 var config Config 13 rawConfig := map[string]interface{}{ 14 "domains": []string{"*"}, 15 "methods": []string{"GET"}, 16 "request_headers": []string{"Content-Type", "Authorization"}, 17 "exposed_headers": []string{"Test"}, 18 "options_passthrough": true, 19 } 20 21 err := plugin.Decode(rawConfig, &config) 22 assert.NoError(t, err) 23 24 assert.IsType(t, []string{}, config.AllowedOrigins) 25 assert.Equal(t, []string{"*"}, config.AllowedOrigins) 26 27 assert.IsType(t, []string{}, config.AllowedMethods) 28 assert.Equal(t, []string{"GET"}, config.AllowedMethods) 29 30 assert.IsType(t, []string{}, config.AllowedHeaders) 31 assert.Equal(t, []string{"Content-Type", "Authorization"}, config.AllowedHeaders) 32 33 assert.IsType(t, []string{}, config.ExposedHeaders) 34 assert.Equal(t, []string{"Test"}, config.ExposedHeaders) 35 36 assert.True(t, config.OptionsPassthrough) 37 } 38 39 func TestInvalidConfig(t *testing.T) { 40 var config Config 41 rawConfig := map[string]interface{}{ 42 "domains": "*", 43 } 44 45 err := plugin.Decode(rawConfig, &config) 46 assert.Error(t, err) 47 } 48 49 func TestEmptyPassthrough(t *testing.T) { 50 var config Config 51 rawConfig := map[string]interface{}{ 52 "domains": []string{"*"}, 53 "methods": []string{"GET"}, 54 "request_headers": []string{"Content-Type", "Authorization"}, 55 "exposed_headers": []string{"Test"}, 56 } 57 58 err := plugin.Decode(rawConfig, &config) 59 assert.NoError(t, err) 60 61 assert.False(t, config.OptionsPassthrough) 62 } 63 64 func TestSetup(t *testing.T) { 65 rawConfig := map[string]interface{}{ 66 "domains": []string{"*"}, 67 "methods": []string{"GET"}, 68 "request_headers": []string{"Content-Type", "Authorization"}, 69 "exposed_headers": []string{"Test"}, 70 "options_passthrough": true, 71 } 72 def := proxy.NewRouterDefinition(proxy.NewDefinition()) 73 err := setupCors(def, rawConfig) 74 75 assert.NoError(t, err) 76 assert.Len(t, def.Middleware(), 1) 77 }