feat: add audited task review and linked manual retries
This commit is contained in:
39
internal/transport/httpserver/recovery_test.go
Normal file
39
internal/transport/httpserver/recovery_test.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package httpserver
|
||||
|
||||
import (
|
||||
"git.yuntuo.hk/k2safe/orbit/pulse/service"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRecoveryJSONRequiresExplicitConfirmation(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
body string
|
||||
retry, valid bool
|
||||
}{
|
||||
{`{"execution_settled":true,"expected_revision":"9007199254740993"}`, false, true},
|
||||
{`{"execution_settled":false}`, false, true},
|
||||
{`{}`, false, false},
|
||||
{`{"execution_settled":null}`, false, false},
|
||||
{`{"ExecutionSettled":true}`, false, false},
|
||||
{`{"execution_settled":true,"actor_id":"spoof"}`, false, false},
|
||||
{`{"execution_settled":true,"execution_settled":false}`, false, false},
|
||||
{`{"execution_settled":true,"expected_revision":9007199254740993}`, false, false},
|
||||
{`{"safe_to_retry":true}`, true, true},
|
||||
{`{"safe_to_retry":null}`, true, false},
|
||||
{`{}`, true, false},
|
||||
{`{"safe_to_retry":true,"owner_id":"spoof"}`, true, false},
|
||||
} {
|
||||
r := httptest.NewRequest("POST", "/v1/tasks/example:review", strings.NewReader(tc.body))
|
||||
r.Header.Set("Content-Type", "application/json")
|
||||
var in any = &service.ReviewInput{}
|
||||
if tc.retry {
|
||||
in = &service.ManualRetryInput{}
|
||||
}
|
||||
err := decodeBody(r, in)
|
||||
if (err == nil) != tc.valid {
|
||||
t.Fatalf("%s: %v", tc.body, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user