test(e2e): a finished job's phases are all closed and it was reporting while it ran (ADR-035)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"mime/multipart"
|
||||
@@ -21,6 +22,7 @@ import (
|
||||
|
||||
"git.d-ma.be/mathias/tapir/internal/adapters/store"
|
||||
"git.d-ma.be/mathias/tapir/internal/config"
|
||||
"git.d-ma.be/mathias/tapir/internal/domain"
|
||||
"git.d-ma.be/mathias/tapir/internal/web"
|
||||
)
|
||||
|
||||
@@ -156,6 +158,23 @@ func TestE2E_UploadTranscribeAndChat(t *testing.T) {
|
||||
assert.Equal(t, "done", status)
|
||||
assert.NotEmpty(t, endpoint)
|
||||
assert.NotEmpty(t, content)
|
||||
|
||||
// ADR-035: a finished job's phases are all closed, and it was reporting while it ran.
|
||||
var progJSON string
|
||||
var progressAt, aliveAt *time.Time
|
||||
require.NoError(t, raw.QueryRow(ctx,
|
||||
`SELECT COALESCE(progress::text, '[]'), progress_at, alive_at FROM uploaded_transcripts WHERE user_id = $1`, uid).
|
||||
Scan(&progJSON, &progressAt, &aliveAt))
|
||||
var steps []domain.ProgressStep
|
||||
require.NoError(t, json.Unmarshal([]byte(progJSON), &steps))
|
||||
require.NotEmpty(t, steps, "the job recorded no phases")
|
||||
for _, st := range steps {
|
||||
assert.Contains(t, []domain.StepState{domain.StepDone, domain.StepSkipped}, st.State,
|
||||
"phase %q was left %q after the job finished", st.Key, st.State)
|
||||
}
|
||||
assert.Equal(t, "save", steps[len(steps)-1].Key)
|
||||
assert.NotNil(t, progressAt, "progress_at must have been stamped")
|
||||
t.Logf("phases: %d, heartbeat stamped: %v", len(steps), aliveAt != nil)
|
||||
entries, err := os.ReadDir(cfg.UploadTmpDir)
|
||||
require.NoError(t, err)
|
||||
assert.Empty(t, entries, "the audio must be deleted once transcribed")
|
||||
|
||||
Reference in New Issue
Block a user