@@ -364,8 +364,7 @@ func TestPutOrderConvergence(t *testing.T) {
364364 // Three-way conflict across batches: the batch B entry must end
365365 // serving whatever payload the batch A conflict settles on, with
366366 // its sum refreshed accordingly.
367- name : "divergent socs with a sibling entry under another batch" ,
368- unresolved : true ,
367+ name : "divergent socs with a sibling entry under another batch" ,
369368 chunks : func (t * testing.T ) []swarm.Chunk {
370369 t .Helper ()
371370 stamp := postagetesting .MustNewFields (batchA .ID , 0 , 7 )
@@ -463,17 +462,17 @@ func TestSOCMultiStampDivergenceCornerCase(t *testing.T) {
463462 t .Fatal ("expected payload P2 after putting stampB" )
464463 }
465464
466- // Re-offer stamp A with lower-wrapped P1: same- stamp resolveDivergence
467- // accepts it, so the store settles on P1.
468- if err := r . Put ( ctx , soc1 . WithStamp ( stampA )); err != nil {
469- t .Fatalf ("re-offer soc1 stampA : %v" , err )
465+ // Re-offering weaker stamp A must be rejected by tie-break against stronger stamp B.
466+ err = r . Put ( ctx , soc1 . WithStamp ( stampA ))
467+ if ! errors . Is ( err , storage . ErrDivergentChunkRejected ) {
468+ t .Fatalf ("expected ErrDivergentChunkRejected on weaker re-offer, got : %v" , err )
470469 }
471470
472471 finalCh , err := ts .ChunkStore ().Get (ctx , soc1 .Address ())
473472 if err != nil {
474473 t .Fatalf ("get final chunk: %v" , err )
475474 }
476- if ! bytes .Equal (finalCh .Data (), soc1 .Data ()) {
477- t .Fatal ("expected payload P1 after re-offering lower-wrapped stampA variant " )
475+ if ! bytes .Equal (finalCh .Data (), soc2 .Data ()) {
476+ t .Fatal ("expected payload P2 to be retained after rejecting weaker stampA re-offer " )
478477 }
479478}
0 commit comments