mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
* feat: Add authentication and personal user endpoint This contribution adds a lot of scaffolding for the database fake and testability of coderd. A new endpoint "/user" is added to return the currently authenticated user to the requester. * Use TestMain to catch leak instead * Add userpassword package * Add WIP * Add user auth * Fix test * Add comments * Fix login response * Fix order * Fix generated code * Update httpapi/httpapi.go Co-authored-by: Bryan <bryan@coder.com> Co-authored-by: Bryan <bryan@coder.com>
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package userpassword_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/coder/coder/coderd/userpassword"
|
|
)
|
|
|
|
func TestUserPassword(t *testing.T) {
|
|
t.Run("Legacy", func(t *testing.T) {
|
|
// Ensures legacy v1 passwords function for v2.
|
|
// This has is manually generated using a print statement from v1 code.
|
|
equal, err := userpassword.Compare("$pbkdf2-sha256$65535$z8c1p1C2ru9EImBP1I+ZNA$pNjE3Yk0oG0PmJ0Je+y7ENOVlSkn/b0BEqqdKsq6Y97wQBq0xT+lD5bWJpyIKJqQICuPZcEaGDKrXJn8+SIHRg", "tomato")
|
|
require.NoError(t, err)
|
|
require.True(t, equal)
|
|
})
|
|
|
|
t.Run("Same", func(t *testing.T) {
|
|
hash, err := userpassword.Hash("password")
|
|
require.NoError(t, err)
|
|
equal, err := userpassword.Compare(hash, "password")
|
|
require.NoError(t, err)
|
|
require.True(t, equal)
|
|
})
|
|
|
|
t.Run("Different", func(t *testing.T) {
|
|
hash, err := userpassword.Hash("password")
|
|
require.NoError(t, err)
|
|
equal, err := userpassword.Compare(hash, "notpassword")
|
|
require.NoError(t, err)
|
|
require.False(t, equal)
|
|
})
|
|
|
|
t.Run("Invalid", func(t *testing.T) {
|
|
equal, err := userpassword.Compare("invalidhash", "password")
|
|
require.False(t, equal)
|
|
require.Error(t, err)
|
|
})
|
|
|
|
t.Run("InvalidParts", func(t *testing.T) {
|
|
equal, err := userpassword.Compare("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", "test")
|
|
require.False(t, equal)
|
|
require.Error(t, err)
|
|
})
|
|
}
|