45 lines
1.6 KiB
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 |