Skip to content

Commit 4154121

Browse files
committed
Add unit tests for different data.pandora path
1 parent 1b06e2c commit 4154121

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

test/settings/pandora_settings_test.gd

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ extends GdUnitTestSuite
77

88
# TestSuite generated from
99
const __source = 'res://addons/pandora/settings/pandora_settings.gd'
10-
10+
const TEST_DIR = "testdata"
1111

1212
const IDType := PandoraSettings.IDType
1313

1414
const SETTING_ID_TYPE := PandoraSettings.SETTING_ID_TYPE
15+
const SETTING_PANDORA_DATA_PATH := PandoraSettings.SETTING_PANDORA_DATA_PATH
1516

1617

1718
func test_initialize() -> void:
@@ -48,3 +49,51 @@ func test_set_id_type() -> void:
4849
PROPERTY_HINT_ENUM, "%s,%s" % IDType.keys())
4950
PandoraSettings.set_id_type(IDType.NANOID)
5051
assert_int(PandoraSettings.get_id_type()).is_equal(IDType.NANOID)
52+
53+
54+
func test_get_data_path() -> void:
55+
ProjectSettings.clear(SETTING_PANDORA_DATA_PATH)
56+
PandoraSettings.init_setting(
57+
SETTING_PANDORA_DATA_PATH, "res://data.pandora",
58+
TYPE_STRING, PROPERTY_HINT_FILE, "*.pandora"
59+
)
60+
var expected: String = ProjectSettings.get_setting(SETTING_PANDORA_DATA_PATH)
61+
var actual := PandoraSettings.get_data_path()
62+
assert_str(actual).is_equal(expected)
63+
64+
65+
func test_set_data_path() -> void:
66+
ProjectSettings.clear(SETTING_PANDORA_DATA_PATH)
67+
PandoraSettings.init_setting(
68+
SETTING_PANDORA_DATA_PATH, "res://data.pandora",
69+
TYPE_STRING, PROPERTY_HINT_FILE, "*.pandora"
70+
)
71+
var new_path: String = "res://" + TEST_DIR + "/" + "collection.pandora"
72+
PandoraSettings.set_data_path(new_path)
73+
assert_str(PandoraSettings.get_data_path()).is_equal(new_path)
74+
75+
# Reinitialize the data storage with the new path
76+
Pandora._storage = PandoraJsonDataStorage.new(PandoraSettings.get_data_path().get_base_dir())
77+
# Resave the data to ensure it uses the new path
78+
Pandora.save_data()
79+
80+
# Unload and reload the data to ensure it reflects the new path
81+
Pandora._clear()
82+
Pandora.load_data()
83+
84+
assert_array(Pandora.get_all_entities()).is_not_empty()
85+
86+
assert_bool(FileAccess.file_exists(PandoraSettings.get_data_path())).is_true()
87+
88+
89+
# Clean up
90+
DirAccess.remove_absolute(new_path)
91+
DirAccess.remove_absolute(new_path.get_base_dir())
92+
93+
PandoraSettings.set_data_path("res://data.pandora")
94+
assert_str(PandoraSettings.get_data_path()).is_equal("res://data.pandora")
95+
96+
Pandora._storage = PandoraJsonDataStorage.new(PandoraSettings.get_data_path().get_base_dir())
97+
98+
Pandora._clear()
99+
Pandora.load_data()

0 commit comments

Comments
 (0)