Clients/Client2018/content/internal/AppShell/Modules/Shell/Reducers/ErrorHandler.spec.lua

45 lines
1.6 KiB
Lua

return function()
local ErrorHandler = require(script.Parent.ErrorHandler)
local Actions = script.Parent.Parent.Actions
local AddError = require(Actions.AddError)
local DeleteError = require(Actions.DeleteError)
describe("initial state", function()
it("should return an initial table when passed nil", function()
local state = ErrorHandler(nil, {})
expect(state).to.be.a("table")
end)
end)
describe("Action AddError", function()
it("should add the error to the errormap when an action with error dispatched", function()
local Modules = game:GetService("CoreGui").RobloxGui.Modules
local ShellModules = Modules:FindFirstChild("Shell")
local Errors = require(ShellModules:FindFirstChild('Errors'))
local DefaultError = Errors.Default
local action = AddError(DefaultError, tick())
local state = ErrorHandler(nil, action)
expect(state).to.be.a("table")
expect(state:Length()).to.equal(1)
expect(state:First()).to.equal(action.error)
end)
end)
describe("Action DeleteError", function()
it("should delete the corresponding error in the errormap when DeleteError", function()
local Modules = game:GetService("CoreGui").RobloxGui.Modules
local ShellModules = Modules:FindFirstChild("Shell")
local Errors = require(ShellModules:FindFirstChild('Errors'))
local DefaultError = Errors.Default
local action = AddError(DefaultError, tick())
local state = ErrorHandler(nil, action)
action = DeleteError(action.error)
state = ErrorHandler(state, action)
expect(state).to.be.a("table")
expect(state:Length()).to.equal(0)
end)
end)
end