ocal expectedErrorsReported = {

[“test”] = {
data = 2.33,
count = 3,
},
[“test2”] = {
data = 123,
count = 2,
},
[“test3”] = {
data = “something”,
count = 1,
},
}
local errorsReported = {}
local reportCount = 0
local reportMethod = function(errorKey, errorData, errorCount)
reportCount = reportCount + 1
errorsReported[errorKey] = {
data = errorData,
count = errorCount,
}
end
local errorQueue = ErrorQueue.new(reportMethod, {
queueTimeLimit = 0.5,
queueErrorLimit = 100,
queueKeyLimit = 100,
})
errorQueue:startTimer()
for _, error in ipairs(errorsToAdd) do
errorQueue:addError(error.key, error.value)
end
errorQueue:_onRenderStep(0.5)
expect(reportCount).to.equal(3)
for errorKey, expectedError in pairs(expectedErrorsReported) do
expect(tutils.deepEqual(expectedError, errorsReported[errorKey])).to.equal(true)
end
errorQueue:stopTimer()
end)
it(“should not report errors before the total time limit is reached”, function()
local errorsReported = {}
local reportCount = 0
local reportMethod = function(errorKey, errorData, errorCount)
reportCount = reportCount + 1
errorsReported[errorKey] = {
data = errorData,
count = errorCount,
}
end
local errorQueue = ErrorQueue.new(reportMethod, {
queueTimeLimit = 2,
queueErrorLimit = 100,
queueKeyLimit = 100,
})
errorQueue:startTimer()
for _, error in ipairs(errorsToAdd) do
errorQueue:addError(error.key, error.value)
end
errorQueue:_onRenderStep(1)
expect(reportCount).to.equal(0)
expect(tutils.deepEqual(errorsReported, {})).to.equal(true)
errorQueue:stopTimer()
end)
end)
describe(“reportAllErrors”, function()
it(“should report all errors correctly when called”, function()
local expectedErrorsReported = {
[“test”] = {
data = 2.33,
count = 3,
},
[“test2”] = {
data = 123,
count = 2,
},
[“test3”] = {
data = “something”,
count = 1,
},
}
local errorsReported = {}
local reportCount = 0
local reportMethod = function(errorKey, errorData, errorCount)
reportCount = reportCount + 1
errorsReported[errorKey] = {
data = errorData,
count = errorCount,
}
end
local errorQueue = ErrorQueue.new(reportMethod, {
queueTimeLimit = 100,
queueErrorLimit = 100,
queueKeyLimit = 100,
})
errorQueue:startTimer()
for _, error in ipairs(errorsToAdd) do
errorQueue:addError(error.key, error.value)
end
expect(reportCount).to.equal(0)
errorQueue:report