62 lines
1.3 KiB
Lua
62 lines
1.3 KiB
Lua
return function()
|
|
local Roact = require(script.Parent.Parent.Roact)
|
|
local Rodux = require(script.Parent.Parent.Rodux)
|
|
|
|
local StoreProvider = require(script.Parent.StoreProvider)
|
|
|
|
local getStore = require(script.Parent.getStore)
|
|
|
|
it("should return the store when present", function()
|
|
local function reducer()
|
|
return 0
|
|
end
|
|
|
|
local store = Rodux.Store.new(reducer)
|
|
local consumedStore = nil
|
|
|
|
local StoreConsumer = Roact.Component:extend("StoreConsumer")
|
|
|
|
function StoreConsumer:init()
|
|
consumedStore = getStore(self)
|
|
end
|
|
|
|
function StoreConsumer:render()
|
|
return nil
|
|
end
|
|
|
|
local tree = Roact.createElement(StoreProvider, {
|
|
store = store,
|
|
}, {
|
|
Consumer = Roact.createElement(StoreConsumer),
|
|
})
|
|
|
|
local handle = Roact.mount(tree)
|
|
|
|
expect(consumedStore).to.equal(store)
|
|
|
|
Roact.unmount(handle)
|
|
store:destruct()
|
|
end)
|
|
|
|
it("should return nil when the store is not present", function()
|
|
-- Use a non-nil value to know for sure if StoreConsumer:init was called
|
|
local consumedStore = 6
|
|
|
|
local StoreConsumer = Roact.Component:extend("StoreConsumer")
|
|
|
|
function StoreConsumer:init()
|
|
consumedStore = getStore(self)
|
|
end
|
|
|
|
function StoreConsumer:render()
|
|
return nil
|
|
end
|
|
|
|
local tree = Roact.createElement(StoreConsumer)
|
|
local handle = Roact.mount(tree)
|
|
|
|
expect(consumedStore).to.equal(nil)
|
|
|
|
Roact.unmount(handle)
|
|
end)
|
|
end |