mirror of
https://github.com/Dvorinka/excalidraw-full.git
synced 2026-06-03 22:02:57 +00:00
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package workspace
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
)
|
|
|
|
func TestUpsertOAuthSessionCreatesAndReusesIdentity(t *testing.T) {
|
|
store, cleanup := newTestStore(t)
|
|
defer cleanup()
|
|
|
|
profile := OAuthProfile{
|
|
Provider: "github",
|
|
ProviderUserID: "123",
|
|
Email: "octo@example.com",
|
|
Name: "Octo User",
|
|
Username: "octo",
|
|
AvatarURL: "https://example.com/avatar.png",
|
|
EmailVerified: true,
|
|
}
|
|
user, session, token, err := store.UpsertOAuthSession(context.Background(), profile)
|
|
if err != nil {
|
|
t.Fatalf("UpsertOAuthSession() error = %v", err)
|
|
}
|
|
if user.ID == "" || session.ID == "" || token == "" {
|
|
t.Fatalf("missing oauth output user=%#v session=%#v token=%q", user, session, token)
|
|
}
|
|
teams, err := store.ListTeamsForUser(context.Background(), user.ID)
|
|
if err != nil {
|
|
t.Fatalf("ListTeamsForUser() error = %v", err)
|
|
}
|
|
if len(teams) != 1 {
|
|
t.Fatalf("teams len = %d, want 1", len(teams))
|
|
}
|
|
|
|
sameUser, secondSession, secondToken, err := store.UpsertOAuthSession(context.Background(), profile)
|
|
if err != nil {
|
|
t.Fatalf("second UpsertOAuthSession() error = %v", err)
|
|
}
|
|
if sameUser.ID != user.ID {
|
|
t.Fatalf("second oauth user id = %s, want %s", sameUser.ID, user.ID)
|
|
}
|
|
if secondSession.ID == session.ID || secondToken == token {
|
|
t.Fatal("oauth login should create a fresh session")
|
|
}
|
|
}
|