Updates configuration tests for bugsnag and newrelic params
							parent
							
								
									43a50b5e82
								
							
						
					
					
						commit
						cd057fd120
					
				|  | @ -186,22 +186,28 @@ type Parameters map[string]string | ||||||
| // Reporting defines error reporting methods.
 | // Reporting defines error reporting methods.
 | ||||||
| type Reporting struct { | type Reporting struct { | ||||||
| 	// Bugsnag configures error reporting for Bugsnag (bugsnag.com).
 | 	// Bugsnag configures error reporting for Bugsnag (bugsnag.com).
 | ||||||
| 	Bugsnag struct { | 	Bugsnag BugsnagReporting `yaml:"bugsnag"` | ||||||
| 		// APIKey is the Bugsnag api key.
 |  | ||||||
| 		APIKey string `yaml:"apikey"` |  | ||||||
| 		// ReleaseStage tracks where the registry is deployed.
 |  | ||||||
| 		// Examples: production, staging, development
 |  | ||||||
| 		ReleaseStage string `yaml:"releasestage"` |  | ||||||
| 		// Endpoint is used for specifying an enterprise Bugsnag endpoint.
 |  | ||||||
| 		Endpoint string `yaml:"endpoint"` |  | ||||||
| 	} `yaml:"bugsnag"` |  | ||||||
| 	// NewRelic configures error reporting for NewRelic (newrelic.com)
 | 	// NewRelic configures error reporting for NewRelic (newrelic.com)
 | ||||||
| 	NewRelic struct { | 	NewRelic NewRelicReporting `yaml:"newrelic"` | ||||||
| 		// LicenseKey is the NewRelic user license key
 | } | ||||||
| 		LicenseKey string `yaml:"licensekey"` | 
 | ||||||
| 		// AppName is the component name of the registry in NewRelic
 | // BugsnagReporting configures error reporting for Bugsnag (bugsnag.com).
 | ||||||
| 		Name string `yaml:"name"` | type BugsnagReporting struct { | ||||||
| 	} `yaml:"newrelic"` | 	// APIKey is the Bugsnag api key.
 | ||||||
|  | 	APIKey string `yaml:"apikey"` | ||||||
|  | 	// ReleaseStage tracks where the registry is deployed.
 | ||||||
|  | 	// Examples: production, staging, development
 | ||||||
|  | 	ReleaseStage string `yaml:"releasestage"` | ||||||
|  | 	// Endpoint is used for specifying an enterprise Bugsnag endpoint.
 | ||||||
|  | 	Endpoint string `yaml:"endpoint"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NewRelicReporting configures error reporting for NewRelic (newrelic.com)
 | ||||||
|  | type NewRelicReporting struct { | ||||||
|  | 	// LicenseKey is the NewRelic user license key
 | ||||||
|  | 	LicenseKey string `yaml:"licensekey"` | ||||||
|  | 	// AppName is the component name of the registry in NewRelic
 | ||||||
|  | 	Name string `yaml:"name"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Parse parses an input configuration yaml document into a Configuration struct
 | // Parse parses an input configuration yaml document into a Configuration struct
 | ||||||
|  |  | ||||||
|  | @ -29,6 +29,11 @@ var configStruct = Configuration{ | ||||||
| 			"port":      "", | 			"port":      "", | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
|  | 	Reporting: Reporting{ | ||||||
|  | 		Bugsnag: BugsnagReporting{ | ||||||
|  | 			APIKey: "BugsnagApiKey", | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // configYamlV0_1 is a Version 0.1 yaml document representing configStruct
 | // configYamlV0_1 is a Version 0.1 yaml document representing configStruct
 | ||||||
|  | @ -46,6 +51,9 @@ storage: | ||||||
|     secretkey: SUPERSECRET |     secretkey: SUPERSECRET | ||||||
|     host: ~ |     host: ~ | ||||||
|     port: ~ |     port: ~ | ||||||
|  | reporting: | ||||||
|  |   bugsnag: | ||||||
|  |     apikey: BugsnagApiKey | ||||||
| ` | ` | ||||||
| 
 | 
 | ||||||
| // inmemoryConfigYamlV0_1 is a Version 0.1 yaml document specifying an inmemory storage driver with
 | // inmemoryConfigYamlV0_1 is a Version 0.1 yaml document specifying an inmemory storage driver with
 | ||||||
|  | @ -88,6 +96,7 @@ func (suite *ConfigSuite) TestParseSimple(c *C) { | ||||||
| // parsed into a Configuration struct with no storage parameters
 | // parsed into a Configuration struct with no storage parameters
 | ||||||
| func (suite *ConfigSuite) TestParseInmemory(c *C) { | func (suite *ConfigSuite) TestParseInmemory(c *C) { | ||||||
| 	suite.expectedConfig.Storage = Storage{"inmemory": Parameters{}} | 	suite.expectedConfig.Storage = Storage{"inmemory": Parameters{}} | ||||||
|  | 	suite.expectedConfig.Reporting = Reporting{} | ||||||
| 
 | 
 | ||||||
| 	config, err := Parse(bytes.NewReader([]byte(inmemoryConfigYamlV0_1))) | 	config, err := Parse(bytes.NewReader([]byte(inmemoryConfigYamlV0_1))) | ||||||
| 	c.Assert(err, IsNil) | 	c.Assert(err, IsNil) | ||||||
|  | @ -171,6 +180,22 @@ func (suite *ConfigSuite) TestParseWithDifferentEnvLoglevel(c *C) { | ||||||
| 	c.Assert(config, DeepEquals, suite.expectedConfig) | 	c.Assert(config, DeepEquals, suite.expectedConfig) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (suite *ConfigSuite) TestParseWithDifferentEnvReporting(c *C) { | ||||||
|  | 	suite.expectedConfig.Reporting.Bugsnag.APIKey = "anotherBugsnagApiKey" | ||||||
|  | 	suite.expectedConfig.Reporting.Bugsnag.Endpoint = "localhost:8080" | ||||||
|  | 	suite.expectedConfig.Reporting.NewRelic.LicenseKey = "NewRelicLicenseKey" | ||||||
|  | 	suite.expectedConfig.Reporting.NewRelic.Name = "some NewRelic NAME" | ||||||
|  | 
 | ||||||
|  | 	os.Setenv("REGISTRY_REPORTING_BUGSNAG_APIKEY", "anotherBugsnagApiKey") | ||||||
|  | 	os.Setenv("REGISTRY_REPORTING_BUGSNAG_ENDPOINT", "localhost:8080") | ||||||
|  | 	os.Setenv("REGISTRY_REPORTING_NEWRELIC_LICENSEKEY", "NewRelicLicenseKey") | ||||||
|  | 	os.Setenv("REGISTRY_REPORTING_NEWRELIC_NAME", "some NewRelic NAME") | ||||||
|  | 
 | ||||||
|  | 	config, err := Parse(bytes.NewReader([]byte(configYamlV0_1))) | ||||||
|  | 	c.Assert(err, IsNil) | ||||||
|  | 	c.Assert(config, DeepEquals, suite.expectedConfig) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // TestParseInvalidVersion validates that the parser will fail to parse a newer configuration
 | // TestParseInvalidVersion validates that the parser will fail to parse a newer configuration
 | ||||||
| // version than the CurrentVersion
 | // version than the CurrentVersion
 | ||||||
| func (suite *ConfigSuite) TestParseInvalidVersion(c *C) { | func (suite *ConfigSuite) TestParseInvalidVersion(c *C) { | ||||||
|  | @ -190,6 +215,10 @@ func copyConfig(config Configuration) *Configuration { | ||||||
| 	for k, v := range config.Storage.Parameters() { | 	for k, v := range config.Storage.Parameters() { | ||||||
| 		configCopy.Storage.setParameter(k, v) | 		configCopy.Storage.setParameter(k, v) | ||||||
| 	} | 	} | ||||||
|  | 	configCopy.Reporting = Reporting{ | ||||||
|  | 		Bugsnag:  BugsnagReporting{config.Reporting.Bugsnag.APIKey, config.Reporting.Bugsnag.ReleaseStage, config.Reporting.Bugsnag.Endpoint}, | ||||||
|  | 		NewRelic: NewRelicReporting{config.Reporting.NewRelic.LicenseKey, config.Reporting.NewRelic.Name}, | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	return configCopy | 	return configCopy | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue