Spaces:
Running
Running
Download studwright/tests.json from CyberMax-tools/cybermax: direct link, hf CLI and curl.
- Browser
- Download file 6.37 kB
-
https://huggingface.co/spaces/CyberMax-tools/cybermax/resolve/main/studwright/tests.json
- Command line
-
hf download hf://spaces/CyberMax-tools/cybermax/studwright/tests.json
-
curl -L -o tests.json https://huggingface.co/spaces/CyberMax-tools/cybermax/resolve/main/studwright/tests.json
6.37 kB
| { | |
| "pass": 66, | |
| "fail": 0, | |
| "runtime": "luau-web 1.4.0 (Luau compiled to WASM)", | |
| "tests": [ | |
| { | |
| "name": "core: Signal: Connect/Fire passes all arguments", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Signal: Once fires a single time", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Signal: Disconnect during Fire does not skip other handlers", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Signal: Wait yields until Fire and returns its values", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Signal: an erroring handler does not stop the others", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Signal: DisconnectAll", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Cleanup: cleans functions, connections, instances and tables in reverse order", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Cleanup: cancels a waiting thread", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Cleanup: AttachTo cleans when the instance is destroyed", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Format.abbreviate: suffixes and no false round-up", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Format.commas", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Format.clock and duration", | |
| "ok": true | |
| }, | |
| { | |
| "name": "core: Format.ordinal and percent", | |
| "ok": true | |
| }, | |
| { | |
| "name": "example: Example server: join, click, codes, daily, purchase, rebirth, leave, rejoin", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: new player gets a copy of the template", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: data survives leave and rejoin", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: session lock blocks a second server until the first releases", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: a stale lock from a crashed server is taken over", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: a server that lost its lock stops writing (no item duplication)", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: retries through DataStore outages", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: template reconcile adds new keys to old saves", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: migrations run in order once", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: autosave writes on the interval", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: shutdown releases every profile", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: player who leaves mid-load does not keep the lock", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: Erase and Peek", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: SaveData: saves are DataStore-safe (JSON round trip)", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: Receipts: grants once and saves before acknowledging", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: Receipts: player not in this server -> NotProcessedYet", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: Receipts: failed save -> NotProcessedYet, retry grants nothing extra", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: Receipts: grant that errors does not consume the purchase", | |
| "ok": true | |
| }, | |
| { | |
| "name": "savedata: Receipts: keeps only the last 100 purchase ids", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Codes: case/space-insensitive, once per player", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Codes: unknown, expired, level-gated and over-long codes", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Codes: brute-force throttle (5 tries / 30 s)", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Codes: a failing reward is not marked used", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: DailyRewards: streak grows day by day and cycles", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: DailyRewards: missing a day resets the streak, grace keeps it", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: DailyRewards: reset hour", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: PlaytimeRewards: gifts unlock on server time only", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: PlaytimeRewards: persist mode carries progress through a rejoin the same day", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Leaderboard: global top list, throttled submits, names", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Leaderboard: log encoding keeps huge values sortable", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Leaderboard: leaderstats folder mirrors profile data", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: LootTable: odds add up and match the weights", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: LootTable: 100,000 seeded rolls land within 1% of the odds", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: LootTable: luck boosts rare entries and Odds shows it", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: LootTable: pity guarantees the rarity after N misses", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Inventory: stacks, capacity and leftovers", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Inventory: remove is all-or-nothing and unequips at zero", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Inventory: saved shape survives a DataStore round trip", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Inventory: Changed fires with the new count", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Currency: multipliers, spend and cap", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Currency: rebirth cost grows, resets wallet and boosts earnings", | |
| "ok": true | |
| }, | |
| { | |
| "name": "systems: Currency: Changed signal reports delta", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: RemoteGuard: numbers reject NaN, inf and out-of-range", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: RemoteGuard: strings, enums, optional and booleans", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: RemoteGuard: arrays and shapes", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: RemoteGuard: token bucket rate limit per player", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: Cooldown: per player and action", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: Cooldown: export / import for long cooldowns", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: StateMachine: enter/exit order, allowed transitions, timers", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: StateMachine: a pending timer is cancelled by a manual change", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: Spring: critically damped settles without overshoot", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: Spring: underdamped overshoots, then settles; frame-rate independent", | |
| "ok": true | |
| }, | |
| { | |
| "name": "tools: Spring: overdamped is stable with huge steps", | |
| "ok": true | |
| } | |
| ] | |
| } | |