|
@@ -0,0 +1,33 @@
|
|
|
|
|
+#include "db_test_util.hpp"
|
|
|
|
|
+#include <algorithm>
|
|
|
|
|
+using namespace svapi;
|
|
|
|
|
+
|
|
|
|
|
+TEST(Qualify, Rules) {
|
|
|
|
|
+ EXPECT_EQ(qualify("", "docs"), "docs");
|
|
|
|
|
+ EXPECT_EQ(qualify("default", "docs"), "docs");
|
|
|
|
|
+ EXPECT_EQ(qualify("acme", "docs"), "acme:docs");
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+TEST(DbGateway, HealthyAndProjects) {
|
|
|
|
|
+ SVAPI_REQUIRE_DB(db);
|
|
|
|
|
+ EXPECT_TRUE(db->healthy());
|
|
|
|
|
+ auto before = db->listProjects();
|
|
|
|
|
+ EXPECT_NE(std::find(before.begin(), before.end(), "default"), before.end());
|
|
|
|
|
+
|
|
|
|
|
+ const std::string proj = testutil::tmpName("proj_gw");
|
|
|
|
|
+ EXPECT_TRUE(db->ensureProject(proj));
|
|
|
|
|
+ auto after = db->listProjects();
|
|
|
|
|
+ EXPECT_NE(std::find(after.begin(), after.end(), proj), after.end());
|
|
|
|
|
+
|
|
|
|
|
+ // a doc lands in the project namespace
|
|
|
|
|
+ auto id = db->client().insert(qualify(proj, "things"), nlohmann::json{{"a", 1}});
|
|
|
|
|
+ ASSERT_FALSE(id.empty());
|
|
|
|
|
+ EXPECT_TRUE(db->client().get(qualify(proj, "things"), id).has_value());
|
|
|
|
|
+
|
|
|
|
|
+ db->dropProject(proj);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+TEST(DbGateway, CannotDropDefault) {
|
|
|
|
|
+ SVAPI_REQUIRE_DB(db);
|
|
|
|
|
+ EXPECT_FALSE(db->dropProject("default"));
|
|
|
|
|
+}
|