fix: tighten source-aware mileage projection
This commit is contained in:
@@ -88,12 +88,13 @@ func TestProjectDailyMileageSelectsCandidateAndMarksSource(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("ProjectDailyMileage() error = %v", err)
|
||||
}
|
||||
if len(exec.calls) != 3 {
|
||||
t.Fatalf("exec calls = %d, want 3", len(exec.calls))
|
||||
if len(exec.calls) != 4 {
|
||||
t.Fatalf("exec calls = %d, want 4", len(exec.calls))
|
||||
}
|
||||
updateSources := exec.calls[0].query
|
||||
projectFinal := exec.calls[1].query
|
||||
markSelected := exec.calls[2].query
|
||||
cleanupFinal := exec.calls[3].query
|
||||
if !strings.Contains(updateSources, "UPDATE vehicle_daily_mileage_source") || !strings.Contains(updateSources, "is_selected = 0") {
|
||||
t.Fatalf("first query should clear selected candidates: %s", updateSources)
|
||||
}
|
||||
@@ -142,4 +143,17 @@ func TestProjectDailyMileageSelectsCandidateAndMarksSource(t *testing.T) {
|
||||
if got := exec.calls[2].args[3]; got != maxSelectedDailyMileageKM {
|
||||
t.Fatalf("mark query max mileage arg = %#v, want %d", got, maxSelectedDailyMileageKM)
|
||||
}
|
||||
for _, want := range []string{
|
||||
"DELETE FROM vehicle_daily_mileage",
|
||||
"NOT EXISTS (",
|
||||
"FROM vehicle_daily_mileage_source",
|
||||
"is_selected = 1",
|
||||
} {
|
||||
if !strings.Contains(cleanupFinal, want) {
|
||||
t.Fatalf("cleanup query missing %q: %s", want, cleanupFinal)
|
||||
}
|
||||
}
|
||||
if len(exec.calls[3].args) != 6 {
|
||||
t.Fatalf("cleanup query args = %d, want 6", len(exec.calls[3].args))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user