Skip to content

Commit e2c9f28

Browse files
committed
fix: review comments
1 parent 44317de commit e2c9f28

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

openmeter/billing/charges/usagebased/adapter/detailedline.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ func (a *adapter) FetchDetailedLines(ctx context.Context, charge usagebased.Char
7575

7676
detailedLinesPresent, found := detailedLinesPresentByRunID[run.ID.ID]
7777
if !found {
78+
charge.Realizations[idx].DetailedLines = mo.None[usagebased.DetailedLines]()
7879
continue
7980
}
8081

openmeter/billing/charges/usagebased/adapter/detailedline_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,36 @@ func (s *DetailedLineAdapterSuite) TestFetchDetailedLinesUsesPersistedDetailedLi
334334
s.False(fetchedCharge.Realizations[0].DetailedLines.IsPresent())
335335
}
336336

337+
func (s *DetailedLineAdapterSuite) TestFetchDetailedLinesClearsStaleDetailedLinesWhenRunMetadataIsMissing() {
338+
ctx := s.T().Context()
339+
namespace := "usagebased-detailedline-adapter-fetch-missing-run-metadata"
340+
charge, runBase, servicePeriod := s.createChargeWithRun(namespace)
341+
342+
missingRunBase := runBase
343+
missingRunBase.ID.ID = ulid.Make().String()
344+
345+
staleCharge := charge
346+
staleCharge.Realizations = usagebased.RealizationRuns{
347+
{
348+
RealizationRunBase: missingRunBase,
349+
DetailedLines: mo.Some(usagebased.DetailedLines{
350+
s.newDetailedLine(newDetailedLineInput{
351+
Charge: charge,
352+
RunID: missingRunBase.ID,
353+
ServicePeriod: servicePeriod,
354+
ChildUniqueReferenceID: "stale@[2026-01-01T00:00:00Z..2026-02-01T00:00:00Z]",
355+
Quantity: 1,
356+
}),
357+
}),
358+
},
359+
}
360+
361+
fetchedCharge, err := s.adapter.FetchDetailedLines(ctx, staleCharge)
362+
s.Require().NoError(err)
363+
s.Require().Len(fetchedCharge.Realizations, 1)
364+
s.False(fetchedCharge.Realizations[0].DetailedLines.IsPresent())
365+
}
366+
337367
func (s *DetailedLineAdapterSuite) createChargeWithRun(namespace string) (usagebased.Charge, usagebased.RealizationRunBase, timeutil.ClosedPeriod) {
338368
s.T().Helper()
339369

0 commit comments

Comments
 (0)