@@ -744,21 +744,24 @@ contract SPRegistryTest is Test {
744744 assertEq (CommonTypes.FilActorId.unwrap (result), 0 );
745745 }
746746
747- function testGetProviderForDealPicksLeastCommitted () public {
747+ function testGetProviderForDealPicksLeastPending () public {
748748 vm.startPrank (adminAddress);
749749 spRegistry.registerProviderFor (provider1, owner1, defaultCapabilities, defaultAvailableBytes, 0 , address (0 ));
750750 spRegistry.registerProviderFor (provider2, owner2, defaultCapabilities, defaultAvailableBytes, 0 , address (0 ));
751751 vm.stopPrank ();
752752
753- // Commit some capacity to provider1 so provider2 has less committed
754- vm.prank (poRepMarketAddress);
755- spRegistry.commitCapacity (provider1, 5000 , 5000 );
756-
757753 SLITypes.SLIThresholds memory req =
758754 SLITypes.SLIThresholds ({retrievabilityBps: 8000 , bandwidthMbps: 500 , latencyMs: 200 , indexingPct: 50 });
755+
756+ // First call routes to provider1 (insertion order tiebreak), giving it pending bytes
759757 vm.prank (poRepMarketAddress);
760- (CommonTypes.FilActorId result ,) = spRegistry.getProviderForDeal (req, defaultTerms);
761- assertEq (CommonTypes.FilActorId.unwrap (result), CommonTypes.FilActorId.unwrap (provider2));
758+ (CommonTypes.FilActorId first ,) = spRegistry.getProviderForDeal (req, defaultTerms);
759+ assertEq (CommonTypes.FilActorId.unwrap (first), CommonTypes.FilActorId.unwrap (provider1));
760+
761+ // Second call must route to provider2 — it has 0 pending vs provider1's dealSizeBytes
762+ vm.prank (poRepMarketAddress);
763+ (CommonTypes.FilActorId second ,) = spRegistry.getProviderForDeal (req, defaultTerms);
764+ assertEq (CommonTypes.FilActorId.unwrap (second), CommonTypes.FilActorId.unwrap (provider2));
762765 }
763766
764767 function testGetProviderForDealZeroRequirementSkipsDimension () public {
@@ -920,7 +923,7 @@ contract SPRegistryTest is Test {
920923 spRegistry.releaseCapacity (provider1, 1000 );
921924 }
922925
923- function testGetProviderForDealTiebreakEqualCommitted () public {
926+ function testGetProviderForDealTiebreakEqualPending () public {
924927 vm.startPrank (adminAddress);
925928 spRegistry.registerProviderFor (provider1, owner1, defaultCapabilities, defaultAvailableBytes, 0 , address (0 ));
926929 spRegistry.registerProviderFor (provider2, owner2, defaultCapabilities, defaultAvailableBytes, 0 , address (0 ));
@@ -931,7 +934,7 @@ contract SPRegistryTest is Test {
931934 vm.prank (poRepMarketAddress);
932935 (CommonTypes.FilActorId result ,) = spRegistry.getProviderForDeal (req, defaultTerms);
933936
934- // Both have 0 committed bytes; first registered wins (EnumerableSet insertion order)
937+ // Both have 0 pending bytes; first registered wins (EnumerableSet insertion order)
935938 assertEq (CommonTypes.FilActorId.unwrap (result), CommonTypes.FilActorId.unwrap (provider1));
936939 }
937940
0 commit comments