Wire SCUM schema probe durable run path
This commit is contained in:
@@ -140,11 +140,11 @@ func TestSCUMSchemaProbeDispatchIsPlatformScheduledAndFenced(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("get probe job: %v", err)
|
||||
}
|
||||
if job.Capability != domain.JobCapabilityRemoteRunDBSQLiteProbe || job.TargetKey != "scum-database" || job.ExecutionInput.RemoteAdapterKind != string(domain.RemoteAdapterDatabase) || job.ExecutionInput.Inputs["databaseIdentity"] != "logical:scum-database" {
|
||||
if job.Capability != domain.JobCapabilityRemoteRunDBSQLiteProbe || job.TargetKey != "databases/scum-database" || job.InputRef != "" || job.ExecutionInput.RemoteAdapterKey != "" || job.ExecutionInput.RemoteAdapterKind != "" || len(job.ExecutionInput.Inputs) != 0 {
|
||||
t.Fatalf("unexpected probe job envelope: %+v", job)
|
||||
}
|
||||
if job.ExecutionInput.Inputs["jobId"] != job.ID || job.ExecutionInput.Inputs["requestId"] != probeRequest.RequestID || job.ExecutionInput.Inputs["maxResultBytes"] != "524288" {
|
||||
t.Fatalf("probe inputs are not fenced and bounded: %+v", job.ExecutionInput.Inputs)
|
||||
if job.ExecutionInput.SQLiteSchemaProbe == nil || job.ExecutionInput.SQLiteSchemaProbe.RequestID != probeRequest.RequestID || job.ExecutionInput.SQLiteSchemaProbe.Binding.DatabaseIdentity != "scum-database" || job.ExecutionInput.SQLiteSchemaProbe.Bounds.MaxResultBytes != 524288 {
|
||||
t.Fatalf("probe job did not include typed SQLite schema probe request: %+v", job.ExecutionInput.SQLiteSchemaProbe)
|
||||
}
|
||||
|
||||
helloRequest := validRunControlHello()
|
||||
@@ -158,8 +158,32 @@ func TestSCUMSchemaProbeDispatchIsPlatformScheduledAndFenced(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("claim probe job: %v", err)
|
||||
}
|
||||
if !claim.HasJob || claim.Job == nil || claim.Job.ExecutionInput.Inputs["adapterVersion"] != "scum-live-data-v0" || claim.Job.ExecutionInput.Inputs["targetKey"] != "scum-database" {
|
||||
t.Fatalf("claimed probe job lost typed inputs: %+v", claim.Job)
|
||||
if !claim.HasJob || claim.Job == nil || claim.Job.TargetKey != "databases/scum-database" || claim.Job.InputRef != "" || claim.Job.FencingToken == 0 || claim.Job.MaxAttempts != 1 || claim.Job.ExecutionInput.RemoteAdapterKey != "" || len(claim.Job.ExecutionInput.Inputs) != 0 {
|
||||
t.Fatalf("claimed probe job lost fenced typed envelope: %+v", claim.Job)
|
||||
}
|
||||
if claim.Job.ExecutionInput.SQLiteSchemaProbe == nil || claim.Job.ExecutionInput.SQLiteSchemaProbe.RequestID != probeRequest.RequestID || claim.Job.ExecutionInput.SQLiteSchemaProbe.Binding.RunBindingID != probeRequest.Binding.RunBindingID {
|
||||
t.Fatalf("claimed probe job lost typed schema probe request: %+v", claim.Job.ExecutionInput.SQLiteSchemaProbe)
|
||||
}
|
||||
assignmentBody := dto.RunJobAssignmentFromDomain(*claim.Job)
|
||||
payload, err := json.Marshal(assignmentBody)
|
||||
if err != nil {
|
||||
t.Fatalf("marshal probe Run assignment: %v", err)
|
||||
}
|
||||
var runWire struct {
|
||||
ExecutionInput struct {
|
||||
SQLiteSchemaProbe struct {
|
||||
RequestID string `json:"requestId"`
|
||||
JobID string `json:"jobId"`
|
||||
Bounds *dto.SCUMSchemaProbeBoundsDTO `json:"bounds"`
|
||||
Limits dto.SCUMSchemaProbeBoundsDTO `json:"limits"`
|
||||
} `json:"sqliteSchemaProbe"`
|
||||
} `json:"executionInput"`
|
||||
}
|
||||
if err := json.Unmarshal(payload, &runWire); err != nil {
|
||||
t.Fatalf("unmarshal probe Run assignment: %v", err)
|
||||
}
|
||||
if runWire.ExecutionInput.SQLiteSchemaProbe.RequestID != probeRequest.RequestID || runWire.ExecutionInput.SQLiteSchemaProbe.JobID != "" || runWire.ExecutionInput.SQLiteSchemaProbe.Bounds != nil || runWire.ExecutionInput.SQLiteSchemaProbe.Limits.MaxResultBytes != probeRequest.Bounds.MaxResultBytes {
|
||||
t.Fatalf("probe Run assignment JSON does not match Run contract: %s", payload)
|
||||
}
|
||||
badBinding := probeRequest.Binding
|
||||
badBinding.RunBindingID = "runtime-binding-other"
|
||||
|
||||
Reference in New Issue
Block a user