refactoring tests util methods + adding context tests

This commit is contained in:
Julien Neuhart
2019-07-24 14:56:12 +02:00
parent 2be9ae7868
commit 554474776c
23 changed files with 295 additions and 234 deletions

View File

@@ -32,7 +32,9 @@ type Config struct {
logLevel xlog.Level
}
func defaultConfig() Config {
// DefaultConfig returns the default
// configuration.
func DefaultConfig() Config {
return Config{
maximumWaitTimeout: 30.0,
maximumWaitDelay: 10.0,
@@ -53,7 +55,7 @@ to environment variables.
func FromEnv() (Config, error) {
const op string = "conf.FromEnv"
resolver := func() (Config, error) {
c := defaultConfig()
c := DefaultConfig()
maximumWaitTimeout, err := xassert.Float64FromEnv(
maximumWaitTimeoutEnvVar,
c.maximumWaitTimeout,

View File

@@ -6,7 +6,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/thecodingmachine/gotenberg/internal/pkg/xlog"
"github.com/thecodingmachine/gotenberg/test/internalpkg/xerrortest"
"github.com/thecodingmachine/gotenberg/test"
)
func TestEmptyFromEnv(t *testing.T) {
@@ -17,7 +17,7 @@ func TestEmptyFromEnv(t *testing.T) {
)
// no environment variables set,
// values should be equal to default config.
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
assert.Nil(t, err)
assert.Equal(t, expected, result)
@@ -31,7 +31,7 @@ func TestMaximumWaitTimeoutFromEnv(t *testing.T) {
)
// MAXIMUM_WAIT_TIMEOUT correctly set.
os.Setenv(maximumWaitTimeoutEnvVar, "10.0")
expected = defaultConfig()
expected = DefaultConfig()
expected.maximumWaitTimeout = 10.0
result, err = FromEnv()
assert.Nil(t, err)
@@ -39,16 +39,16 @@ func TestMaximumWaitTimeoutFromEnv(t *testing.T) {
os.Unsetenv(maximumWaitTimeoutEnvVar)
// MAXIMUM_WAIT_TIMEOUT wrongly set.
os.Setenv(maximumWaitTimeoutEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(maximumWaitTimeoutEnvVar)
// MAXIMUM_WAIT_TIMEOUT < 0.
os.Setenv(maximumWaitTimeoutEnvVar, "-1.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(maximumWaitTimeoutEnvVar)
}
@@ -61,7 +61,7 @@ func TestMaximumWaitDelayFromEnv(t *testing.T) {
)
// MAXIMUM_WAIT_DELAY correctly set.
os.Setenv(maximumWaitDelayEnvVar, "10.0")
expected = defaultConfig()
expected = DefaultConfig()
expected.maximumWaitDelay = 10.0
result, err = FromEnv()
assert.Nil(t, err)
@@ -69,16 +69,16 @@ func TestMaximumWaitDelayFromEnv(t *testing.T) {
os.Unsetenv(maximumWaitDelayEnvVar)
// MAXIMUM_WAIT_DELAY wrongly set.
os.Setenv(maximumWaitDelayEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(maximumWaitDelayEnvVar)
// MAXIMUM_WAIT_DELAY < 0.
os.Setenv(maximumWaitDelayEnvVar, "-1.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(maximumWaitDelayEnvVar)
}
@@ -91,7 +91,7 @@ func TestMaximumWebhookURLTimeoutFromEnv(t *testing.T) {
)
// MAXIMUM_WEBHOOK_URL_TIMEOUT correctly set.
os.Setenv(maximumWebhookURLTimeoutEnvVar, "10.0")
expected = defaultConfig()
expected = DefaultConfig()
expected.maximumWebhookURLTimeout = 10.0
result, err = FromEnv()
assert.Nil(t, err)
@@ -99,16 +99,16 @@ func TestMaximumWebhookURLTimeoutFromEnv(t *testing.T) {
os.Unsetenv(maximumWebhookURLTimeoutEnvVar)
// MAXIMUM_WEBHOOK_URL_TIMEOUT wrongly set.
os.Setenv(maximumWebhookURLTimeoutEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(maximumWebhookURLTimeoutEnvVar)
// MAXIMUM_WEBHOOK_URL_TIMEOUT < 0.
os.Setenv(maximumWebhookURLTimeoutEnvVar, "-1.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(maximumWebhookURLTimeoutEnvVar)
}
@@ -121,7 +121,7 @@ func TestDefaultWaitTimeoutFromEnv(t *testing.T) {
)
// DEFAULT_WAIT_TIMEOUT correctly set.
os.Setenv(defaultWaitTimeoutEnvVar, "10.0")
expected = defaultConfig()
expected = DefaultConfig()
expected.defaultWaitTimeout = 10.0
result, err = FromEnv()
assert.Nil(t, err)
@@ -129,23 +129,23 @@ func TestDefaultWaitTimeoutFromEnv(t *testing.T) {
os.Unsetenv(defaultWaitTimeoutEnvVar)
// DEFAULT_WAIT_TIMEOUT wrongly set.
os.Setenv(defaultWaitTimeoutEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultWaitTimeoutEnvVar)
// DEFAULT_WAIT_TIMEOUT < 0.
os.Setenv(defaultWaitTimeoutEnvVar, "-1.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultWaitTimeoutEnvVar)
// DEFAULT_WAIT_TIMEOUT > MAXIMUM_WAIT_TIMEOUT.
os.Setenv(defaultWaitTimeoutEnvVar, "40.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultWaitTimeoutEnvVar)
}
@@ -158,7 +158,7 @@ func TestDefaultWebhookURLTimeoutFromEnv(t *testing.T) {
)
// DEFAULT_WEBHOOK_URL_TIMEOUT correctly set.
os.Setenv(defaultWebhookURLTimeoutEnvVar, "10.0")
expected = defaultConfig()
expected = DefaultConfig()
expected.defaultWebhookURLTimeout = 10.0
result, err = FromEnv()
assert.Nil(t, err)
@@ -166,23 +166,23 @@ func TestDefaultWebhookURLTimeoutFromEnv(t *testing.T) {
os.Unsetenv(defaultWebhookURLTimeoutEnvVar)
// DEFAULT_WEBHOOK_URL_TIMEOUT wrongly set.
os.Setenv(defaultWebhookURLTimeoutEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultWebhookURLTimeoutEnvVar)
// DEFAULT_WEBHOOK_URL_TIMEOUT < 0.
os.Setenv(defaultWebhookURLTimeoutEnvVar, "-1.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultWebhookURLTimeoutEnvVar)
// DEFAULT_WEBHOOK_URL_TIMEOUT > MAXIMUM_WEBHOOK_URL_TIMEOUT.
os.Setenv(defaultWebhookURLTimeoutEnvVar, "40.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultWebhookURLTimeoutEnvVar)
}
@@ -195,7 +195,7 @@ func TestDefaultListenPortFromEnv(t *testing.T) {
)
// DEFAULT_LISTEN_PORT correctly set.
os.Setenv(defaultListenPortEnvVar, "80")
expected = defaultConfig()
expected = DefaultConfig()
expected.defaultListenPort = 80
result, err = FromEnv()
assert.Nil(t, err)
@@ -203,23 +203,23 @@ func TestDefaultListenPortFromEnv(t *testing.T) {
os.Unsetenv(defaultListenPortEnvVar)
// DEFAULT_LISTEN_PORT wrongly set.
os.Setenv(defaultListenPortEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultListenPortEnvVar)
// DEFAULT_LISTEN_PORT < 0.
os.Setenv(defaultListenPortEnvVar, "-1.0")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultListenPortEnvVar)
// DEFAULT_LISTEN_PORT > 65535.
os.Setenv(defaultListenPortEnvVar, "65536")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(defaultListenPortEnvVar)
}
@@ -232,14 +232,14 @@ func TestDisableGoogleChromeFromEnv(t *testing.T) {
)
// DISABLE_GOOGLE_CHROME correctly set.
os.Setenv(disableGoogleChromeEnvVar, "1")
expected = defaultConfig()
expected = DefaultConfig()
expected.disableGoogleChrome = true
result, err = FromEnv()
assert.Nil(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(disableGoogleChromeEnvVar)
os.Setenv(disableGoogleChromeEnvVar, "0")
expected = defaultConfig()
expected = DefaultConfig()
expected.disableGoogleChrome = false
result, err = FromEnv()
assert.Nil(t, err)
@@ -247,9 +247,9 @@ func TestDisableGoogleChromeFromEnv(t *testing.T) {
os.Unsetenv(disableGoogleChromeEnvVar)
// DISABLE_GOOGLE_CHROME wrongly set.
os.Setenv(disableGoogleChromeEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(disableGoogleChromeEnvVar)
}
@@ -262,14 +262,14 @@ func TestDisableUnoconvFromEnv(t *testing.T) {
)
// DISABLE_UNOCONV correctly set.
os.Setenv(disableUnoconvEnvVar, "1")
expected = defaultConfig()
expected = DefaultConfig()
expected.disableUnoconv = true
result, err = FromEnv()
assert.Nil(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(disableUnoconvEnvVar)
os.Setenv(disableUnoconvEnvVar, "0")
expected = defaultConfig()
expected = DefaultConfig()
expected.disableUnoconv = false
result, err = FromEnv()
assert.Nil(t, err)
@@ -277,9 +277,9 @@ func TestDisableUnoconvFromEnv(t *testing.T) {
os.Unsetenv(disableUnoconvEnvVar)
// DISABLE_UNOCONV wrongly set.
os.Setenv(disableUnoconvEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(disableUnoconvEnvVar)
}
@@ -292,20 +292,20 @@ func TestLogLevelFromEnv(t *testing.T) {
)
// LOG_LEVEL correctly set.
os.Setenv(logLevelEnvVar, "DEBUG")
expected = defaultConfig()
expected = DefaultConfig()
expected.logLevel = xlog.DebugLevel
result, err = FromEnv()
assert.Nil(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(logLevelEnvVar)
os.Setenv(logLevelEnvVar, "INFO")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
assert.Nil(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(logLevelEnvVar)
os.Setenv(logLevelEnvVar, "ERROR")
expected = defaultConfig()
expected = DefaultConfig()
expected.logLevel = xlog.ErrorLevel
result, err = FromEnv()
assert.Nil(t, err)
@@ -313,15 +313,15 @@ func TestLogLevelFromEnv(t *testing.T) {
os.Unsetenv(logLevelEnvVar)
// LOG_LEVEL wrongly set.
os.Setenv(logLevelEnvVar, "foo")
expected = defaultConfig()
expected = DefaultConfig()
result, err = FromEnv()
xerrortest.AssertError(t, err)
test.AssertError(t, err)
assert.Equal(t, expected, result)
os.Unsetenv(logLevelEnvVar)
}
func TestGetters(t *testing.T) {
result := defaultConfig()
result := DefaultConfig()
assert.Equal(t, result.maximumWaitTimeout, result.MaximumWaitTimeout())
assert.Equal(t, result.maximumWaitDelay, result.MaximumWaitDelay())
assert.Equal(t, result.maximumWebhookURLTimeout, result.MaximumWebhookURLTimeout())