Files
code_of_conquest_dnd/client/tests/unit/test_fallback_library.gd
2026-07-10 12:51:13 -05:00

46 lines
1.5 KiB
GDScript

extends "res://addons/gut/test.gd"
const FallbackLibrary = preload("res://scripts/net/fallback_library.gd")
func test_loads_authored_line_from_default_file():
var lib = FallbackLibrary.new()
# The authored line is distinct from LAST_RESORT, so a match proves the file was read.
assert_ne(lib.narrator_line(), FallbackLibrary.LAST_RESORT)
assert_true(lib.narrator_line().length() > 0)
func test_missing_file_uses_last_resort():
var lib = FallbackLibrary.new("res://content/fallback/does_not_exist.json")
assert_eq(lib.narrator_line(), FallbackLibrary.LAST_RESORT)
func test_malformed_file_uses_last_resort():
var path := "user://bad_fallback.json"
var f := FileAccess.open(path, FileAccess.WRITE)
f.store_string("{ this is not valid json")
f.close()
var lib = FallbackLibrary.new(path)
assert_eq(lib.narrator_line(), FallbackLibrary.LAST_RESORT)
func test_empty_list_uses_last_resort():
var path := "user://empty_fallback.json"
var f := FileAccess.open(path, FileAccess.WRITE)
f.store_string('{"narrator": []}')
f.close()
var lib = FallbackLibrary.new(path)
assert_eq(lib.narrator_line(), FallbackLibrary.LAST_RESORT)
func test_npc_line_falls_back_to_constant_when_missing():
var lib = FallbackLibrary.new(
"res://content/fallback/does_not_exist.json",
"res://content/fallback/does_not_exist.json")
assert_eq(lib.npc_line(), FallbackLibrary.NPC_LAST_RESORT)
func test_npc_line_reads_authored_file():
var lib = FallbackLibrary.new() # default paths — real content
assert_ne(lib.npc_line(), "")