You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.7 KiB
69 lines
1.7 KiB
package auth
|
|
|
|
import "testing"
|
|
|
|
func TestSession(t *testing.T) {
|
|
auther := testAuther{FullName: "Test64"}
|
|
Register(&auther)
|
|
|
|
user, err := auther.Register("Tester1401", "1234", nil)
|
|
if err != nil {
|
|
t.Error("Failed to register test user:", err)
|
|
t.Fail()
|
|
return
|
|
}
|
|
|
|
sessions := []*Session{OpenSession(user), OpenSession(user), OpenSession(user)}
|
|
ids := []string{sessions[0].ID, sessions[1].ID, sessions[2].ID}
|
|
|
|
t.Run("Find", func(t *testing.T) {
|
|
for i, id := range ids {
|
|
found := FindSession(id)
|
|
|
|
if found != sessions[i] {
|
|
t.Errorf("Find(\"%s\") == %+v", id, found)
|
|
t.Fail()
|
|
}
|
|
}
|
|
})
|
|
|
|
t.Run("Auth", func(t *testing.T) {
|
|
for _, id := range ids {
|
|
found := FindSession(id)
|
|
|
|
foundUser, err := FindUser(found.UserID)
|
|
|
|
if foundUser == nil {
|
|
t.Error("User", found.UserID, "not found", err)
|
|
t.Fail()
|
|
}
|
|
|
|
if foundUser != nil && foundUser != user {
|
|
t.Error("User", found.UserID, "is not correct", foundUser)
|
|
t.Fail()
|
|
}
|
|
}
|
|
})
|
|
|
|
t.Run("Close", func(t *testing.T) {
|
|
CloseSession(ids[2])
|
|
|
|
if FindSession(ids[0]) == nil || FindSession(ids[1]) == nil || FindSession(ids[2]) != nil {
|
|
t.Errorf("Find(\"%s\") == %+v", ids[0], FindSession(ids[0]))
|
|
t.Errorf("Find(\"%s\") == %+v", ids[1], FindSession(ids[1]))
|
|
t.Errorf("Find(\"%s\") == %+v", ids[2], FindSession(ids[2]))
|
|
t.Fail()
|
|
}
|
|
})
|
|
|
|
t.Run("Clear", func(t *testing.T) {
|
|
ClearSessions(user)
|
|
|
|
if FindSession(ids[0]) != nil || FindSession(ids[1]) != nil || FindSession(ids[2]) != nil {
|
|
t.Errorf("Find(\"%s\") == %+v", ids[0], FindSession(ids[0]))
|
|
t.Errorf("Find(\"%s\") == %+v", ids[1], FindSession(ids[1]))
|
|
t.Errorf("Find(\"%s\") == %+v", ids[2], FindSession(ids[2]))
|
|
t.Fail()
|
|
}
|
|
})
|
|
}
|