Files

36 lines
1.3 KiB
Go

package batch
import (
"context"
batchdomain "git.5iot.com/iotlcm-public/iotlcm-worker-svr/internal/batch"
"git.5iot.com/iotlcm-public/iotlcm-worker-svr/internal/dao"
"git.5iot.com/iotlcm-public/iotlcm-worker-svr/internal/model/do"
"testing"
)
func TestExecutionPreservesOriginMetadata(t *testing.T) {
ctx := context.Background()
r := newTestRepository(t, ctx)
insertBatch(t, ctx, r.db, "META", batchdomain.Type103)
if _, err := r.db.Model(dao.BatchMain.Table()).Ctx(ctx).Where("batch_no", "META").Data(do.BatchMain{SourceChannel: "mini_program", ExecutionMode: 1}).Update(); err != nil {
t.Fatal(err)
}
if claimed, err := r.MarkProcessing(ctx, "META", batchdomain.Type103); err != nil || !claimed {
t.Fatal(claimed, err)
}
if marked, err := r.MarkFailed(ctx, "META", batchdomain.Type103, "test failure"); err != nil || !marked {
t.Fatal(marked, err)
}
main, err := r.FindMain(ctx, "META")
if err != nil || main.SourceChannel != "mini_program" || main.ExecutionMode != 1 {
t.Fatalf("metadata changed: %+v err=%v", main, err)
}
if marked, err := r.MarkFailed(ctx, "META", batchdomain.Type103, "duplicate"); err != nil || marked {
t.Fatal(marked, err)
}
main, err = r.FindMain(ctx, "META")
if err != nil || main.SourceChannel != "mini_program" || main.ExecutionMode != 1 {
t.Fatal("duplicate mutated origin", err)
}
}