fix: complete legacy operator parity workflows

This commit is contained in:
2026-07-23 00:54:31 +09:00
parent 939c252d23
commit cf117de144
25 changed files with 2430 additions and 223 deletions

View File

@@ -83,6 +83,31 @@ public sealed class LegacyStockCutInteractionParityTests
row => Assert.Equal(LegacyStockCutCatalog.Rows[1].RawLabel, row.RawCutLabel));
}
[Fact]
public async Task DropPreservesExistingPrefixAndAppendsSelectedCutsAtTheTail()
{
var controller = new LegacyOperatorController(new QueryLookup());
await controller.SearchStocksAsync("first", LegacySearchTrigger.Button);
controller.SelectStock(0);
controller.CutPointerDown(0, false, false, 2, 1, 1_000);
var initial = controller.CutPointerDown(0, false, false, 2, 1, 1_100);
var existing = Assert.Single(initial.Playlist);
controller.CutPointerDown(1, false, false, 2, 24, 2_000);
controller.CutPointerDown(2, true, false, 2, 47, 2_100);
var dropped = controller.DropSelectedCutsOnPlaylist();
Assert.Equal(3, dropped.Playlist.Count);
Assert.Equal(existing, dropped.Playlist[0]);
Assert.Equal(
[
LegacyStockCutCatalog.Rows[1].RawLabel,
LegacyStockCutCatalog.Rows[2].RawLabel
],
dropped.Playlist.Skip(1).Select(row => row.RawCutLabel));
}
[Fact]
public async Task EmptySearchButtonPreservesResultsStockAndCutSelection()
{