mirror of
https://github.com/littensy/charm.git
synced 2026-10-20 17:51:37 +00:00
* refactor!: create monorepo * chore: prepare release, set up workflows * refactor: rename `modules` to `src` * docs: add docs for all packages * refactor: rename root project file * chore: bump deps * build: rename `lint`, add `pack` script * revert: delete pack script This will not be useful for development.
36 lines
856 B
Text
36 lines
856 B
Text
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
|
|
|
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
|
local atom = Charm.atom
|
|
local Vide = require(ReplicatedStorage.DevPackages.Vide)
|
|
local root = Vide.root
|
|
local VideCharm = require(ReplicatedStorage.DevPackages.VideCharm)
|
|
local useAtom = VideCharm.useAtom
|
|
|
|
return function()
|
|
it("tracks atom state", function()
|
|
local state = atom(0)
|
|
local source
|
|
local cleanup = root(function()
|
|
source = useAtom(state)
|
|
end)
|
|
expect(source()).to.equal(0)
|
|
state(1)
|
|
expect(source()).to.equal(1)
|
|
cleanup()
|
|
end)
|
|
|
|
it("accepts a molecule", function()
|
|
local state = atom(0)
|
|
local source
|
|
local cleanup = root(function()
|
|
source = useAtom(function()
|
|
return 2 * state()
|
|
end)
|
|
end)
|
|
expect(source()).to.equal(0)
|
|
state(1)
|
|
expect(source()).to.equal(2)
|
|
cleanup()
|
|
end)
|
|
end
|