diff tests/test_storage.nim @ 1464:3e3192241ea7

add: API for world/level storage
author sam <sam@basx.dev>
date Mon, 24 Mar 2025 22:57:47 +0700
parents 676fc13685a9
children 7b2ec9f3d0f6
line wrap: on
line diff
--- a/tests/test_storage.nim	Mon Mar 24 00:15:08 2025 +0700
+++ b/tests/test_storage.nim	Mon Mar 24 22:57:47 2025 +0700
@@ -14,6 +14,28 @@
   store(storage, KEY, TEST_VALUE)
   assert storage.load(KEY, 0) == TEST_VALUE
 
+proc testWorldAPI() =
+  assert listWorlds().len == 0
+
+  "testWorld".storeWorld(42)
+  assert listWorlds() == @["testWorld"]
+  assert loadWorld[int]("testWorld") == 42
+
+  "testWorld".storeWorld("hello")
+  assert listWorlds() == @["testWorld"]
+  assert loadWorld[string]("testWorld") == "hello"
+
+  "earth".storeWorld("hello")
+  assert "earth" in listWorlds()
+  assert "testWorld" in listWorlds()
+  assert loadWorld[string]("earth") == "hello"
+
+  "earth".purgeWorld()
+  assert listWorlds() == @["testWorld"]
+
+  "testWorld".purgeWorld()
+  assert listWorlds().len == 0
+
 proc stressTest(storage: StorageType) =
   for i in 1 .. 10000:
     let key = &"key-{i}"
@@ -30,6 +52,9 @@
   echo "UserStorage: Testing simple store/load"
   UserStorage.testSimple()
 
+  echo "Testing world-storage API"
+  testWorldAPI()
+
   echo "Stress test with 10'000 saves/loads"
   SystemStorage.stressTest()