update state history session type
All checks were successful
Release and Deploy / build (push) Successful in 2m25s
Release and Deploy / deploy (push) Successful in 26s

This commit is contained in:
Fran Jurmanović
2025-09-15 19:11:25 +02:00
parent 4ab94de529
commit 760412d7db
13 changed files with 386 additions and 205 deletions

View File

@@ -46,7 +46,7 @@ func TestStateHistoryController_GetAll_Success(t *testing.T) {
// Insert test data
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
err := repo.Insert(helper.CreateContext(), &history)
tests.AssertNoError(t, err)
@@ -78,7 +78,7 @@ func TestStateHistoryController_GetAll_Success(t *testing.T) {
err = json.Unmarshal(body, &result)
tests.AssertNoError(t, err)
tests.AssertEqual(t, 1, len(result))
tests.AssertEqual(t, "Practice", result[0].Session)
tests.AssertEqual(t, model.SessionPractice, result[0].Session)
tests.AssertEqual(t, 5, result[0].PlayerCount)
}
@@ -107,8 +107,8 @@ func TestStateHistoryController_GetAll_WithSessionFilter(t *testing.T) {
// Insert test data with different sessions
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
practiceHistory := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
raceHistory := testData.CreateStateHistory("Race", "spa", 10, uuid.New())
practiceHistory := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
raceHistory := testData.CreateStateHistory(model.SessionRace, "spa", 10, uuid.New())
err := repo.Insert(helper.CreateContext(), &practiceHistory)
tests.AssertNoError(t, err)
@@ -124,7 +124,7 @@ func TestStateHistoryController_GetAll_WithSessionFilter(t *testing.T) {
controller.NewStateHistoryController(stateHistoryService, routeGroups, GetTestAuthMiddleware(membershipService, inMemCache))
// Create request with session filter and authentication
req := httptest.NewRequest("GET", fmt.Sprintf("/api/v1/state-history?id=%s&session=Race", helper.TestData.ServerID.String()), nil)
req := httptest.NewRequest("GET", fmt.Sprintf("/api/v1/state-history?id=%s&session=R", helper.TestData.ServerID.String()), nil)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+tests.MustGenerateTestToken())
@@ -143,7 +143,7 @@ func TestStateHistoryController_GetAll_WithSessionFilter(t *testing.T) {
err = json.Unmarshal(body, &result)
tests.AssertNoError(t, err)
tests.AssertEqual(t, 1, len(result))
tests.AssertEqual(t, "Race", result[0].Session)
tests.AssertEqual(t, model.SessionRace, result[0].Session)
tests.AssertEqual(t, 10, result[0].PlayerCount)
}
@@ -220,7 +220,7 @@ func TestStateHistoryController_GetStatistics_Success(t *testing.T) {
// Create entries with varying player counts
playerCounts := []int{5, 10, 15, 20, 25}
entries := testData.CreateMultipleEntries("Race", "spa", playerCounts)
entries := testData.CreateMultipleEntries(model.SessionRace, "spa", playerCounts)
for _, entry := range entries {
err := repo.Insert(helper.CreateContext(), &entry)
@@ -475,7 +475,7 @@ func TestStateHistoryController_ContentType(t *testing.T) {
// Insert test data
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
err := repo.Insert(helper.CreateContext(), &history)
tests.AssertNoError(t, err)
@@ -551,7 +551,7 @@ func TestStateHistoryController_ResponseStructure(t *testing.T) {
// Insert test data
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
err := repo.Insert(helper.CreateContext(), &history)
tests.AssertNoError(t, err)

View File

@@ -30,7 +30,7 @@ func TestStateHistoryRepository_Insert_Success(t *testing.T) {
// Create test data
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
// Test Insert
err := repo.Insert(ctx, &history)
@@ -65,7 +65,7 @@ func TestStateHistoryRepository_GetAll_Success(t *testing.T) {
// Insert multiple entries
playerCounts := []int{0, 5, 10, 15, 10, 5, 0}
entries := testData.CreateMultipleEntries("Practice", "spa", playerCounts)
entries := testData.CreateMultipleEntries(model.SessionPractice, "spa", playerCounts)
for _, entry := range entries {
err := repo.Insert(ctx, &entry)
@@ -101,8 +101,8 @@ func TestStateHistoryRepository_GetAll_WithFilter(t *testing.T) {
// Create test data with different sessions
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
practiceHistory := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
raceHistory := testData.CreateStateHistory("Race", "spa", 15, uuid.New())
practiceHistory := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
raceHistory := testData.CreateStateHistory(model.SessionRace, "spa", 15, uuid.New())
// Insert both
err := repo.Insert(ctx, &practiceHistory)
@@ -111,13 +111,13 @@ func TestStateHistoryRepository_GetAll_WithFilter(t *testing.T) {
tests.AssertNoError(t, err)
// Test GetAll with session filter
filter := testdata.CreateFilterWithSession(helper.TestData.ServerID.String(), "Race")
filter := testdata.CreateFilterWithSession(helper.TestData.ServerID.String(), model.SessionRace)
result, err := repo.GetAll(ctx, filter)
tests.AssertNoError(t, err)
tests.AssertNotNil(t, result)
tests.AssertEqual(t, 1, len(*result))
tests.AssertEqual(t, "Race", (*result)[0].Session)
tests.AssertEqual(t, model.SessionRace, (*result)[0].Session)
tests.AssertEqual(t, 15, (*result)[0].PlayerCount)
}
@@ -145,8 +145,8 @@ func TestStateHistoryRepository_GetLastSessionID_Success(t *testing.T) {
sessionID1 := uuid.New()
sessionID2 := uuid.New()
history1 := testData.CreateStateHistory("Practice", "spa", 5, sessionID1)
history2 := testData.CreateStateHistory("Race", "spa", 10, sessionID2)
history1 := testData.CreateStateHistory(model.SessionPractice, "spa", 5, sessionID1)
history2 := testData.CreateStateHistory(model.SessionRace, "spa", 10, sessionID2)
// Insert with a small delay to ensure ordering
err := repo.Insert(ctx, &history1)
@@ -217,7 +217,7 @@ func TestStateHistoryRepository_GetSummaryStats_Success(t *testing.T) {
sessionID2 := uuid.New()
// Practice session: 5, 10, 15 players
practiceEntries := testData.CreateMultipleEntries("Practice", "spa", []int{5, 10, 15})
practiceEntries := testData.CreateMultipleEntries(model.SessionPractice, "spa", []int{5, 10, 15})
for i := range practiceEntries {
practiceEntries[i].SessionID = sessionID1
err := repo.Insert(ctx, &practiceEntries[i])
@@ -225,7 +225,7 @@ func TestStateHistoryRepository_GetSummaryStats_Success(t *testing.T) {
}
// Race session: 20, 25, 30 players
raceEntries := testData.CreateMultipleEntries("Race", "spa", []int{20, 25, 30})
raceEntries := testData.CreateMultipleEntries(model.SessionRace, "spa", []int{20, 25, 30})
for i := range raceEntries {
raceEntries[i].SessionID = sessionID2
err := repo.Insert(ctx, &raceEntries[i])
@@ -305,7 +305,7 @@ func TestStateHistoryRepository_GetTotalPlaytime_Success(t *testing.T) {
{
ID: uuid.New(),
ServerID: helper.TestData.ServerID,
Session: "Practice",
Session: model.SessionPractice,
Track: "spa",
PlayerCount: 5,
DateCreated: baseTime,
@@ -316,7 +316,7 @@ func TestStateHistoryRepository_GetTotalPlaytime_Success(t *testing.T) {
{
ID: uuid.New(),
ServerID: helper.TestData.ServerID,
Session: "Practice",
Session: model.SessionPractice,
Track: "spa",
PlayerCount: 10,
DateCreated: baseTime.Add(30 * time.Minute),
@@ -327,7 +327,7 @@ func TestStateHistoryRepository_GetTotalPlaytime_Success(t *testing.T) {
{
ID: uuid.New(),
ServerID: helper.TestData.ServerID,
Session: "Practice",
Session: model.SessionPractice,
Track: "spa",
PlayerCount: 8,
DateCreated: baseTime.Add(60 * time.Minute),
@@ -391,7 +391,7 @@ func TestStateHistoryRepository_ConcurrentOperations(t *testing.T) {
}
// Create and insert initial entry to ensure table exists and is properly set up
initialHistory := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
initialHistory := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
err := repo.Insert(ctx, &initialHistory)
if err != nil {
t.Fatalf("Failed to insert initial record: %v", err)
@@ -404,7 +404,7 @@ func TestStateHistoryRepository_ConcurrentOperations(t *testing.T) {
defer func() {
done <- true
}()
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
err := repo.Insert(ctx, &history)
if err != nil {
t.Logf("Insert error: %v", err)
@@ -462,7 +462,7 @@ func TestStateHistoryRepository_FilterEdgeCases(t *testing.T) {
// Insert a test record to ensure the table is properly set up
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
err := repo.Insert(ctx, &history)
tests.AssertNoError(t, err)

View File

@@ -94,7 +94,7 @@ func TestConfigService_GetEventConfig_ValidFile(t *testing.T) {
// Verify sessions
tests.AssertEqual(t, 3, len(eventConfig.Sessions))
if len(eventConfig.Sessions) > 0 {
tests.AssertEqual(t, "P", eventConfig.Sessions[0].SessionType)
tests.AssertEqual(t, model.SessionPractice, eventConfig.Sessions[0].SessionType)
tests.AssertEqual(t, model.IntString(10), eventConfig.Sessions[0].SessionDurationMinutes)
}
}

View File

@@ -33,7 +33,7 @@ func TestStateHistoryService_GetAll_Success(t *testing.T) {
// Insert test data directly into DB
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
err := repo.Insert(helper.CreateContext(), &history)
tests.AssertNoError(t, err)
@@ -49,7 +49,7 @@ func TestStateHistoryService_GetAll_Success(t *testing.T) {
tests.AssertNoError(t, err)
tests.AssertNotNil(t, result)
tests.AssertEqual(t, 1, len(*result))
tests.AssertEqual(t, "Practice", (*result)[0].Session)
tests.AssertEqual(t, model.SessionPractice, (*result)[0].Session)
tests.AssertEqual(t, 5, (*result)[0].PlayerCount)
}
@@ -71,8 +71,8 @@ func TestStateHistoryService_GetAll_WithFilter(t *testing.T) {
// Insert test data with different sessions
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
practiceHistory := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
raceHistory := testData.CreateStateHistory("Race", "spa", 10, uuid.New())
practiceHistory := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
raceHistory := testData.CreateStateHistory(model.SessionRace, "spa", 10, uuid.New())
err := repo.Insert(helper.CreateContext(), &practiceHistory)
tests.AssertNoError(t, err)
@@ -85,13 +85,13 @@ func TestStateHistoryService_GetAll_WithFilter(t *testing.T) {
defer helper.ReleaseFiberCtx(app, ctx)
// Test GetAll with session filter
filter := testdata.CreateFilterWithSession(helper.TestData.ServerID.String(), "Race")
filter := testdata.CreateFilterWithSession(helper.TestData.ServerID.String(), model.SessionRace)
result, err := stateHistoryService.GetAll(ctx, filter)
tests.AssertNoError(t, err)
tests.AssertNotNil(t, result)
tests.AssertEqual(t, 1, len(*result))
tests.AssertEqual(t, "Race", (*result)[0].Session)
tests.AssertEqual(t, model.SessionRace, (*result)[0].Session)
tests.AssertEqual(t, 10, (*result)[0].PlayerCount)
}
@@ -143,7 +143,7 @@ func TestStateHistoryService_Insert_Success(t *testing.T) {
// Create test data
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
history := testData.CreateStateHistory("Practice", "spa", 5, uuid.New())
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, uuid.New())
// Create proper Fiber context
app := fiber.New()
@@ -180,7 +180,7 @@ func TestStateHistoryService_GetLastSessionID_Success(t *testing.T) {
// Insert test data
testData := testdata.NewStateHistoryTestData(helper.TestData.ServerID)
sessionID := uuid.New()
history := testData.CreateStateHistory("Practice", "spa", 5, sessionID)
history := testData.CreateStateHistory(model.SessionPractice, "spa", 5, sessionID)
err := repo.Insert(helper.CreateContext(), &history)
tests.AssertNoError(t, err)
@@ -254,7 +254,7 @@ func TestStateHistoryService_GetStatistics_Success(t *testing.T) {
{
ID: uuid.New(),
ServerID: helper.TestData.ServerID,
Session: "Practice",
Session: model.SessionPractice,
Track: "spa",
PlayerCount: 5,
DateCreated: baseTime,
@@ -265,7 +265,7 @@ func TestStateHistoryService_GetStatistics_Success(t *testing.T) {
{
ID: uuid.New(),
ServerID: helper.TestData.ServerID,
Session: "Practice",
Session: model.SessionPractice,
Track: "spa",
PlayerCount: 10,
DateCreated: baseTime.Add(5 * time.Minute),
@@ -276,7 +276,7 @@ func TestStateHistoryService_GetStatistics_Success(t *testing.T) {
{
ID: uuid.New(),
ServerID: helper.TestData.ServerID,
Session: "Race",
Session: model.SessionRace,
Track: "spa",
PlayerCount: 15,
DateCreated: baseTime.Add(10 * time.Minute),
@@ -404,7 +404,7 @@ func TestStateHistoryService_LogParsingWorkflow(t *testing.T) {
}
// Verify session changes were parsed correctly
expectedSessions := []string{"PRACTICE", "QUALIFY", "RACE", "NONE"}
expectedSessions := []model.TrackSession{model.SessionPractice, model.SessionQualify, model.SessionRace}
sessionIndex := 0
for _, state := range stateChanges {
@@ -433,7 +433,7 @@ func TestStateHistoryService_SessionChangeTracking(t *testing.T) {
Name: "Test Server",
}
var sessionChanges []string
var sessionChanges []model.TrackSession
onStateChange := func(state *model.ServerState, changes ...tracking.StateChange) {
for _, change := range changes {
if change == tracking.Session {
@@ -448,7 +448,7 @@ func TestStateHistoryService_SessionChangeTracking(t *testing.T) {
// We'll add one session change at a time and wait briefly to ensure they're processed in order
for _, expected := range testdata.ExpectedSessionChanges {
line := "[2024-01-15 14:30:25.123] Session changed: " + expected.From + " -> " + expected.To
line := string("[2024-01-15 14:30:25.123] Session changed: " + expected.From + " -> " + expected.To)
instance.HandleLogLine(line)
// Small pause to ensure log processing completes
time.Sleep(10 * time.Millisecond)