37 lines
983 B
GDScript
37 lines
983 B
GDScript
extends GdUnitTestSuite
|
|
|
|
const CooldownStateScript := preload("res://scripts/cooldown_state.gd")
|
|
|
|
|
|
func test_remaining_is_zero_when_end_before_server_time() -> void:
|
|
# Arrange
|
|
var state: RefCounted = CooldownStateScript.new()
|
|
var snap := {
|
|
"serverTimeUtc": "2026-01-01T12:01:00.000Z",
|
|
"slots": [{"slotIndex": 0, "cooldownEndsAtUtc": "2026-01-01T12:00:05.000Z"}],
|
|
}
|
|
|
|
# Act
|
|
state.call("apply_snapshot", snap)
|
|
var rem: float = state.call("remaining_for_slot", 0) as float
|
|
|
|
# Assert
|
|
assert_that(rem).is_equal(0.0)
|
|
|
|
|
|
func test_remaining_positive_when_end_after_server_time() -> void:
|
|
# Arrange
|
|
var state: RefCounted = CooldownStateScript.new()
|
|
var snap := {
|
|
"serverTimeUtc": "2026-01-01T12:00:00.000Z",
|
|
"slots": [{"slotIndex": 0, "cooldownEndsAtUtc": "2026-01-01T12:00:10.000Z"}],
|
|
}
|
|
|
|
# Act
|
|
state.call("apply_snapshot", snap)
|
|
var rem: float = state.call("remaining_for_slot", 0) as float
|
|
|
|
# Assert
|
|
assert_that(rem).is_greater(9.0)
|
|
assert_that(rem).is_less(11.0)
|