diff --git a/sources/utils/minigame_resources/log_resource.gd b/sources/utils/minigame_resources/log_resource.gd index 7323c8dc..38bc8e01 100644 --- a/sources/utils/minigame_resources/log_resource.gd +++ b/sources/utils/minigame_resources/log_resource.gd @@ -1,7 +1,7 @@ class_name LogResource extends Resource -@export var logs: Dictionary = {} # int: Dictionary {String: Dictionary} +@export var logs: Dictionary[int, Dictionary] = {} # First key is lesson number, second key is time func add_log(lesson_nb: int, new_log: Dictionary, time: String) -> void: diff --git a/tests/unit_tests/test_log_resource.gd b/tests/unit_tests/test_log_resource.gd new file mode 100644 index 00000000..e22a8cfb --- /dev/null +++ b/tests/unit_tests/test_log_resource.gd @@ -0,0 +1,26 @@ +extends GutTest + + +func test_add_log_creates_bucket_and_stores_entry() -> void: + var resource: LogResource = LogResource.new() + var payload: Dictionary = {"score": 10} + resource.add_log(1, payload, "2024-01-01T00:00:00") + assert_true(resource.logs.has(1)) + assert_true(resource.logs[1].has("2024-01-01T00:00:00")) + assert_eq_deep(resource.logs[1]["2024-01-01T00:00:00"] as Dictionary, payload) + + +func test_add_log_duplicate_time_creates_incremented_key() -> void: + var resource: LogResource = LogResource.new() + resource.add_log(2, {"value": 1}, "2024-02-02T12:00:00") + resource.add_log(2, {"value": 2}, "2024-02-02T12:00:00") + resource.add_log(2, {"value": 3}, "2024-02-02T12:00:00") + + var lesson_logs: Dictionary = resource.logs[2] + assert_true(lesson_logs.has("2024-02-02T12:00:00")) + assert_true(lesson_logs.has("2024-02-02T12:00:00_2")) + assert_true(lesson_logs.has("2024-02-02T12:00:00_3")) + assert_eq_deep(lesson_logs["2024-02-02T12:00:00"] as Dictionary, {"value": 1}) + assert_eq_deep(lesson_logs["2024-02-02T12:00:00_2"] as Dictionary, {"value": 2}) + assert_eq_deep(lesson_logs["2024-02-02T12:00:00_3"] as Dictionary, {"value": 3}) + assert_engine_error(2, "2 warnings are expected here, 1 for each log duplicate") diff --git a/tests/unit_tests/test_log_resource.gd.uid b/tests/unit_tests/test_log_resource.gd.uid new file mode 100644 index 00000000..ad61d56d --- /dev/null +++ b/tests/unit_tests/test_log_resource.gd.uid @@ -0,0 +1 @@ +uid://dn66mnnx7s61c