From aa5fc733c768f8779af897c0cdcaf836b2afcefb Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 31 Oct 2026 12:21:39 +0100 Subject: Revert "fix: credit a tag confirmation to the command whose tags it names" This reverts commit a30b4c2. A backfill will stop arming commands on the shared confirmation queue altogether, so matching confirmations by tags is no longer needed, and its drop-ahead rule could discard a live command when an unarmed write's tags matched a later one. Co-Authored-By: Claude Opus 5.5 --- tests/test_mainwindow.cpp | 30 ------------------------------ 1 file changed, 30 deletions(-) (limited to 'tests/test_mainwindow.cpp') diff --git a/tests/test_mainwindow.cpp b/tests/test_mainwindow.cpp index 918fe00..4887647 100644 --- a/tests/test_mainwindow.cpp +++ b/tests/test_mainwindow.cpp @@ -299,7 +299,6 @@ private slots: void aWorkerBackedWindowReturnsRealThreads(); void aWriteSaysItIsApplyingUntilTheWorkerHasRunIt(); void applyingARuleConfirmsWithTheCountAndUndoesExactly(); - void aSilentWriteDoesNotStealTheNextConfirmation(); void aPurgeTakesTheRowsOutOfTheViewWithoutARefresh(); void theDashboardFollowsAWriteToTheConversationItShows(); void anEditHeldByASyncSaysSoInsteadOfClaimingItLanded(); @@ -10021,35 +10020,6 @@ void TestMainWindow::applyingARuleConfirmsWithTheCountAndUndoesExactly() QStringLiteral("1")); } -void TestMainWindow::aSilentWriteDoesNotStealTheNextConfirmation() -{ - // Items 176 and 212. A rule is written one tag at a time, each operation - // its own armed command. If the first moves nothing (another writer got - // there between the count and the write), the worker stays silent for it, - // and the second operation's confirmation must not be credited to the - // first: its undo would then invert `+x` on messages that only lost `y`. - const Config config; - MainWindow window(config); - - const QList commands = window.armTagCommandsForTesting( - { { { QStringLiteral("x") }, {} }, - { {}, { QStringLiteral("y") } } }); - QCOMPARE(commands.size(), 2); - - // Only the SECOND operation's confirmation arrives. - TagChange change; - change.messageIds = { QStringLiteral("moved@example.org") }; - change.removed = { QStringLiteral("y") }; - change.description = QStringLiteral("Apply rule"); - QVERIFY(QMetaObject::invokeMethod(&window, "onTagsApplied", - Q_ARG(TagChange, change))); - - QVERIFY2(commands.at(0)->changedMessageIds().isEmpty(), - qPrintable(commands.at(0)->changedMessageIds().join(u','))); - QCOMPARE(commands.at(1)->changedMessageIds(), - QStringList{ QStringLiteral("moved@example.org") }); -} - /// Item 181, from the user: "the thread dashboard doesn't update live with the /// modifications applied to the list pane. If I mark the thread as read, the /// dash still reports N unread". -- cgit v1.2.3