Files
game-cards/addons/gut/test/unit/test_bugs/test_issue_SOTB.gd
2026-05-29 09:16:10 +08:00

62 lines
1.4 KiB
GDScript

extends GutTest
var SimpleScene = load("res://test/resources/simple_scene.tscn")
var SimpleSceneScript = load("res://test/resources/simple_scene.gd")
class TheSpawner:
@export var spawn_resource : SpawnResource
func spawn():
var inst = spawn_resource.scene.instantiate()
inst.foo()
return inst
class SpawnResource:
extends Resource
# The bug is that if this has a type of PackedScene it would error when
# you tried to use a doubled scene for this value.
@export var scene : PackedScene = null
func foo():
return "bar"
func before_all():
register_inner_classes(get_script())
func test_are_we_sure_scenes_can_be_doubled():
var DoubleSimpleScene = double(SimpleScene)
var inst = DoubleSimpleScene.instantiate()
assert_not_null(inst)
assert_has_method(inst, "foo")
func test_can_use_a_double_of_a_scene_as_the_value_of_a_PackedScene_variable():
var DoubleSimpleScene = double(SimpleScene)
var res = SpawnResource.new()
res.scene = DoubleSimpleScene
var spawner = TheSpawner.new()
spawner.spawn_resource = res
var spawned = spawner.spawn()
assert_not_null(spawned)
func test_can_use_a_double_of_a_scene_as_the_value_of_a_PackedScene_variable2():
var DoubleSimpleScene = double(SimpleScene)
var res = SpawnResource.new()
res.scene = DoubleSimpleScene
var spawner = TheSpawner.new()
spawner.spawn_resource = res
var spawned = spawner.spawn()
assert_ne(spawned.this_is_different_in_scene, "default")