chore: add GUT test framework
This commit is contained in:
61
addons/gut/test/unit/test_bugs/test_issue_SOTB.gd
Normal file
61
addons/gut/test/unit/test_bugs/test_issue_SOTB.gd
Normal file
@@ -0,0 +1,61 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user