Add Stripe donation flow
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
extends SceneTree
|
||||
|
||||
var failures := 0
|
||||
|
||||
|
||||
func _initialize() -> void:
|
||||
call_deferred("_run")
|
||||
|
||||
|
||||
func _run() -> void:
|
||||
var theme_service = root.get_node("UIThemeService")
|
||||
var prior_dark_mode: bool = theme_service.is_dark_mode()
|
||||
var host := Control.new()
|
||||
host.size = Vector2(1280, 800)
|
||||
root.add_child(host)
|
||||
var screen = load("res://scripts/ui/donation_screen.gd").new()
|
||||
screen.size = host.size
|
||||
host.add_child(screen)
|
||||
await process_frame
|
||||
_assert(screen.content_grid.columns == 2, "wide donation layouts should use two columns")
|
||||
_assert(screen.selected_amount_cents == 2500, "the default preset should be $25")
|
||||
_assert(screen.donate_button.text.contains("$25.00"), "the donation action should state the selected amount")
|
||||
screen.size = Vector2(760, 800)
|
||||
screen._update_layout()
|
||||
_assert(screen.content_grid.columns == 1, "narrow donation layouts should stack")
|
||||
screen.size = Vector2(360, 800)
|
||||
screen._update_layout()
|
||||
_assert(screen.preset_grid.columns == 2, "phone donation layouts should use a two-column amount grid")
|
||||
screen.custom_amount.text = "4"
|
||||
screen._on_custom_amount_changed("4")
|
||||
await process_frame
|
||||
_assert(screen.donate_button.disabled, "amounts below $5 should disable checkout")
|
||||
theme_service.set_dark_mode(false)
|
||||
await process_frame
|
||||
var light_box := screen.mission_panel.get_theme_stylebox("panel") as StyleBoxFlat
|
||||
_assert(light_box.bg_color.is_equal_approx(Color.WHITE), "donation cards should use light surfaces in light mode")
|
||||
host.queue_free()
|
||||
await process_frame
|
||||
theme_service.set_dark_mode(prior_dark_mode)
|
||||
quit(1 if failures > 0 else 0)
|
||||
|
||||
|
||||
func _assert(condition: bool, message: String) -> void:
|
||||
if condition:
|
||||
return
|
||||
failures += 1
|
||||
push_error(message)
|
||||
Reference in New Issue
Block a user