extends "res://addons/gut/test.gd" const ConsideringPhrases = preload("res://scripts/ui/considering_phrases.gd") func test_missing_file_returns_last_resort(): var p = ConsideringPhrases.new("res://content/does_not_exist.json") assert_eq(p.next(), ConsideringPhrases.LAST_RESORT) assert_eq(p.next(), ConsideringPhrases.LAST_RESORT) func test_cycles_pool_in_order_and_wraps(): # Real authored file has at least 3 lines; assert order + wrap on it. var p = ConsideringPhrases.new() # default path — real content var first = p.next() var second = p.next() assert_ne(first, "") assert_ne(first, second) # advances, not stuck # Drain a full cycle back to `first` to prove it wraps (bounded loop). var seen := [first, second] for i in range(20): var n = p.next() if n == first: return # wrapped — success seen.append(n) assert_true(false, "did not wrap within 22 calls: %s" % [seen]) func test_index_persists_across_calls_not_reset(): var p = ConsideringPhrases.new() var a = p.next() var b = p.next() assert_ne(a, b) # second call did not re-return the first phrase