feat: add daily tasks and fix /admin139 admin entry
这个提交包含在:
@@ -0,0 +1,34 @@
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
|
||||
#include "csp/db/sqlite_db.h"
|
||||
#include "csp/services/auth_service.h"
|
||||
#include "csp/services/daily_task_service.h"
|
||||
#include "csp/services/user_service.h"
|
||||
|
||||
TEST_CASE("daily task reward only once per day") {
|
||||
auto db = csp::db::SqliteDb::OpenMemory();
|
||||
csp::db::ApplyMigrations(db);
|
||||
|
||||
csp::services::AuthService auth(db);
|
||||
const auto user = auth.Register("daily_task_user", "password123");
|
||||
|
||||
csp::services::UserService users(db);
|
||||
csp::services::DailyTaskService daily(db);
|
||||
|
||||
const auto before = users.GetById(user.user_id);
|
||||
REQUIRE(before.has_value());
|
||||
// Register includes auto-login, which should complete login_checkin once.
|
||||
REQUIRE(before->rating == 1);
|
||||
|
||||
REQUIRE(daily.CompleteTaskIfFirstToday(user.user_id,
|
||||
csp::services::DailyTaskService::kTaskDailySubmit));
|
||||
REQUIRE_FALSE(daily.CompleteTaskIfFirstToday(
|
||||
user.user_id, csp::services::DailyTaskService::kTaskDailySubmit));
|
||||
|
||||
const auto after = users.GetById(user.user_id);
|
||||
REQUIRE(after.has_value());
|
||||
REQUIRE(after->rating == 2);
|
||||
|
||||
const auto tasks = daily.ListTodayTasks(user.user_id);
|
||||
REQUIRE(tasks.size() == 4);
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户