Skip to main content
Glama

MCPJungle mcp gateway

by mcpjungle
Mozilla Public License 2.0
638
  • Apple
user_test.go•4.47 kB
package user import ( "testing" "github.com/mcpjungle/mcpjungle/pkg/testhelpers" "github.com/mcpjungle/mcpjungle/pkg/types" ) func TestNewUserService(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) testhelpers.AssertNotNil(t, svc) testhelpers.AssertEqual(t, setup.DB, svc.db) } func TestCreateUser(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) username := "testuser2" user, err := svc.CreateUser(username) testhelpers.AssertNoError(t, err) testhelpers.AssertNotNil(t, user) // Verify user properties testhelpers.AssertEqual(t, username, user.Username) testhelpers.AssertEqual(t, types.UserRoleUser, user.Role) if user.AccessToken == "" { t.Error("Expected access token to be generated") } } func TestCreateUserWithExistingUsername(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) username := "testuser2" // Create first user user1, _ := svc.CreateUser(username) testhelpers.AssertNotNil(t, user1) // Try to create another user with same username user2, err := svc.CreateUser(username) testhelpers.AssertError(t, err) if user2 != nil { t.Error("Expected second user creation to fail") } } func TestCreateAdminUser(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) user, err := svc.CreateAdminUser() testhelpers.AssertNoError(t, err) testhelpers.AssertNotNil(t, user) // Verify admin user properties testhelpers.AssertEqual(t, "admin", user.Username) testhelpers.AssertEqual(t, types.UserRoleAdmin, user.Role) if user.AccessToken == "" { t.Error("Expected access token to be generated") } } func TestGetUserByAccessToken(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) // Create a test user first username := "testuser2" user, _ := svc.CreateUser(username) // Test getting user by valid token retrievedUser, _ := svc.GetUserByAccessToken(user.AccessToken) testhelpers.AssertNotNil(t, retrievedUser) testhelpers.AssertEqual(t, username, retrievedUser.Username) testhelpers.AssertEqual(t, user.AccessToken, retrievedUser.AccessToken) // Test getting user by invalid token _, err := svc.GetUserByAccessToken("invalid-token") testhelpers.AssertError(t, err) } func TestListUsers(t *testing.T) { setup := testhelpers.SetupTestDB(t) defer setup.Cleanup() svc := NewUserService(setup.DB) // Initially should be empty users, err := svc.ListUsers() testhelpers.AssertNoError(t, err) testhelpers.AssertEqual(t, 0, len(users)) // Create some users _, _ = svc.CreateUser("user1") _, _ = svc.CreateUser("user2") // Now should have 2 users users, _ = svc.ListUsers() testhelpers.AssertEqual(t, 2, len(users)) // Verify all users are present usernames := make(map[string]bool) for _, user := range users { usernames[user.Username] = true } expectedUsernames := []string{"user1", "user2"} for _, expected := range expectedUsernames { if !usernames[expected] { t.Errorf("Expected user %s to be in list", expected) } } } func TestDeleteUser(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) // Create a test user username := "testuser2" user, _ := svc.CreateUser(username) // Verify user exists _, err := svc.GetUserByAccessToken(user.AccessToken) testhelpers.AssertNoError(t, err) // Delete the user err = svc.DeleteUser(username) testhelpers.AssertNoError(t, err) // Verify user was deleted _, err = svc.GetUserByAccessToken(user.AccessToken) testhelpers.AssertError(t, err) } func TestDeleteUserNotFound(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) // Try to delete non-existent user err := svc.DeleteUser("nonexistent") testhelpers.AssertError(t, err) } func TestDeleteAdminUser(t *testing.T) { setup, _ := testhelpers.SetupUserTest(t) defer setup.Cleanup() svc := NewUserService(setup.DB) // Create admin user admin, _ := svc.CreateAdminUser() // Try to delete admin user (should fail) err := svc.DeleteUser("admin") testhelpers.AssertError(t, err) // Verify admin user still exists retrievedUser, _ := svc.GetUserByAccessToken(admin.AccessToken) testhelpers.AssertEqual(t, "admin", retrievedUser.Username) }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mcpjungle/MCPJungle'

If you have feedback or need assistance with the MCP directory API, please join our Discord server