diff options
Diffstat (limited to 'backend/auth/session_test.go')
| -rw-r--r-- | backend/auth/session_test.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/backend/auth/session_test.go b/backend/auth/session_test.go new file mode 100644 index 0000000..2a47739 --- /dev/null +++ b/backend/auth/session_test.go @@ -0,0 +1,47 @@ +package auth + +import ( + "testing" +) + +func TestGenerateSessionID(t *testing.T) { + id, err := GenerateSessionID() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + // 32 bytes → 64 hex characters + if len(id) != 64 { + t.Errorf("expected session ID length 64, got %d", len(id)) + } +} + +func TestGenerateSessionID_Unique(t *testing.T) { + id1, err := GenerateSessionID() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + id2, err := GenerateSessionID() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if id1 == id2 { + t.Error("expected unique session IDs, got identical values") + } +} + +func TestHashSessionID(t *testing.T) { + raw := "abc123" + hashed := HashSessionID(raw) + // SHA-256 produces 32 bytes → 64 hex characters + if len(hashed) != 64 { + t.Errorf("expected hash length 64, got %d", len(hashed)) + } + // Same input should produce same hash + if hashed != HashSessionID(raw) { + t.Error("expected deterministic hash") + } + // Different input should produce different hash + if hashed == HashSessionID("different") { + t.Error("expected different hashes for different inputs") + } +} |
