add gs
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
return function()
|
||||
local createReducer = require(script.Parent.createReducer)
|
||||
|
||||
it("should handle actions", function()
|
||||
local reducer = createReducer({
|
||||
a = 0,
|
||||
b = 0,
|
||||
}, {
|
||||
a = function(state, action)
|
||||
return {
|
||||
a = state.a + 1,
|
||||
b = state.b,
|
||||
}
|
||||
end,
|
||||
b = function(state, action)
|
||||
return {
|
||||
a = state.a,
|
||||
b = state.b + 2,
|
||||
}
|
||||
end,
|
||||
})
|
||||
|
||||
local newState = reducer({
|
||||
a = 0,
|
||||
b = 0,
|
||||
}, {
|
||||
type = "a",
|
||||
})
|
||||
|
||||
expect(newState.a).to.equal(1)
|
||||
|
||||
newState = reducer(newState, {
|
||||
type = "b",
|
||||
})
|
||||
|
||||
expect(newState.b).to.equal(2)
|
||||
end)
|
||||
|
||||
it("should return the initial state if the state is nil", function()
|
||||
local reducer = createReducer({
|
||||
a = 0,
|
||||
b = 0,
|
||||
-- We don't care about the actions here
|
||||
}, {})
|
||||
|
||||
local newState = reducer(nil, {})
|
||||
expect(newState).to.be.ok()
|
||||
expect(newState.a).to.equal(0)
|
||||
expect(newState.b).to.equal(0)
|
||||
end)
|
||||
|
||||
it("should return the same state if the action is not handled", function()
|
||||
local initialState = {
|
||||
a = 0,
|
||||
b = 0,
|
||||
}
|
||||
|
||||
local reducer = createReducer(initialState, {
|
||||
a = function(state, action)
|
||||
return {
|
||||
a = state.a + 1,
|
||||
b = state.b,
|
||||
}
|
||||
end,
|
||||
b = function(state, action)
|
||||
return {
|
||||
a = state.a,
|
||||
b = state.b + 2,
|
||||
}
|
||||
end,
|
||||
})
|
||||
|
||||
local newState = reducer(initialState, {
|
||||
type = "c",
|
||||
})
|
||||
|
||||
expect(newState).to.equal(initialState)
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user