mirror of
https://github.com/lordmathis/lemma.git
synced 2025-11-05 15:44:21 +00:00
Implement admin handlers integration test
This commit is contained in:
@@ -91,23 +91,26 @@ func setupTestHarness(t *testing.T) *testHarness {
|
||||
api.SetupRoutes(r, database, storageSvc, authMiddleware, sessionSvc)
|
||||
})
|
||||
|
||||
// Create test users
|
||||
adminUser, adminToken := createTestUser(t, database, sessionSvc, "admin@test.com", "admin123", models.RoleAdmin)
|
||||
regularUser, regularToken := createTestUser(t, database, sessionSvc, "user@test.com", "user123", models.RoleEditor)
|
||||
|
||||
return &testHarness{
|
||||
h := &testHarness{
|
||||
DB: database,
|
||||
Storage: storageSvc,
|
||||
Router: router,
|
||||
Handler: handler,
|
||||
JWTManager: jwtSvc,
|
||||
SessionSvc: sessionSvc,
|
||||
AdminUser: adminUser,
|
||||
AdminToken: adminToken,
|
||||
RegularUser: regularUser,
|
||||
RegularToken: regularToken,
|
||||
TempDirectory: tempDir,
|
||||
}
|
||||
|
||||
// Create test users
|
||||
adminUser, adminToken := h.createTestUser(t, database, sessionSvc, "admin@test.com", "admin123", models.RoleAdmin)
|
||||
regularUser, regularToken := h.createTestUser(t, database, sessionSvc, "user@test.com", "user123", models.RoleEditor)
|
||||
|
||||
h.AdminUser = adminUser
|
||||
h.AdminToken = adminToken
|
||||
h.RegularUser = regularUser
|
||||
h.RegularToken = regularToken
|
||||
|
||||
return h
|
||||
}
|
||||
|
||||
// teardownTestHarness cleans up the test environment
|
||||
@@ -124,7 +127,7 @@ func (h *testHarness) teardown(t *testing.T) {
|
||||
}
|
||||
|
||||
// createTestUser creates a test user and returns the user and access token
|
||||
func createTestUser(t *testing.T, db db.Database, sessionSvc *auth.SessionService, email, password string, role models.UserRole) (*models.User, string) {
|
||||
func (h *testHarness) createTestUser(t *testing.T, db db.Database, sessionSvc *auth.SessionService, email, password string, role models.UserRole) (*models.User, string) {
|
||||
t.Helper()
|
||||
|
||||
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
||||
@@ -144,6 +147,12 @@ func createTestUser(t *testing.T, db db.Database, sessionSvc *auth.SessionServic
|
||||
t.Fatalf("Failed to create user: %v", err)
|
||||
}
|
||||
|
||||
// Initialize the default workspace directory in storage
|
||||
err = h.Storage.InitializeUserWorkspace(user.ID, user.LastWorkspaceID)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to initialize user workspace: %v", err)
|
||||
}
|
||||
|
||||
session, accessToken, err := sessionSvc.CreateSession(user.ID, string(user.Role))
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create session: %v", err)
|
||||
|
||||
Reference in New Issue
Block a user