Rewards: delivery on Paper/Fabric, admin bundle editor, launcher chips
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DjMbLQujBHunCCu5GpsHaT
This commit is contained in:
18 files changed
+496
-2
No files matched your search
@@ -31,3 +31,24 @@ async fn renaming_a_rank_title_reaches_players() {
|
||||
let (_, levels) = t.call("GET", &format!("/api/v1/levels/player/{uuid}"), Some(&steve), None).await;
|
||||
assert!(rank(&levels).is_null(), "{levels}");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn renaming_a_global_title_reaches_the_profile_and_reward_list() {
|
||||
let t = setup().await;
|
||||
let admin = t.login("admin", "supersecret").await;
|
||||
t.call("POST", "/api/admin/users", Some(&admin), Some(json!({"username":"Steve","password":"password123"}))).await;
|
||||
let steve = t.login("Steve", "password123").await;
|
||||
let uuid = t.uuid("Steve").await;
|
||||
sqlx::query("INSERT INTO user_levels (uuid, global_xp, global_level, updated_at) VALUES (?, 100000, 10, 'now') ON CONFLICT(uuid) DO UPDATE SET global_xp = 100000").bind(&uuid).execute(&t.db).await.unwrap();
|
||||
let (_, made) = t.call("POST", "/api/admin/levels/rewards", Some(&admin), Some(json!({"level": 100, "reward_type": "title", "reward_value": "Explorer"}))).await;
|
||||
let id = made["id"].as_i64().unwrap();
|
||||
let (_, me) = t.call("GET", "/api/v1/levels/me", Some(&steve), None).await;
|
||||
assert_eq!(me["title"], "Explorer", "{me}");
|
||||
t.call("PUT", &format!("/api/admin/levels/rewards/{id}"), Some(&admin), Some(json!({"level": 100, "reward_type": "title", "reward_value": "Pathfinder"}))).await;
|
||||
let (_, me) = t.call("GET", "/api/v1/levels/me", Some(&steve), None).await;
|
||||
assert_eq!(me["title"], "Pathfinder", "{me}");
|
||||
let rewards = me["rewards"].to_string();
|
||||
assert!(rewards.contains("Pathfinder") && !rewards.contains("Explorer"), "{rewards}");
|
||||
let (_, list) = t.call("GET", "/api/v1/levels/rewards", Some(&steve), None).await;
|
||||
assert!(list.to_string().contains("Pathfinder") && !list.to_string().contains("Explorer"), "{list}");
|
||||
}
|
||||
Reference in new issue
Block a user