@@ -7,11 +7,12 @@ extends GdUnitTestSuite
77
88# TestSuite generated from
99const __source = 'res://addons/pandora/settings/pandora_settings.gd'
10-
10+ const TEST_DIR = "testdata"
1111
1212const IDType := PandoraSettings .IDType
1313
1414const SETTING_ID_TYPE := PandoraSettings .SETTING_ID_TYPE
15+ const SETTING_PANDORA_DATA_PATH := PandoraSettings .SETTING_PANDORA_DATA_PATH
1516
1617
1718func 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