diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index af91488..de90279 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,10 +15,10 @@ jobs: - uses: CompeyDev/setup-rokit@v0.1.2 - name: Check code quality - run: sh bin/check.sh + run: pnpm check - name: Run tests - run: lune run test/spec.server.luau + run: pnpm test - name: Build models - run: sh bin/build.sh + run: pnpm build diff --git a/.gitmodules b/.gitmodules index e1cba9d..409278b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "test/suite"] - path = test/suite +[submodule "tests/test"] + path = tests/test url = https://gist.github.com/littensy/fa9afcc5d66d25e86538634982be4ee4 diff --git a/.luaurc b/.luaurc index 4c8043d..c56c621 100644 --- a/.luaurc +++ b/.luaurc @@ -1,6 +1,10 @@ { - "languageMode": "strict", - "lint": { - "LocalShadow": false - } -} + "languageMode": "strict", + "aliases": { + "lute": "~/.lute/typedefs/0.1.0/lute", + "std": "~/.lute/typedefs/0.1.0/std" + }, + "lint": { + "LocalShadow": false + } +} \ No newline at end of file diff --git a/.lute/build.luau b/.lute/build.luau new file mode 100644 index 0000000..29ef585 --- /dev/null +++ b/.lute/build.luau @@ -0,0 +1,6 @@ +local fs = require("@std/fs") +local process = require("@lute/process") + +fs.createdirectory("build") + +process.run({ "rojo", "build", "--output=build/charm.rbxm" }, { stdio = "inherit" }) diff --git a/.lute/check.luau b/.lute/check.luau new file mode 100644 index 0000000..2eed288 --- /dev/null +++ b/.lute/check.luau @@ -0,0 +1,30 @@ +local fs = require("@std/fs") +local net = require("@lute/net") +local process = require("@lute/process") + +process.run({ "rojo", "sourcemap", "--output=sourcemap.json" }, { stdio = "inherit" }) + +fs.writestringtofile( + "roblox.d.luau", + net.request("https://luau-lsp.pages.dev/globalTypes.None.d.luau", { method = "GET" }).body +) + +process.run({ + "luau-lsp", + "analyze", + "--sourcemap=sourcemap.json", + "--ignore=**/node_modules/**", + "--base-luaurc=.luaurc", + "--defs=roblox.d.luau", + "packages", + "tests", + "benches", +}, { stdio = "inherit" }) + +fs.remove("roblox.d.luau") + +process.run({ "selene", "packages", "tests", "benches" }, { stdio = "inherit" }) + +process.run({ "stylua", "--check", "packages", "tests", "benches" }, { stdio = "inherit" }) + +process.run({ "pnpm", "eslint", "packages" }, { stdio = "inherit" }) diff --git a/.lute/test.luau b/.lute/test.luau new file mode 100644 index 0000000..4abbbb9 --- /dev/null +++ b/.lute/test.luau @@ -0,0 +1 @@ +(require)("../tests/run.server") diff --git a/bin/build.sh b/bin/build.sh deleted file mode 100644 index f680537..0000000 --- a/bin/build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -mkdir build -rojo build build.project.json -o build/charm.rbxm diff --git a/bin/check.sh b/bin/check.sh deleted file mode 100644 index 091c4a4..0000000 --- a/bin/check.sh +++ /dev/null @@ -1,19 +0,0 @@ -curl -o bin/roblox.d.luau https://raw.githubusercontent.com/JohnnyMorganz/luau-lsp/main/scripts/globalTypes.d.luau - -rojo sourcemap -o sourcemap.json - -luau-lsp analyze \ - --defs=bin/roblox.d.luau \ - --flag:LuauFixIndexerSubtypingOrdering=true \ - --flag:LuauInstantiateInSubtyping=true \ - --sourcemap=sourcemap.json \ - --ignore="**/node_modules/**" \ - packages test benches - -selene packages test benches - -stylua --check packages test benches - -pnpm eslint packages - -rm bin/roblox.d.luau diff --git a/default.project.json b/default.project.json index 43a7d1a..e59761d 100644 --- a/default.project.json +++ b/default.project.json @@ -43,8 +43,8 @@ "@rbxts-js": { "$path": "node_modules/@rbxts-js" }, - "test": { - "$path": "test" + "tests": { + "$path": "tests" } } } diff --git a/package.json b/package.json index b9b8739..9c00145 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "private": true, "scripts": { - "test": "lune run test/spec.server.luau", - "build": "sh bin/build.sh", - "check": "sh bin/check.sh", + "test": "lute run test", + "build": "lute run build", + "check": "lute run check", "publish:npm": "pnpm publish -r --access public", "publish:wally": "pnpm -r --workspace-concurrency 1 publish:wally" }, diff --git a/packages/charm-sync/src/__tests__/client.spec.luau b/packages/charm-sync/src/__tests__/client.test.luau similarity index 96% rename from packages/charm-sync/src/__tests__/client.spec.luau rename to packages/charm-sync/src/__tests__/client.test.luau index 10164a2..3e16d9e 100644 --- a/packages/charm-sync/src/__tests__/client.spec.luau +++ b/packages/charm-sync/src/__tests__/client.test.luau @@ -1,11 +1,8 @@ local Charm = require("../../Charm") local client = require("../client") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") -local test = suite.test -local afterEach = suite.afterEach - -afterEach(function() +test.afterEach(function() client.removeAllSignals() end) diff --git a/packages/charm-sync/src/__tests__/e2e.spec.luau b/packages/charm-sync/src/__tests__/e2e.test.luau similarity index 95% rename from packages/charm-sync/src/__tests__/e2e.spec.luau rename to packages/charm-sync/src/__tests__/e2e.test.luau index d8da3aa..bbc4720 100644 --- a/packages/charm-sync/src/__tests__/e2e.spec.luau +++ b/packages/charm-sync/src/__tests__/e2e.test.luau @@ -2,12 +2,9 @@ local Charm = require("../../Charm") local client = require("../client") local config = require("../config") local server = require("../server") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") -local afterEach = suite.afterEach -local test = suite.test - -afterEach(function() +test.afterEach(function() server.reset() client.removeAllSignals() config.preserveHistory = false diff --git a/packages/charm-sync/src/__tests__/init.luau b/packages/charm-sync/src/__tests__/init.luau new file mode 100644 index 0000000..6f2f540 --- /dev/null +++ b/packages/charm-sync/src/__tests__/init.luau @@ -0,0 +1,23 @@ +local test = require("../../../tests/test") + +test.describe("client", function() + require("@self/client.test") +end) + +test.describe("e2e", function() + require("@self/e2e.test") +end) + +test.describe("utils", function() + require("@self/utils.test") +end) + +test.describe("patch", function() + require("@self/patch.test") +end) + +test.describe("server", function() + require("@self/server.test") +end) + +return {} diff --git a/packages/charm-sync/src/__tests__/patch.spec.luau b/packages/charm-sync/src/__tests__/patch.test.luau similarity index 97% rename from packages/charm-sync/src/__tests__/patch.spec.luau rename to packages/charm-sync/src/__tests__/patch.test.luau index 7ce89c2..bb86bdb 100644 --- a/packages/charm-sync/src/__tests__/patch.spec.luau +++ b/packages/charm-sync/src/__tests__/patch.test.luau @@ -1,9 +1,6 @@ local config = require("../config") local patch = require("../patch") -local suite = require("../../../../test/suite") - -local test = suite.test -local afterEach = suite.afterEach +local test = require("../../../../tests/test") local function mockArraySerdes(object: {}): {} if object[1] then @@ -23,7 +20,7 @@ local function mockArraySerdes(object: {}): {} end end -afterEach(function() +test.afterEach(function() config.fixArrays = true config.validatePatches = true end) diff --git a/packages/charm-sync/src/__tests__/server.spec.luau b/packages/charm-sync/src/__tests__/server.test.luau similarity index 98% rename from packages/charm-sync/src/__tests__/server.spec.luau rename to packages/charm-sync/src/__tests__/server.test.luau index 034fc54..0a99b09 100644 --- a/packages/charm-sync/src/__tests__/server.spec.luau +++ b/packages/charm-sync/src/__tests__/server.test.luau @@ -2,14 +2,9 @@ local Charm = require("../../Charm") local config = require("../config") local patch = require("../patch") local server = require("../server") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") -local afterEach = suite.afterEach -local beforeEach = suite.beforeEach -local describe = suite.describe -local test = suite.test - -afterEach(function() +test.afterEach(function() server.reset() end) @@ -252,12 +247,12 @@ test("should not send unchanged state", function() assert(#payloads == 0, "Expected no payloads to be sent for unchanged state") end) -describe("historical", function() - beforeEach(function() +test.describe("historical", function() + test.beforeEach(function() config.preserveHistory = true end) - afterEach(function() + test.afterEach(function() config.preserveHistory = false end) diff --git a/packages/charm-sync/src/__tests__/spec.luau b/packages/charm-sync/src/__tests__/spec.luau deleted file mode 100644 index 8d07f04..0000000 --- a/packages/charm-sync/src/__tests__/spec.luau +++ /dev/null @@ -1,23 +0,0 @@ -local suite = require("../../../../test/suite") - -suite.describe("client", function() - require("./client.spec") -end) - -suite.describe("e2e", function() - require("./e2e.spec") -end) - -suite.describe("utils", function() - require("./utils.spec") -end) - -suite.describe("patch", function() - require("./patch.spec") -end) - -suite.describe("server", function() - require("./server.spec") -end) - -return {} diff --git a/packages/charm-sync/src/__tests__/utils.spec.luau b/packages/charm-sync/src/__tests__/utils.test.luau similarity index 89% rename from packages/charm-sync/src/__tests__/utils.spec.luau rename to packages/charm-sync/src/__tests__/utils.test.luau index 47d2e39..f3a37ff 100644 --- a/packages/charm-sync/src/__tests__/utils.spec.luau +++ b/packages/charm-sync/src/__tests__/utils.test.luau @@ -1,9 +1,7 @@ local Charm = require("../../Charm") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local utils = require("../utils") -local test = suite.test - test("should flatten functions", function() local input = { a = Charm.atom(0), diff --git a/packages/charm/src/__tests__/computed.spec.luau b/packages/charm/src/__tests__/computed.test.luau similarity index 96% rename from packages/charm/src/__tests__/computed.spec.luau rename to packages/charm/src/__tests__/computed.test.luau index 3dd7284..691a7d9 100644 --- a/packages/charm/src/__tests__/computed.spec.luau +++ b/packages/charm/src/__tests__/computed.test.luau @@ -1,10 +1,9 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local computed = Charm.computed local effect = Charm.effect local signal = Charm.signal -local test = suite.test test("should correctly propagate changes through computed core", function() local src, setSrc = signal(0) diff --git a/packages/charm/src/__tests__/effect.spec.luau b/packages/charm/src/__tests__/effect.test.luau similarity index 99% rename from packages/charm/src/__tests__/effect.spec.luau rename to packages/charm/src/__tests__/effect.test.luau index 56fe9c1..b142ec8 100644 --- a/packages/charm/src/__tests__/effect.spec.luau +++ b/packages/charm/src/__tests__/effect.test.luau @@ -1,5 +1,5 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local computed = Charm.computed local effect = Charm.effect @@ -10,7 +10,6 @@ local recursive = Charm.recursive local setActiveSub = Charm.setActiveSub local signal = Charm.signal local startBatch = Charm.startBatch -local test = suite.test test("should clear subscriptions when untracked by all subscribers", function() local bRunTimes = 0 diff --git a/packages/charm/src/__tests__/effectScope.spec.luau b/packages/charm/src/__tests__/effectScope.test.luau similarity index 96% rename from packages/charm/src/__tests__/effectScope.spec.luau rename to packages/charm/src/__tests__/effectScope.test.luau index c484151..3367f79 100644 --- a/packages/charm/src/__tests__/effectScope.spec.luau +++ b/packages/charm/src/__tests__/effectScope.test.luau @@ -1,11 +1,10 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local effect = Charm.effect local effectScope = Charm.effectScope local signal = Charm.signal local onCleanup = Charm.onCleanup -local test = suite.test test("should not trigger after stop", function() local count, setCount = signal(1) diff --git a/packages/charm/src/__tests__/gc.spec.luau b/packages/charm/src/__tests__/gc.test.luau similarity index 97% rename from packages/charm/src/__tests__/gc.spec.luau rename to packages/charm/src/__tests__/gc.test.luau index d74196e..b0517b1 100644 --- a/packages/charm/src/__tests__/gc.spec.luau +++ b/packages/charm/src/__tests__/gc.test.luau @@ -1,5 +1,5 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") type ReactiveProxy = Charm.ReactiveProxy @@ -8,7 +8,6 @@ local computed = Charm.computed local effect = Charm.effect local effectScope = Charm.effectScope local reactive = Charm.reactive -local test = suite.test local function weakRef(value: T): { value: T? } return setmetatable({ value = value }, { __mode = "v" }) :: any diff --git a/packages/charm/src/__tests__/init.luau b/packages/charm/src/__tests__/init.luau new file mode 100644 index 0000000..90d8983 --- /dev/null +++ b/packages/charm/src/__tests__/init.luau @@ -0,0 +1,26 @@ +local test = require("../../../tests/test") + +local tests = { + "computed", + "effect", + "effectScope", + "gc", + "listen", + "mapped", + "observe", + "peek", + "reactive", + "signal", + "subscribe", + "topology", + "trigger", + "untracked", +} + +for _, name in tests do + test.describe(name, function() + (require)(`@self/{name}.test`) + end) +end + +return {} diff --git a/packages/charm/src/__tests__/listen.spec.luau b/packages/charm/src/__tests__/listen.test.luau similarity index 97% rename from packages/charm/src/__tests__/listen.spec.luau rename to packages/charm/src/__tests__/listen.test.luau index f3098d1..fc5626e 100644 --- a/packages/charm/src/__tests__/listen.spec.luau +++ b/packages/charm/src/__tests__/listen.test.luau @@ -1,10 +1,9 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local signal = Charm.signal local listen = Charm.listen local effect = Charm.effect -local test = suite.test test("should listen to selector", function() local source, setSource = signal(0) diff --git a/packages/charm/src/__tests__/mapped.spec.luau b/packages/charm/src/__tests__/mapped.test.luau similarity index 97% rename from packages/charm/src/__tests__/mapped.spec.luau rename to packages/charm/src/__tests__/mapped.test.luau index b812aea..dea2867 100644 --- a/packages/charm/src/__tests__/mapped.spec.luau +++ b/packages/charm/src/__tests__/mapped.test.luau @@ -1,9 +1,8 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local signal = Charm.signal local mapped = Charm.mapped -local test = suite.test test("should map state", function() local src, setSrc = signal({ 1, 2, 3 }) diff --git a/packages/charm/src/__tests__/observe.spec.luau b/packages/charm/src/__tests__/observe.test.luau similarity index 98% rename from packages/charm/src/__tests__/observe.spec.luau rename to packages/charm/src/__tests__/observe.test.luau index f308477..00386c0 100644 --- a/packages/charm/src/__tests__/observe.spec.luau +++ b/packages/charm/src/__tests__/observe.test.luau @@ -1,12 +1,11 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local signal = Charm.signal local computed = Charm.computed local effect = Charm.effect local effectScope = Charm.effectScope local observe = Charm.observe -local test = suite.test test("should observe items", function() local items, setItems = signal({ 0, 0, 0 }) diff --git a/packages/charm/src/__tests__/peek.spec.luau b/packages/charm/src/__tests__/peek.test.luau similarity index 97% rename from packages/charm/src/__tests__/peek.spec.luau rename to packages/charm/src/__tests__/peek.test.luau index b786135..8699c7a 100644 --- a/packages/charm/src/__tests__/peek.spec.luau +++ b/packages/charm/src/__tests__/peek.test.luau @@ -1,11 +1,10 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local signal = Charm.signal local computed = Charm.computed local effect = Charm.effect local peek = Charm.peek -local test = suite.test test("should not run detached", function() local a, setA = signal(1) diff --git a/packages/charm/src/__tests__/reactive.spec.luau b/packages/charm/src/__tests__/reactive.test.luau similarity index 98% rename from packages/charm/src/__tests__/reactive.spec.luau rename to packages/charm/src/__tests__/reactive.test.luau index a2c2d0c..3e5b221 100644 --- a/packages/charm/src/__tests__/reactive.spec.luau +++ b/packages/charm/src/__tests__/reactive.test.luau @@ -1,10 +1,9 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local effect = Charm.effect local reactive = Charm.reactive local toRaw = Charm.toRaw -local test = suite.test test("should track nested properties", function() local src, setSrc = reactive({ a = { b = { c = 0 } } }) diff --git a/packages/charm/src/__tests__/signal.spec.luau b/packages/charm/src/__tests__/signal.test.luau similarity index 94% rename from packages/charm/src/__tests__/signal.spec.luau rename to packages/charm/src/__tests__/signal.test.luau index a9693f6..32ff5cd 100644 --- a/packages/charm/src/__tests__/signal.spec.luau +++ b/packages/charm/src/__tests__/signal.test.luau @@ -1,9 +1,8 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local signal = Charm.signal local effect = Charm.effect -local test = suite.test test("should accept equality function", function() local calls = {} diff --git a/packages/charm/src/__tests__/spec.luau b/packages/charm/src/__tests__/spec.luau deleted file mode 100644 index 17dd1f2..0000000 --- a/packages/charm/src/__tests__/spec.luau +++ /dev/null @@ -1,46 +0,0 @@ -local suite = require("../../../../test/suite") - -suite.describe("computed", function() - require("./computed.spec") -end) -suite.describe("effect", function() - require("./effect.spec") -end) -suite.describe("effectScope", function() - require("./effectScope.spec") -end) -suite.describe("gc", function() - require("./gc.spec") -end) -suite.describe("listen", function() - require("./listen.spec") -end) -suite.describe("mapped", function() - require("./mapped.spec") -end) -suite.describe("observe", function() - require("./observe.spec") -end) -suite.describe("peek", function() - require("./peek.spec") -end) -suite.describe("reactive", function() - require("./reactive.spec") -end) -suite.describe("signal", function() - require("./signal.spec") -end) -suite.describe("subscribe", function() - require("./subscribe.spec") -end) -suite.describe("topology", function() - require("./topology.spec") -end) -suite.describe("trigger", function() - require("./trigger.spec") -end) -suite.describe("untracked", function() - require("./untracked.spec") -end) - -return {} diff --git a/packages/charm/src/__tests__/subscribe.spec.luau b/packages/charm/src/__tests__/subscribe.test.luau similarity index 97% rename from packages/charm/src/__tests__/subscribe.spec.luau rename to packages/charm/src/__tests__/subscribe.test.luau index 938931b..c1bce81 100644 --- a/packages/charm/src/__tests__/subscribe.spec.luau +++ b/packages/charm/src/__tests__/subscribe.test.luau @@ -1,12 +1,11 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local signal = Charm.signal local computed = Charm.computed local subscribe = Charm.subscribe local listen = Charm.listen local effect = Charm.effect -local test = suite.test test("should subscribe to selector", function() local source, setSource = signal(0) diff --git a/packages/charm/src/__tests__/topology.spec.luau b/packages/charm/src/__tests__/topology.test.luau similarity index 98% rename from packages/charm/src/__tests__/topology.spec.luau rename to packages/charm/src/__tests__/topology.test.luau index 6f1e1e0..95e20a5 100644 --- a/packages/charm/src/__tests__/topology.spec.luau +++ b/packages/charm/src/__tests__/topology.test.luau @@ -1,11 +1,9 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local atom = Charm.atom local computed = Charm.computed local effect = Charm.effect -local describe = suite.describe -local test = suite.test --[[ Tests adopted with thanks from preact-core implementation at @@ -34,7 +32,7 @@ local test = suite.test SOFTWARE ]] -describe("graph updates", function() +test.describe("graph updates", function() test("should drop A->B->A updates", function() -- A -- / | @@ -441,7 +439,7 @@ describe("graph updates", function() end) end) -describe("error handling", function() +test.describe("error handling", function() test("should keep graph consistent on errors during activation", function() local a = atom(0) local b = computed(function() diff --git a/packages/charm/src/__tests__/trigger.spec.luau b/packages/charm/src/__tests__/trigger.test.luau similarity index 91% rename from packages/charm/src/__tests__/trigger.spec.luau rename to packages/charm/src/__tests__/trigger.test.luau index d0b1938..eb73ed9 100644 --- a/packages/charm/src/__tests__/trigger.spec.luau +++ b/packages/charm/src/__tests__/trigger.test.luau @@ -1,20 +1,17 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local computed = Charm.computed local effect = Charm.effect local signal = Charm.signal local subscribe = Charm.subscribe local trigger = Charm.trigger -local test = suite.test -local beforeEach = suite.beforeEach -local afterEach = suite.afterEach -beforeEach(function() +test.beforeEach(function() Charm.flags.frozen = false end) -afterEach(function() +test.afterEach(function() Charm.flags.frozen = true end) diff --git a/packages/charm/src/__tests__/untracked.spec.luau b/packages/charm/src/__tests__/untracked.test.luau similarity index 98% rename from packages/charm/src/__tests__/untracked.spec.luau rename to packages/charm/src/__tests__/untracked.test.luau index d4bfc4c..05ff894 100644 --- a/packages/charm/src/__tests__/untracked.spec.luau +++ b/packages/charm/src/__tests__/untracked.test.luau @@ -1,12 +1,11 @@ local Charm = require("../") -local suite = require("../../../../test/suite") +local test = require("../../../../tests/test") local signal = Charm.signal local computed = Charm.computed local effect = Charm.effect local effectScope = Charm.effectScope local untracked = Charm.untracked -local test = suite.test test("should run detached from effect", function() local a, setA = signal(1) diff --git a/packages/react-charm/src/__tests__/init.luau b/packages/react-charm/src/__tests__/init.luau new file mode 100644 index 0000000..fc7e258 --- /dev/null +++ b/packages/react-charm/src/__tests__/init.luau @@ -0,0 +1,11 @@ +local test = require("../../../tests/test") + +test.describe("useSignalState", function() + require("@self/useSignalState.test") +end) + +test.describe("useSignalBinding", function() + require("@self/useSignalBinding.test") +end) + +return {} diff --git a/packages/react-charm/src/__tests__/spec.luau b/packages/react-charm/src/__tests__/spec.luau deleted file mode 100644 index 69f078a..0000000 --- a/packages/react-charm/src/__tests__/spec.luau +++ /dev/null @@ -1,11 +0,0 @@ -local suite = require("../../../../test/suite") - -suite.describe("useSignalState", function() - require("./useSignalState.spec") -end) - -suite.describe("useSignalBinding", function() - require("./useSignalBinding.spec") -end) - -return {} diff --git a/packages/react-charm/src/__tests__/useSignalBinding.spec.luau b/packages/react-charm/src/__tests__/useSignalBinding.test.luau similarity index 94% rename from packages/react-charm/src/__tests__/useSignalBinding.spec.luau rename to packages/react-charm/src/__tests__/useSignalBinding.test.luau index 1ad6df3..3d4e856 100644 --- a/packages/react-charm/src/__tests__/useSignalBinding.spec.luau +++ b/packages/react-charm/src/__tests__/useSignalBinding.test.luau @@ -1,9 +1,7 @@ local Charm = require("../../Charm") local ReactCharm = require("../") local renderHook = require("./helpers/renderHook") -local suite = require("../../../../test/suite") - -local test = suite.test +local test = require("../../../../tests/test") test("tracks signal state", function() local getState, setState = Charm.signal(0) diff --git a/packages/react-charm/src/__tests__/useSignalState.spec.luau b/packages/react-charm/src/__tests__/useSignalState.test.luau similarity index 94% rename from packages/react-charm/src/__tests__/useSignalState.spec.luau rename to packages/react-charm/src/__tests__/useSignalState.test.luau index ca22e49..bb28579 100644 --- a/packages/react-charm/src/__tests__/useSignalState.spec.luau +++ b/packages/react-charm/src/__tests__/useSignalState.test.luau @@ -1,9 +1,7 @@ local Charm = require("../../Charm") local ReactCharm = require("../") local renderHook = require("./helpers/renderHook") -local suite = require("../../../../test/suite") - -local test = suite.test +local test = require("../../../../tests/test") test("tracks signal state", function() local getState, setState = Charm.signal(0) diff --git a/packages/vide-charm/src/__tests__/init.luau b/packages/vide-charm/src/__tests__/init.luau new file mode 100644 index 0000000..ae62c24 --- /dev/null +++ b/packages/vide-charm/src/__tests__/init.luau @@ -0,0 +1,7 @@ +local test = require("../../../tests/test") + +test.describe("useSignalState", function() + require("@self/useSignalState.test") +end) + +return {} diff --git a/packages/vide-charm/src/__tests__/spec.luau b/packages/vide-charm/src/__tests__/spec.luau deleted file mode 100644 index 79a4998..0000000 --- a/packages/vide-charm/src/__tests__/spec.luau +++ /dev/null @@ -1,7 +0,0 @@ -local suite = require("../../../../test/suite") - -suite.describe("useSignalState", function() - require("./useSignalState.spec") -end) - -return {} diff --git a/packages/vide-charm/src/__tests__/useSignalState.spec.luau b/packages/vide-charm/src/__tests__/useSignalState.test.luau similarity index 95% rename from packages/vide-charm/src/__tests__/useSignalState.spec.luau rename to packages/vide-charm/src/__tests__/useSignalState.test.luau index 6d13460..4fd624e 100644 --- a/packages/vide-charm/src/__tests__/useSignalState.spec.luau +++ b/packages/vide-charm/src/__tests__/useSignalState.test.luau @@ -1,9 +1,7 @@ local Charm = require("../../Charm") local Vide = require("../../Vide") local VideCharm = require("../") -local suite = require("../../../../test/suite") - -local test = suite.test +local test = require("../../../../tests/test") test("tracks signal state", function() local getState, setState = Charm.signal(0) diff --git a/rokit.toml b/rokit.toml index 17f523d..d110a91 100644 --- a/rokit.toml +++ b/rokit.toml @@ -1,13 +1,7 @@ -# This file lists tools managed by Rokit, a toolchain manager for Roblox projects. -# For more information, see https://github.com/rojo-rbx/rokit - -# New tools can be added by running `rokit add ` in a terminal. - [tools] wally = "UpliftGames/wally@0.3.2" rojo = "rojo-rbx/rojo@7.6.1" stylua = "johnnymorganz/stylua@2.3.1" selene = "Kampfkarren/selene@0.29.0" -luau-lsp = "johnnymorganz/luau-lsp@1.56.2" -lune = "lune-org/lune@0.10.4" -lute = "luau-lang/lute@0.1.0-nightly.20251119" +luau-lsp = "johnnymorganz/luau-lsp@1.57.1" +lute = "luau-lang/lute@0.1.0-nightly.20251127" diff --git a/selene.toml b/selene.toml index 1b04ccf..5a029a0 100644 --- a/selene.toml +++ b/selene.toml @@ -1,6 +1,7 @@ -std = "selene_defs" +std = "roblox" exclude = ["*/node_modules/*"] [lints] global_usage = "allow" shadowing = "allow" +incorrect_standard_library_use = "allow" diff --git a/selene_defs.yml b/selene_defs.yml deleted file mode 100644 index 89d1377..0000000 --- a/selene_defs.yml +++ /dev/null @@ -1,6 +0,0 @@ -base: roblox -name: selene_defs -globals: - require: - args: - - type: string diff --git a/test/spec.server.luau b/test/spec.server.luau deleted file mode 100644 index dfb6d0b..0000000 --- a/test/spec.server.luau +++ /dev/null @@ -1,23 +0,0 @@ -local Charm = require("../packages/charm/src") -local suite = require("./suite") - -Charm.flags.strict = true -Charm.flags.frozen = true - -suite.describe("charm", function() - require("../packages/charm/src/__tests__/spec") -end) - -suite.describe("charm-sync", function() - require("../packages/charm-sync/src/__tests__/spec") -end) - -suite.describe.ingame("react-charm", function() - require("../packages/react-charm/src/__tests__/spec") -end) - -suite.describe.ingame("vide-charm", function() - require("../packages/vide-charm/src/__tests__/spec") -end) - -suite.finish() diff --git a/test/suite b/test/suite deleted file mode 160000 index eb95781..0000000 --- a/test/suite +++ /dev/null @@ -1 +0,0 @@ -Subproject commit eb95781a86e505cb6bff83ca568a67c7295ebb38 diff --git a/tests/run.server.luau b/tests/run.server.luau new file mode 100644 index 0000000..ee943e0 --- /dev/null +++ b/tests/run.server.luau @@ -0,0 +1,29 @@ +local Charm = require("../packages/charm/src") +local test = require("./test") + +Charm.flags.strict = true +Charm.flags.frozen = true + +local describeInRoblox = test.describeIf(function() + return game :: any ~= nil +end) + +test.describe("charm", function() + require("../packages/charm/src/__tests__") +end) + +test.describe("charm-sync", function() + require("../packages/charm-sync/src/__tests__") +end) + +describeInRoblox("react-charm", function() + require("../packages/react-charm/src/__tests__") +end) + +describeInRoblox("vide-charm", function() + require("../packages/vide-charm/src/__tests__") +end) + +test.finish() + +return {} diff --git a/tests/test b/tests/test new file mode 160000 index 0000000..7ef2b88 --- /dev/null +++ b/tests/test @@ -0,0 +1 @@ +Subproject commit 7ef2b88191af884d543e7392d50c7e2adc484e32