Clients/Client2018/content/internal/AppShell/Modules/Shell/Reducers/PrivilegeSettingsState.spec...

51 lines
1.9 KiB
Lua

return function()
local PrivilegeSettingsStateReducer = require(script.Parent.PrivilegeSettingsState)
local Actions = script.Parent.Parent.Actions
local FetchPrivilegeSettings = require(Actions.FetchPrivilegeSettings)
local SetPrivilegeSettings = require(Actions.SetPrivilegeSettings)
describe("initial state", function()
it("should return an initial table when passed nil", function()
local state = PrivilegeSettingsStateReducer(nil, {})
expect(state).to.be.a("table")
end)
end)
describe("Action FetchPrivilegeSettings", function()
it("should set isRequesting to true in the store", function()
local action = FetchPrivilegeSettings()
local state = PrivilegeSettingsStateReducer({}, action)
expect(state).to.be.a("table")
expect(state.isRequesting).to.equal(true)
end)
end)
describe("Action SetPrivilegeSettings", function()
it("should set privilege settings, lastUpdated and reset isRequesting to false in the store", function()
local action = SetPrivilegeSettings({Multiplayer = {}, SharedContent = {}, timestamp = tick()})
local state = PrivilegeSettingsStateReducer({}, action)
expect(state).to.be.a("table")
expect(state.Multiplayer).to.be.a("table")
expect(state.SharedContent).to.be.a("table")
expect(state.lastUpdated).to.be.a("number")
expect(state.isRequesting).to.equal(false)
end)
it("should set privilege settings, lastUpdated to nil and reset isRequesting to nil when SetPrivilegeSettings with nil", function()
local action = SetPrivilegeSettings({Multiplayer = {}, SharedContent = {}, timestamp = tick()})
local state = PrivilegeSettingsStateReducer({}, action)
action = SetPrivilegeSettings()
state = PrivilegeSettingsStateReducer(state, action)
expect(state).to.be.a("table")
expect(state.Multiplayer).never.to.be.ok()
expect(state.SharedContent).never.to.be.ok()
expect(state.lastUpdated).never.to.be.ok()
expect(state.isRequesting).never.to.be.ok()
end)
end)
end