From 922c0c2db8f7892e0e89b4ab8a1fe17379791cfb Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Thu, 19 Mar 2026 11:39:34 +0100 Subject: [PATCH] Fix flaky e2e timestamp tests Increase sleep time from 10ms to 1100ms to ensure timestamp precision works consistently across databases with second-level granularity. Strengthen AssertTimestampsOnUpdate to require strictly increasing timestamps instead of allowing equal values. Signed-off-by: Bryan Frimin --- e2e/console/audit_test.go | 3 ++- e2e/console/datum_test.go | 3 ++- e2e/console/document_test.go | 3 ++- e2e/console/measure_test.go | 4 ++-- e2e/console/meeting_test.go | 3 ++- e2e/console/processing_activity_test.go | 3 ++- e2e/internal/testutil/assert.go | 4 ++-- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/e2e/console/audit_test.go b/e2e/console/audit_test.go index 65aba0b5e..336e5fea7 100644 --- a/e2e/console/audit_test.go +++ b/e2e/console/audit_test.go @@ -708,7 +708,8 @@ func TestAudit_Timestamps(t *testing.T) { initialCreatedAt := getResult.Node.CreatedAt initialUpdatedAt := getResult.Node.UpdatedAt - time.Sleep(10 * time.Millisecond) + // Wait long enough for timestamp to change (database may have second precision) + time.Sleep(1100 * time.Millisecond) updateQuery := ` mutation UpdateAudit($input: UpdateAuditInput!) { diff --git a/e2e/console/datum_test.go b/e2e/console/datum_test.go index 2b0402de5..251e80204 100644 --- a/e2e/console/datum_test.go +++ b/e2e/console/datum_test.go @@ -677,7 +677,8 @@ func TestDatum_Timestamps(t *testing.T) { initialCreatedAt := getResult.Node.CreatedAt initialUpdatedAt := getResult.Node.UpdatedAt - time.Sleep(10 * time.Millisecond) + // Wait long enough for timestamp to change (database may have second precision) + time.Sleep(1100 * time.Millisecond) updateQuery := ` mutation UpdateDatum($input: UpdateDatumInput!) { diff --git a/e2e/console/document_test.go b/e2e/console/document_test.go index a17f90b27..df1ca5c7e 100644 --- a/e2e/console/document_test.go +++ b/e2e/console/document_test.go @@ -674,7 +674,8 @@ func TestDocument_Timestamps(t *testing.T) { initialCreatedAt := getResult.Node.CreatedAt initialUpdatedAt := getResult.Node.UpdatedAt - time.Sleep(10 * time.Millisecond) + // Wait long enough for timestamp to change (database may have second precision) + time.Sleep(1100 * time.Millisecond) updateQuery := ` mutation UpdateDocument($input: UpdateDocumentInput!) { diff --git a/e2e/console/measure_test.go b/e2e/console/measure_test.go index a66ce28f7..f49a18b7a 100644 --- a/e2e/console/measure_test.go +++ b/e2e/console/measure_test.go @@ -785,8 +785,8 @@ func TestMeasure_Timestamps(t *testing.T) { initialCreatedAt := getResult.Node.CreatedAt initialUpdatedAt := getResult.Node.UpdatedAt - // Wait a bit to ensure timestamp difference - time.Sleep(10 * time.Millisecond) + // Wait long enough for timestamp to change (database may have second precision) + time.Sleep(1100 * time.Millisecond) updateQuery := ` mutation UpdateMeasure($input: UpdateMeasureInput!) { diff --git a/e2e/console/meeting_test.go b/e2e/console/meeting_test.go index a99f0e69a..d005a7579 100644 --- a/e2e/console/meeting_test.go +++ b/e2e/console/meeting_test.go @@ -595,7 +595,8 @@ func TestMeeting_Timestamps(t *testing.T) { initialCreatedAt := getResult.Node.CreatedAt initialUpdatedAt := getResult.Node.UpdatedAt - time.Sleep(10 * time.Millisecond) + // Wait long enough for timestamp to change (database may have second precision) + time.Sleep(1100 * time.Millisecond) updateQuery := ` mutation UpdateMeeting($input: UpdateMeetingInput!) { diff --git a/e2e/console/processing_activity_test.go b/e2e/console/processing_activity_test.go index 7adfdf23f..a9cd67210 100644 --- a/e2e/console/processing_activity_test.go +++ b/e2e/console/processing_activity_test.go @@ -556,7 +556,8 @@ func TestProcessingActivity_Timestamps(t *testing.T) { initialCreatedAt := getResult.Node.CreatedAt initialUpdatedAt := getResult.Node.UpdatedAt - time.Sleep(10 * time.Millisecond) + // Wait long enough for timestamp to change (database may have second precision) + time.Sleep(1100 * time.Millisecond) updateQuery := ` mutation UpdateProcessingActivity($input: UpdateProcessingActivityInput!) { diff --git a/e2e/internal/testutil/assert.go b/e2e/internal/testutil/assert.go index 4a8ccb2cf..a577d9194 100644 --- a/e2e/internal/testutil/assert.go +++ b/e2e/internal/testutil/assert.go @@ -74,8 +74,8 @@ func AssertTimestampsOnCreate(t *testing.T, createdAt, updatedAt, beforeCreate t func AssertTimestampsOnUpdate(t *testing.T, createdAt, updatedAt, originalCreatedAt, originalUpdatedAt time.Time) { t.Helper() assert.Equal(t, originalCreatedAt, createdAt, "createdAt should not change on update") - assert.True(t, updatedAt.After(originalUpdatedAt) || updatedAt.Equal(originalUpdatedAt), - "updatedAt should be >= previous updatedAt") + assert.True(t, updatedAt.After(originalUpdatedAt), + "updatedAt should be strictly after previous updatedAt") } func AssertOptionalStringEqual(t *testing.T, expected, actual *string, fieldName string) {