大更新

This commit is contained in:
2026-08-08 19:16:58 +08:00
parent d289f8d6e2
commit ae5dc3eb46
178 changed files with 69427 additions and 525 deletions
+12 -12
View File
@@ -1,5 +1,5 @@
#include "adminive/adminive.hpp"
#include <cassert>
#include "adminive_test.hpp"
#include <cstdint>
#include <map>
#include <optional>
@@ -275,28 +275,28 @@ int main() {
using Config = adapter_test::Config;
const Json descriptor = adminive::to_descriptor_json_with_defaults<Json, Config>();
const auto& fields = adminive::Json_Adapter<Json>::at(descriptor, "fields");
assert((adminive::json_get<Json, std::string>(adminive::Json_Adapter<Json>::at(adminive::Json_Adapter<Json>::at(fields, 0), "name")) == "worker_count"));
assert((adminive::json_get<Json, int>(adminive::Json_Adapter<Json>::at(adminive::Json_Adapter<Json>::at(fields, 0), "default")) == 4));
ADMINIVE_CHECK((adminive::json_get<Json, std::string>(adminive::Json_Adapter<Json>::at(adminive::Json_Adapter<Json>::at(fields, 0), "name")) == "worker_count"));
ADMINIVE_CHECK((adminive::json_get<Json, int>(adminive::Json_Adapter<Json>::at(adminive::Json_Adapter<Json>::at(fields, 0), "default")) == 4));
const auto& presentation = adminive::Json_Adapter<Json>::at(adminive::Json_Adapter<Json>::at(fields, 1), "presentation");
const auto& options = adminive::Json_Adapter<Json>::at(presentation, "options");
assert((adminive::json_get<Json, std::string>(adminive::Json_Adapter<Json>::at(adminive::Json_Adapter<Json>::at(options, 0), "label")) == "主用"));
ADMINIVE_CHECK((adminive::json_get<Json, std::string>(adminive::Json_Adapter<Json>::at(adminive::Json_Adapter<Json>::at(options, 0), "label")) == "主用"));
Config config;
Json patch = adminive::json_object<Json>();
adminive::json_set(patch, "worker_count", 12);
adminive::json_set(patch, "mode", "secondary");
adminive::json_set(patch, "name", "updated");
const auto result = adminive::apply_frontend_patch<Json>(config, patch);
assert(result.success);
assert(config.worker_count.value == 12);
assert(config.mode == adapter_test::Mode::secondary);
assert(config.name == "updated");
ADMINIVE_CHECK(result.success);
ADMINIVE_CHECK(config.worker_count.value == 12);
ADMINIVE_CHECK(config.mode == adapter_test::Mode::secondary);
ADMINIVE_CHECK(config.name == "updated");
const Json encoded = adminive::to_json<Json>(config);
assert((adminive::json_get<Json, int>(adminive::Json_Adapter<Json>::at(encoded, "worker_count")) == 12));
assert((adminive::json_get<Json, std::string>(adminive::Json_Adapter<Json>::at(encoded, "mode")) == "secondary"));
ADMINIVE_CHECK((adminive::json_get<Json, int>(adminive::Json_Adapter<Json>::at(encoded, "worker_count")) == 12));
ADMINIVE_CHECK((adminive::json_get<Json, std::string>(adminive::Json_Adapter<Json>::at(encoded, "mode")) == "secondary"));
adminive::Collection_Service<Config, Json, adminive::No_Lock> collection("/configs", {Config{}});
const auto list = collection.list_response();
assert(list.status == 200);
ADMINIVE_CHECK(list.status == 200);
const auto& data = adminive::Json_Adapter<Json>::at(list.body, "data");
assert((adminive::json_get<Json, std::uint64_t>(adminive::Json_Adapter<Json>::at(data, "total")) == 1));
ADMINIVE_CHECK((adminive::json_get<Json, std::uint64_t>(adminive::Json_Adapter<Json>::at(data, "total")) == 1));
return 0;
}