mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-05-01 01:05:00 +00:00
90 lines
2.7 KiB
Lua
90 lines
2.7 KiB
Lua
-- Stats calculation tests for audit_log package
|
|
local stats = require("stats")
|
|
|
|
describe("Audit Log Stats Module", function()
|
|
describe("calculateStats", function()
|
|
it("should calculate stats from empty logs", function()
|
|
local logs = {}
|
|
local result = stats.calculateStats(logs)
|
|
|
|
expect(result.total).toBe(0)
|
|
expect(result.successful).toBe(0)
|
|
expect(result.failed).toBe(0)
|
|
expect(result.rateLimit).toBe(0)
|
|
end)
|
|
|
|
it("should calculate stats from successful logs", function()
|
|
local logs = {
|
|
{ success = true },
|
|
{ success = true },
|
|
{ success = true }
|
|
}
|
|
local result = stats.calculateStats(logs)
|
|
|
|
expect(result.total).toBe(3)
|
|
expect(result.successful).toBe(3)
|
|
expect(result.failed).toBe(0)
|
|
expect(result.rateLimit).toBe(0)
|
|
end)
|
|
|
|
it("should calculate stats from failed logs", function()
|
|
local logs = {
|
|
{ success = false, error = "Permission denied" },
|
|
{ success = false, error = "Not found" }
|
|
}
|
|
local result = stats.calculateStats(logs)
|
|
|
|
expect(result.total).toBe(2)
|
|
expect(result.successful).toBe(0)
|
|
expect(result.failed).toBe(2)
|
|
expect(result.rateLimit).toBe(0)
|
|
end)
|
|
|
|
it("should calculate stats from rate limited logs", function()
|
|
local logs = {
|
|
{ success = false, error = "Rate limit exceeded" },
|
|
{ success = false, error = "Rate limit exceeded" }
|
|
}
|
|
local result = stats.calculateStats(logs)
|
|
|
|
expect(result.total).toBe(2)
|
|
expect(result.successful).toBe(0)
|
|
expect(result.failed).toBe(0)
|
|
expect(result.rateLimit).toBe(2)
|
|
end)
|
|
|
|
it("should calculate mixed stats", function()
|
|
local logs = {
|
|
{ success = true },
|
|
{ success = false, error = "Permission denied" },
|
|
{ success = false, error = "Rate limit exceeded" },
|
|
{ success = true }
|
|
}
|
|
local result = stats.calculateStats(logs)
|
|
|
|
expect(result.total).toBe(4)
|
|
expect(result.successful).toBe(2)
|
|
expect(result.failed).toBe(1)
|
|
expect(result.rateLimit).toBe(1)
|
|
end)
|
|
end)
|
|
|
|
describe("prepareStatsDisplay", function()
|
|
it("should format stats for display", function()
|
|
local stats_data = {
|
|
total = 100,
|
|
successful = 75,
|
|
failed = 20,
|
|
rateLimit = 5
|
|
}
|
|
local result = stats.prepareStatsDisplay(stats_data)
|
|
|
|
expect(result).toBeTruthy()
|
|
expect(result.total).toBe(100)
|
|
expect(result.successful).toBe(75)
|
|
expect(result.failed).toBe(20)
|
|
expect(result.rateLimit).toBe(5)
|
|
end)
|
|
end)
|
|
end)
|