diff --git a/cif/metadata.go b/cif/metadata.go index a1c9ae0..9198ead 100644 --- a/cif/metadata.go +++ b/cif/metadata.go @@ -33,7 +33,7 @@ func checkMetadata(oldMeta *dbAccess.CifMetadata, newMeta *upstreamApi.JsonTimet // Evaluates whether the given time is after yesterday at 0600 func isAfterYesterdayAt0600(t time.Time) bool { - yesterday0600 := time.Now().In(time.UTC).AddDate(0, 0, -1) + yesterday0600 := time.Now().In(londonTimezone).AddDate(0, 0, -1) yesterday0600 = time.Date(yesterday0600.Year(), yesterday0600.Month(), yesterday0600.Day(), 6, 0, 0, 0, time.UTC) return t.After(yesterday0600) } diff --git a/cif/process_test.go b/cif/metadata_test.go similarity index 68% rename from cif/process_test.go rename to cif/metadata_test.go index 4beb9d7..f934ebb 100644 --- a/cif/process_test.go +++ b/cif/metadata_test.go @@ -56,3 +56,27 @@ func TestGenerateMetadata(t *testing.T) { t.Errorf("LastUpdate: expected %s, got %s", expected.LastUpdate, result.LastUpdate) } } + +func TestIsAfterYesterdayAt0600(t *testing.T) { + yesterday0600 := time.Now().In(londonTimezone).AddDate(0, 0, -1).Truncate(24 * time.Hour).Add(6 * time.Hour) + + testCases := []struct { + input time.Time + expect bool + }{ + {yesterday0600.Add(-1 * time.Hour), false}, + {yesterday0600.Add(-12 * time.Hour), false}, + {yesterday0600.Add(-24 * time.Hour), false}, + {yesterday0600.Add(1 * time.Microsecond), true}, + {yesterday0600.Add(1 * time.Hour), true}, + {yesterday0600.Add(12 * time.Hour), true}, + {yesterday0600.Add(24 * time.Hour), true}, + } + + for _, tc := range testCases { + result := isAfterYesterdayAt0600(tc.input) + if result != tc.expect { + t.Errorf("For input %v, expected %t, but got %t", tc.input, tc.expect, result) + } + } +}