Ensure the upload completer sets the time on session.upload events (#14535)

Fixes #11364
This commit is contained in:
Zac Bergquist
2022-07-17 15:06:27 +00:00
committed by GitHub
parent 1d1c38d0a4
commit ad512e449f
2 changed files with 5 additions and 0 deletions
+1
View File
@@ -221,6 +221,7 @@ func (u *UploadCompleter) checkUploads(ctx context.Context) error {
Metadata: events.Metadata{
Type: SessionUploadEvent,
Code: SessionUploadCode,
Time: u.cfg.Clock.Now().UTC(),
ID: uuid.New().String(),
Index: SessionUploadIndex,
},
+4
View File
@@ -147,6 +147,7 @@ func TestUploadCompleterEmitsSessionEnd(t *testing.T) {
clock := clockwork.NewFakeClock()
mu := NewMemoryUploader()
mu.Clock = clock
startTime := clock.Now().UTC()
log := &mockAuditLog{
sessionEvents: []apievents.AuditEvent{test.startEvent},
@@ -174,6 +175,7 @@ func TestUploadCompleterEmitsSessionEnd(t *testing.T) {
// advance the clock to force the asynchronous session end event emission
clock.BlockUntil(1)
clock.Advance(3 * time.Minute)
endTime := clock.Now().UTC()
// expect two events - a session end and a session upload
// the session end is done asynchronously, so wait for that
@@ -181,7 +183,9 @@ func TestUploadCompleterEmitsSessionEnd(t *testing.T) {
"should have emitted 2 events, but only got %d", len(log.emitter.Events()))
require.IsType(t, &apievents.SessionUpload{}, log.emitter.Events()[0])
require.Equal(t, startTime, log.emitter.Events()[0].GetTime())
require.Equal(t, test.endEventType, log.emitter.Events()[1].GetType())
require.Equal(t, endTime, log.emitter.Events()[1].GetTime())
})
}
}