feat(t240): cache freight item images
This commit is contained in:
@@ -184,12 +184,16 @@ func TestCreateFreightOrderSyncStopsBeforePersistingWhenOCRIsInvalid(t *testing.
|
||||
|
||||
func TestCreateFreightOrderSyncReturnsCommittedResult(t *testing.T) {
|
||||
repository := &syncTrackingRepository{}
|
||||
imageCache := &recordingFreightImageCache{
|
||||
err: errors.New("best effort image failure"),
|
||||
}
|
||||
service, err := NewFreightService(
|
||||
repository,
|
||||
&recordingDateSource{},
|
||||
fakeClock{},
|
||||
&sequenceIDs{},
|
||||
time.Minute,
|
||||
WithFreightImageCache(imageCache),
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("NewFreightService() error = %v", err)
|
||||
@@ -209,6 +213,11 @@ func TestCreateFreightOrderSyncReturnsCommittedResult(t *testing.T) {
|
||||
result.Run.StartedAt == nil || result.Run.FinishedAt == nil {
|
||||
t.Fatalf("CreateOrderSync() result = %+v", result)
|
||||
}
|
||||
if imageCache.calls != 1 ||
|
||||
imageCache.creatorSubject != "local-admin" ||
|
||||
imageCache.runID != result.Run.ID {
|
||||
t.Fatalf("image cache calls = %+v", imageCache)
|
||||
}
|
||||
repository.mu.Lock()
|
||||
defer repository.mu.Unlock()
|
||||
if repository.startCalls != 1 || repository.completeCalls != 1 ||
|
||||
@@ -222,6 +231,23 @@ func TestCreateFreightOrderSyncReturnsCommittedResult(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
type recordingFreightImageCache struct {
|
||||
calls int
|
||||
creatorSubject string
|
||||
runID string
|
||||
err error
|
||||
}
|
||||
|
||||
func (cache *recordingFreightImageCache) CacheRun(
|
||||
_ context.Context,
|
||||
creatorSubject, runID string,
|
||||
) error {
|
||||
cache.calls++
|
||||
cache.creatorSubject = creatorSubject
|
||||
cache.runID = runID
|
||||
return cache.err
|
||||
}
|
||||
|
||||
func TestCreateFreightOrderSyncTimeoutUsesLiveCleanupContext(t *testing.T) {
|
||||
repository := &syncTrackingRepository{}
|
||||
source := &blockingOrderSource{}
|
||||
|
||||
Reference in New Issue
Block a user