summaryrefslogtreecommitdiff
path: root/internal/handlers/func_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handlers/func_test.go')
-rw-r--r--internal/handlers/func_test.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/internal/handlers/func_test.go b/internal/handlers/func_test.go
new file mode 100644
index 000000000..9aa8a24de
--- /dev/null
+++ b/internal/handlers/func_test.go
@@ -0,0 +1,51 @@
+package handlers
+
+import (
+ "testing"
+
+ "github.com/sirupsen/logrus"
+ "github.com/sirupsen/logrus/hooks/test"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
+ "github.com/authelia/authelia/v4/internal/middlewares"
+)
+
+func AssertLogEntryMessageAndError(t *testing.T, entry *logrus.Entry, message, err string) {
+ require.NotNil(t, entry)
+
+ assert.Equal(t, message, entry.Message)
+
+ v, ok := entry.Data["error"]
+
+ if err == "" {
+ assert.False(t, ok)
+ assert.Nil(t, v)
+ } else {
+ assert.True(t, ok)
+ require.NotNil(t, v)
+
+ theErr, ok := v.(error)
+ assert.True(t, ok)
+ require.NotNil(t, theErr)
+
+ assert.EqualError(t, theErr, err)
+ }
+}
+
+func MustGetLogLastSeq(t *testing.T, hook *test.Hook, seq int) *logrus.Entry {
+ require.Greater(t, len(hook.Entries), seq)
+
+ return &hook.Entries[len(hook.Entries)-1-seq]
+}
+
+//nolint:unparam
+func getStepTOTP(ctx *middlewares.AutheliaCtx, period int) uint64 {
+ step := ctx.Clock.Now().Unix()
+
+ if period < 0 {
+ period = ctx.Configuration.TOTP.DefaultPeriod
+ }
+
+ return uint64(int(step) / period)
+}