35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
package mysql
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"git.yuntuo.hk/k2safe/orbit/pulse/service"
|
|
)
|
|
|
|
func TestRelativeDelayPreservesLegacySubmissionDigest(t *testing.T) {
|
|
// 升级前已规范化的实际请求形状;新可选字段为零时不能改变原幂等摘要。
|
|
legacy := json.RawMessage(`{"queue_id":"11111111111111111111111111111111","handler":"object.prepare","handler_version":"v1","payload_version":"v1","payload":{"n":9007199254740993},"task_timeout_ms":86400000,"recovery_safety":"RECONCILE_ONLY","retry":{"max_attempts":1,"initial_delay_ms":0,"max_delay_ms":0,"attempt_timeout_ms":30000}}`)
|
|
var in service.SubmitInput
|
|
if err := json.Unmarshal(legacy, &in); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
in, err := service.NormalizeSubmit(in)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
want, err := requestDigest(legacy)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
got, err := requestDigest(in)
|
|
if err != nil || got != want {
|
|
t.Fatal("zero delay changed a legacy request identity", err)
|
|
}
|
|
in.DelayMS = 1000
|
|
changed, err := requestDigest(in)
|
|
if err != nil || changed == want {
|
|
t.Fatal("nonzero delay missing from request identity", err)
|
|
}
|
|
}
|