diff --git a/internal/server/activeuser_test.go b/internal/server/activeuser_test.go index 8505e4c..3abe934 100644 --- a/internal/server/activeuser_test.go +++ b/internal/server/activeuser_test.go @@ -27,7 +27,7 @@ func getSeshConfig(unordered bool) *mux.SessionConfig { func TestActiveUser_Bypass(t *testing.T) { manager, err := usermanager.MakeLocalManager(MOCK_DB_NAME) if err != nil { - t.Error("failed to make local manager", err) + t.Fatal("failed to make local manager", err) } panel := MakeUserPanel(manager) UID, _ := base64.StdEncoding.DecodeString("u97xvcc5YoQA8obCyt9q/w==") @@ -35,92 +35,89 @@ func TestActiveUser_Bypass(t *testing.T) { var sesh0 *mux.Session var existing bool var sesh1 *mux.Session - t.Run("get first session", func(t *testing.T) { - sesh0, existing, err = user.GetSession(0, getSeshConfig(false)) - if err != nil { - t.Error(err) - } - if existing { - t.Error("first session returned as existing") - } - if sesh0 == nil { - t.Error("no session returned") - } - }) - t.Run("get first session again", func(t *testing.T) { - seshx, existing, err := user.GetSession(0, &mux.SessionConfig{}) - if err != nil { - t.Error(err) - } - if !existing { - t.Error("first session get again returned as not existing") - } - if seshx == nil { - t.Error("no session returned") - } - if seshx != sesh0 { - t.Error("returned a different instance") - } - }) - t.Run("get second session", func(t *testing.T) { - sesh1, existing, err = user.GetSession(1, getSeshConfig(false)) - if err != nil { - t.Error(err) - } - if existing { - t.Error("second session returned as existing") - } - if sesh0 == nil { - t.Error("no session returned") - } - }) - t.Run("number of sessions", func(t *testing.T) { - if user.NumSession() != 2 { - t.Error("number of session is not 2") - } - }) - t.Run("delete a session", func(t *testing.T) { - user.CloseSession(0, "") - if user.NumSession() != 1 { - t.Error("number of session is not 1 after deleting one") - } - if !sesh0.IsClosed() { - t.Error("session not closed after deletion") - } - }) - t.Run("close all sessions", func(t *testing.T) { - user.closeAllSessions("") - if !sesh1.IsClosed() { - t.Error("session not closed after user termination") - } - }) - t.Run("get session again after termination", func(t *testing.T) { - seshx, existing, err := user.GetSession(0, getSeshConfig(false)) - if err != nil { - t.Error(err) - } - if existing { - t.Error("session returned as existing") - } - if seshx == nil { - t.Error("no session returned") - } - if seshx == sesh0 || seshx == sesh1 { - t.Error("get session after termination returned the same instance") - } - }) - t.Run("delete last session", func(t *testing.T) { - user.CloseSession(0, "") - if panel.isActive(user.arrUID[:]) { - t.Error("user still active after last session deleted") - } - }) + + // get first session + sesh0, existing, err = user.GetSession(0, getSeshConfig(false)) + if err != nil { + t.Fatal(err) + } + if existing { + t.Fatal("get first session: first session returned as existing") + } + if sesh0 == nil { + t.Fatal("get first session: no session returned") + } + + // get first session again + seshx, existing, err := user.GetSession(0, &mux.SessionConfig{}) + if err != nil { + t.Fatal(err) + } + if !existing { + t.Fatal("get first session again: first session get again returned as not existing") + } + if seshx == nil { + t.Fatal("get first session again: no session returned") + } + if seshx != sesh0 { + t.Fatal("returned a different instance") + } + + // get second session + sesh1, existing, err = user.GetSession(1, getSeshConfig(false)) + if err != nil { + t.Fatal(err) + } + if existing { + t.Fatal("get second session: second session returned as existing") + } + if sesh1 == nil { + t.Fatal("get second session: no session returned") + } + + if user.NumSession() != 2 { + t.Fatal("number of session is not 2") + } + + user.CloseSession(0, "") + if user.NumSession() != 1 { + t.Fatal("number of session is not 1 after deleting one") + } + if !sesh0.IsClosed() { + t.Fatal("session not closed after deletion") + } + + user.closeAllSessions("") + if !sesh1.IsClosed() { + t.Fatal("session not closed after user termination") + } + + // get session again after termination + seshy, existing, err := user.GetSession(0, getSeshConfig(false)) + if err != nil { + t.Fatal(err) + } + if existing { + t.Fatal("get session again after termination: session returned as existing") + } + if seshy == nil { + t.Fatal("get session again after termination: no session returned") + } + if seshy == sesh0 || seshy == sesh1 { + t.Fatal("get session after termination returned the same instance") + } + + user.CloseSession(0, "") + if panel.isActive(user.arrUID[:]) { + t.Fatal("user still active after last session deleted") + } + err = manager.Close() if err != nil { - t.Error("failed to close localmanager", err) + t.Fatal("failed to close localmanager", err) } err = os.Remove(MOCK_DB_NAME) if err != nil { - t.Error("failed to delete mockdb", err) + t.Fatal("failed to delete mockdb", err) } }