From a7222c92f915eb0f379a23f004bedbec922d5a88 Mon Sep 17 00:00:00 2001 From: Christian Daniel Jensen Date: Tue, 3 Nov 2026 12:43:32 -0700 Subject: [PATCH] Fix empty catalogue loaded state and compact Essence selection behavior --- tests/carddatabase/carddatabase_test.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/carddatabase/carddatabase_test.cpp b/tests/carddatabase/carddatabase_test.cpp index 22cbe9074..36c99c41c 100644 --- a/tests/carddatabase/carddatabase_test.cpp +++ b/tests/carddatabase/carddatabase_test.cpp @@ -65,6 +65,27 @@ TEST(CardDatabaseTest, LoadXml) ASSERT_EQ(NotLoaded, db->getLoadStatus()) << "Incorrect status after clear"; } +TEST(CardDatabaseTest, EmptyLoadedSnapshotIsReadyNotLoading) +{ + NoopCardPreferenceProvider prefs; + TestCardDatabasePathProvider pathProvider; + NoopCardSetPriorityController controller; + CardDatabase db(nullptr, &prefs, &pathProvider, &controller); + + EXPECT_EQ(NotLoaded, db.getLoadStatus()); + + // A newly bootstrapped Continuumatrice profile contains a valid, but empty, + // XML v4 catalogue. Successful swap must not trap the visual browser on + // "Loading database..." when there are zero cards. + CardDatabaseData emptySnapshot; + db.swapInDatabaseData(std::move(emptySnapshot)); + EXPECT_TRUE(db.getCardList().isEmpty()); + EXPECT_EQ(Ok, db.getLoadStatus()); + + db.clear(); + EXPECT_EQ(NotLoaded, db.getLoadStatus()); +} + TEST(CardDatabaseTest, LazyPropertiesHashStreamsBlobAccessors) { QHash props;