extends "res://addons/gut/test.gd" const ContentDB = preload("res://scripts/content/content_db.gd") var db func before_each(): db = ContentDB.new() db.load_from(ContentDB.default_content_root()) func _deserter() -> Dictionary: return ContentDB.load_json(ContentDB.origin_path("deserter")) func test_loads_world_ids(): assert_true(db.has_location("greywater_docks")) assert_true(db.has_quest("find_the_ledger")) assert_true(db.has_item("worn_shortsword")) assert_true(db.has_item("coin")) func test_companions_are_brannoc_and_cadwyn(): var ids := [] for n in db.companions(): ids.append(n["id"]) ids.sort() assert_eq(ids, ["brannoc_thane","cadwyn_vell"]) func test_good_origin_has_no_unresolved_refs(): assert_eq(db.unresolved_refs(_deserter()), []) func test_broken_location_ref_detected(): var o := _deserter() o["start_location_id"] = "nowhere" assert_true("location:nowhere" in db.unresolved_refs(o)) func test_broken_item_ref_detected(): var o := _deserter() o["inventory_grants"] = o["inventory_grants"].duplicate(true) o["inventory_grants"].append({"item_id": "ghost_blade", "qty": 1}) assert_true("item:ghost_blade" in db.unresolved_refs(o)) func test_null_quest_ref_resolves(): var o := _deserter() o["start_quest_id"] = null assert_eq(db.unresolved_refs(o), [])