Files
tinyauth/internal/utils/string_utils_test.go
T
Stavros 1382ab41e7 refactor: rework user context handling throughout tinyauth (#829)
* wip

* fix: fix util imports

* fix: fix bootstrap import issues

* fix: fix cli imports

* fix: context controller

* fix: use new context in user controller

* fix: fix imports and context in proxy controller

* fix: fix oauth and oidc controller imports and context

* feat: finalize context functionality

* refactor: simplify acls checking logic by passing the entire acl struct

* chore: rename get basic auth to encode basic auth for clarity

* fix: fix controller tests

* tests: fix service tests

* tests: fix utils tests

* tests: move to testify for testing in utils

* fix: fix config reference generator

* tests: add tests for context parsing

* tests: add tests for context middleware

* tests: remove error wrapper from context tests

* tests: fix log wrapper tests

* fix: fix verion setting in cd and dockerfiles

* fix: review comments batch 1

* fix: review comments batch 2

* fix: review comments batch 3

* fix: delete totp pending session cookie on totp success

* tests: fix user controller tests

* fix: don't audit login too early

* fix: own comments
2026-05-07 15:41:07 +03:00

59 lines
1.6 KiB
Go

package utils_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/tinyauthapp/tinyauth/internal/utils"
)
func TestCapitalize(t *testing.T) {
// Test empty string
assert.Equal(t, "", utils.Capitalize(""))
// Test single character
assert.Equal(t, "A", utils.Capitalize("a"))
// Test multiple characters
assert.Equal(t, "Hello", utils.Capitalize("hello"))
// Test already capitalized
assert.Equal(t, "World", utils.Capitalize("World"))
// Test non-alphabetic first character
assert.Equal(t, "1number", utils.Capitalize("1number"))
// Test Unicode characters
assert.Equal(t, "Γειά", utils.Capitalize("γειά"))
assert.Equal(t, "Привет", utils.Capitalize("привет"))
}
func TestCoalesceToString(t *testing.T) {
// Test with []any containing strings
assert.Equal(t, "a,b,c", utils.CoalesceToString([]any{"a", "b", "c"}))
// Test with []any containing mixed types
assert.Equal(t, "a,c", utils.CoalesceToString([]any{"a", 1, "c", true}))
// Test with []any containing no strings
assert.Equal(t, "", utils.CoalesceToString([]any{1, 2, 3}))
// Test with string input
assert.Equal(t, "hello", utils.CoalesceToString("hello"))
// Test with non-string, non-[]any input
assert.Equal(t, "", utils.CoalesceToString(123))
// Test with nil input
assert.Equal(t, "", utils.CoalesceToString(nil))
}
func TestCompileUserEmail(t *testing.T) {
// Test with valid email
assert.Equal(t, "user@example.com", utils.CompileUserEmail("user@example.com", "example.com"))
// Test with invalid email
assert.Equal(t, "user@example.com", utils.CompileUserEmail("user", "example.com"))
}