test: use lute for tests

This commit is contained in:
littensy 2025-12-01 17:29:39 -08:00
parent 72b290219d
commit a20ee3698a
47 changed files with 190 additions and 236 deletions

View file

@ -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)

View file

@ -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

View file

@ -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 {}

View file

@ -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)

View file

@ -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)

View file

@ -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 {}

View file

@ -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),

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -1,5 +1,5 @@
local Charm = require("../")
local suite = require("../../../../test/suite")
local test = require("../../../../tests/test")
type ReactiveProxy<T = any> = Charm.ReactiveProxy<T>
@ -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<T>(value: T): { value: T? }
return setmetatable({ value = value }, { __mode = "v" }) :: any

View file

@ -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 {}

View file

@ -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)

View file

@ -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 })

View file

@ -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 })

View file

@ -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)

View file

@ -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 } } })

View file

@ -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 = {}

View file

@ -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 {}

View file

@ -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)

View file

@ -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()

View file

@ -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)

View file

@ -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)

View file

@ -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 {}

View file

@ -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 {}

View file

@ -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)

View file

@ -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)

View file

@ -0,0 +1,7 @@
local test = require("../../../tests/test")
test.describe("useSignalState", function()
require("@self/useSignalState.test")
end)
return {}

View file

@ -1,7 +0,0 @@
local suite = require("../../../../test/suite")
suite.describe("useSignalState", function()
require("./useSignalState.spec")
end)
return {}

View file

@ -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)