github.com/grafana/synthetic-monitoring-agent@v0.64.2/internal/scraper/scrape_clock_test.go (about) 1 package scraper 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestScheduledScrapeClockUsesWallTime(t *testing.T) { 12 scheduledAt := time.Now().Add(-time.Hour) 13 wallStart := time.Now().Add(-time.Minute) 14 clock := scheduledScrapeClock(scheduledAt) 15 16 wrapperTimestamp := fmt.Sprint(clock.wrapperLogTimestamp()()) 17 parsedTimestamp, err := time.Parse(time.RFC3339Nano, wrapperTimestamp) 18 require.NoError(t, err) 19 require.WithinDuration(t, time.Now().UTC(), parsedTimestamp, time.Second) 20 require.Empty(t, clock.endLogFields(0.25)) 21 require.Greater(t, clock.fallbackDuration(wallStart), 59*time.Minute) 22 } 23 24 func TestLogicalScrapeClockUsesEventTime(t *testing.T) { 25 eventTime := time.Date(2020, 3, 1, 12, 0, 0, 0, time.UTC) 26 wallStart := time.Now().Add(-time.Minute) 27 clock := logicalScrapeClock(eventTime) 28 29 require.Equal(t, eventTime.Format(time.RFC3339Nano), fmt.Sprint(clock.wrapperLogTimestamp()())) 30 require.Equal(t, []any{ 31 "time", eventTime.Add(250 * time.Millisecond).Format(time.RFC3339Nano), 32 }, clock.endLogFields(0.25)) 33 require.Less(t, clock.fallbackDuration(wallStart), 2*time.Minute) 34 }