@@ -14,18 +14,8 @@ func genNonEmptyString() gopter.Gen {
1414}
1515
1616func genSnapshotRestoreTask () gopter.Gen {
17- return gopter .CombineGens (
18- genNonEmptyString (),
19- genNonEmptyString (),
20- genNonEmptyString (),
21- genNonEmptyString (),
22- ).Map (func (v []interface {}) SnapshotRestoreTask {
23- return SnapshotRestoreTask {
24- Bucket : v [0 ].(string ),
25- Prefix : v [1 ].(string ),
26- Region : v [2 ].(string ),
27- ChainID : v [3 ].(string ),
28- }
17+ return gen .Int64Range (0 , 300000000 ).Map (func (h int64 ) SnapshotRestoreTask {
18+ return SnapshotRestoreTask {TargetHeight : h }
2919 })
3020}
3121
@@ -111,11 +101,11 @@ func TestSnapshotRestoreRoundTrip(t *testing.T) {
111101 if req .Type != TaskTypeSnapshotRestore {
112102 return false
113103 }
104+ if task .TargetHeight == 0 {
105+ return req .Params == nil
106+ }
114107 rebuilt := SnapshotRestoreTaskFromParams (* req .Params )
115- return rebuilt .Bucket == task .Bucket &&
116- rebuilt .Prefix == task .Prefix &&
117- rebuilt .Region == task .Region &&
118- rebuilt .ChainID == task .ChainID
108+ return rebuilt .TargetHeight == task .TargetHeight
119109 },
120110 genSnapshotRestoreTask (),
121111 ))
@@ -269,21 +259,19 @@ func TestMarkReadyRoundTrip(t *testing.T) {
269259 }
270260}
271261
272- func TestSnapshotRestoreValidationRejectsMissingFields (t * testing.T ) {
262+ func TestSnapshotRestoreValidation (t * testing.T ) {
263+ // SnapshotRestoreTask has no required fields — TargetHeight=0 means "use latest"
273264 cases := []struct {
274265 name string
275266 task SnapshotRestoreTask
276267 }{
277- {"missing bucket" , SnapshotRestoreTask {Prefix : "p" , Region : "r" , ChainID : "c" }},
278- {"missing prefix" , SnapshotRestoreTask {Bucket : "b" , Region : "r" , ChainID : "c" }},
279- {"missing region" , SnapshotRestoreTask {Bucket : "b" , Prefix : "p" , ChainID : "c" }},
280- {"missing chainId" , SnapshotRestoreTask {Bucket : "b" , Prefix : "p" , Region : "r" }},
281- {"all empty" , SnapshotRestoreTask {}},
268+ {"zero height (latest)" , SnapshotRestoreTask {}},
269+ {"with target height" , SnapshotRestoreTask {TargetHeight : 100000000 }},
282270 }
283271 for _ , tc := range cases {
284272 t .Run (tc .name , func (t * testing.T ) {
285- if err := tc .task .Validate (); err = = nil {
286- t .Error ( "expected validation error, got nil" )
273+ if err := tc .task .Validate (); err ! = nil {
274+ t .Errorf ( "unexpected validation error: %v" , err )
287275 }
288276 })
289277 }
0 commit comments