From a178bf3adb34c323d79b2c3c8761eba16c895a59 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 18 Mar 2018 08:55:33 +0000 Subject: [PATCH] Fix getting default group when no metadata is loaded --- src/api/api_database.cpp | 7 ++++++- src/tests/api/interface/database_interface_test.h | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/api/api_database.cpp b/src/api/api_database.cpp index 27a05c30..cde20450 100644 --- a/src/api/api_database.cpp +++ b/src/api/api_database.cpp @@ -163,7 +163,12 @@ std::vector ApiDatabase::GetGeneralMessages( std::unordered_set ApiDatabase::GetGroups(bool includeUserMetadata) const { if (!includeUserMetadata) { - return masterlist_.Groups(); + auto groups = masterlist_.Groups(); + + //Insert the default group in case the masterlist hasn't been loaded. + groups.insert(Group()); + + return groups; } std::unordered_set mergedGroups; diff --git a/src/tests/api/interface/database_interface_test.h b/src/tests/api/interface/database_interface_test.h index 06e998a0..f63fc1c2 100644 --- a/src/tests/api/interface/database_interface_test.h +++ b/src/tests/api/interface/database_interface_test.h @@ -460,6 +460,16 @@ TEST_P(DatabaseInterfaceTest, EXPECT_EQ(std::unordered_set({ "group1" }), groups.find(Group("group2"))->GetAfterGroups()); } +TEST_P(DatabaseInterfaceTest, + getGroupsShouldReturnDefaultGroupIfNoMasterlistIsLoadedAndUserlistMetadataIsNotIncluded) { + auto groups = db_->GetGroups(false); + + EXPECT_EQ(1, groups.size()); + + EXPECT_EQ("default", groups.begin()->GetName()); + EXPECT_TRUE(groups.begin()->GetAfterGroups().empty()); +} + TEST_P(DatabaseInterfaceTest, getUserGroupsShouldReturnOnlyGroupMetadataFromTheUserlist) { ASSERT_NO_THROW(GenerateMasterlist());