Info badge: the icon was a PanelContainer using StyleBoxFlat corner radius to fake a circle, with the radius exceeding half the box size, causing visible artifacts. Replaced with a custom-drawn Control (draw_arc) for a clean ring at any size, and added a hover tooltip explaining what each stat card measures. Profile: Dictionary.get(key, default) only falls back when the key is missing, not when it's present with a null value, so a null displayName rendered as the literal string "<null>" (str(null) in GDScript) - including pre-filling the edit-profile dialog with it. Added a shared string_field() helper that treats null the same as missing, applied everywhere an account/preference string field is displayed or edited. Co-Authored-By: Claude Sonnet 5 <[email protected]>
20 lines
1.2 KiB
GDScript
20 lines
1.2 KiB
GDScript
extends SceneTree
|
|
|
|
func _initialize() -> void:
|
|
var ProgressProfile = load("res://scripts/ui/progress_profile.gd")
|
|
_assert_equal(ProgressProfile.validate_outcome(236, "2026-07-14", true), "", "valid outcome")
|
|
_assert_equal(ProgressProfile.validate_outcome(236, "2026-07-14", false), "Consent is required before saving an outcome.", "consent")
|
|
_assert_equal(ProgressProfile.validate_outcome(236, "07/14/2026", true), "Enter the exam date as YYYY-MM-DD.", "date format")
|
|
_assert_equal(ProgressProfile.validate_outcome(301, "2026-07-14", true), "Enter an official score from 1 through 300.", "score range")
|
|
_assert_equal(ProgressProfile.string_field({"displayName": null}, "displayName", "fallback"), "fallback", "null value falls back")
|
|
_assert_equal(ProgressProfile.string_field({}, "displayName", "fallback"), "fallback", "missing key falls back")
|
|
_assert_equal(ProgressProfile.string_field({"displayName": "Dr. Rana"}, "displayName", "fallback"), "Dr. Rana", "present value wins")
|
|
print("outcome_profile_test: PASS")
|
|
quit(0)
|
|
|
|
|
|
func _assert_equal(actual: Variant, expected: Variant, label: String) -> void:
|
|
if actual != expected:
|
|
push_error("%s: expected %s, got %s" % [label, expected, actual])
|
|
quit(1)
|