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

@@ -0,0 +1,78 @@
package context
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
"github.com/thecodingmachine/gotenberg/internal/pkg/conf"
"github.com/thecodingmachine/gotenberg/test"
)
func TestMustCastFromEchoContext(t *testing.T) {
// should be OK.
ctx := New(
test.DummyEchoContext(),
test.DebugLogger(),
conf.DefaultConfig(),
)
assert.NotPanics(t, func() {
result := MustCastFromEchoContext(ctx)
assert.Equal(t, ctx, result)
})
// should not be OK.
assert.Panics(t, func() {
MustCastFromEchoContext(test.DummyEchoContext())
})
}
func TestLogRequestResult(t *testing.T) {
ctx := New(
test.DummyEchoContext(),
test.DebugLogger(),
conf.DefaultConfig(),
)
// Info log.
err := ctx.LogRequestResult(nil, false)
assert.Nil(t, err)
// Debug log.
err = ctx.LogRequestResult(nil, true)
assert.Nil(t, err)
// Error log.
err = ctx.LogRequestResult(errors.New("foo"), true)
assert.NotNil(t, err)
}
func TestGetters(t *testing.T) {
const resourceDirectoryName string = "foo"
logger := test.DebugLogger()
config := conf.DefaultConfig()
ctx := New(
test.DummyEchoContext(),
logger,
config,
)
// Logger.
assert.Equal(t, logger, ctx.XLogger())
// Config.
assert.Equal(t, config, ctx.Config())
// Context should not have a resource.Resource.
assert.Equal(t, false, ctx.HasResource())
assert.Panics(t, func() {
ctx.MustResource()
})
// Context should have a resource.Resource.
ctx = New(
test.EchoContextMultipart(t),
logger,
config,
)
err := ctx.WithResource(resourceDirectoryName)
assert.Nil(t, err)
assert.Equal(t, true, ctx.HasResource())
assert.NotPanics(t, func() {
r := ctx.MustResource()
err = r.Close()
assert.Nil(t, err)
})
}