MCPcopy
hub / github.com/ddworken/hishtory / TestLimitRegistrations

Function TestLimitRegistrations

backend/server/internal/server/server_test.go:459–486  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

457}
458
459func TestLimitRegistrations(t *testing.T) {
460 // Set up
461 s := NewServer(DB, TrackUsageData(false))
462
463 if resp := DB.Exec("DELETE FROM enc_history_entries"); resp.Error != nil {
464 t.Fatalf("failed to delete enc_history_entries: %v", resp.Error)
465 }
466
467 if resp := DB.Exec("DELETE FROM devices"); resp.Error != nil {
468 t.Fatalf("failed to delete devices: %v", resp.Error)
469 }
470 defer testutils.BackupAndRestoreEnv("HISHTORY_MAX_NUM_USERS")()
471 os.Setenv("HISHTORY_MAX_NUM_USERS", "2")
472
473 // Register three devices across two users
474 deviceReq := httptest.NewRequest(http.MethodGet, "/?device_id="+uuid.Must(uuid.NewRandom()).String()+"&user_id="+data.UserId("user1"), nil)
475 s.apiRegisterHandler(httptest.NewRecorder(), deviceReq)
476 deviceReq = httptest.NewRequest(http.MethodGet, "/?device_id="+uuid.Must(uuid.NewRandom()).String()+"&user_id="+data.UserId("user1"), nil)
477 s.apiRegisterHandler(httptest.NewRecorder(), deviceReq)
478 deviceReq = httptest.NewRequest(http.MethodGet, "/?device_id="+uuid.Must(uuid.NewRandom()).String()+"&user_id="+data.UserId("user2"), nil)
479 s.apiRegisterHandler(httptest.NewRecorder(), deviceReq)
480
481 // And this next one should fail since it is a new user
482 defer func() { _ = recover() }()
483 deviceReq = httptest.NewRequest(http.MethodGet, "/?device_id="+uuid.Must(uuid.NewRandom()).String()+"&user_id="+data.UserId("user3"), nil)
484 s.apiRegisterHandler(httptest.NewRecorder(), deviceReq)
485 t.Errorf("expected panic")
486}
487
488func TestCleanDatabaseNoErrors(t *testing.T) {
489 // Init

Callers

nothing calls this directly

Calls 6

apiRegisterHandlerMethod · 0.95
BackupAndRestoreEnvFunction · 0.92
UserIdFunction · 0.92
NewServerFunction · 0.85
TrackUsageDataFunction · 0.85
StringMethod · 0.80

Tested by

no test coverage detected