1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2025-01-26 03:52:00 +02:00
RedMew/utils/gui_tests.lua
RedRafe 4b040d1048
Add admin panel (#1432)
* Add admin panel
2024-09-02 21:32:20 +01:00

52 lines
2.0 KiB
Lua

local Declare = require 'utils.test.declare'
local Gui = require 'utils.gui'
local Assert = require 'utils.test.assert'
local Helper = require 'utils.test.helper'
Declare.module({'utils', 'Gui'}, function()
Declare.module('can toggle top buttons', function()
local function count_gui_elements(player)
-- local gui = player.gui
-- return #gui.top.children + #gui.left.children + #gui.center.children + #gui.screen.children
return #Gui.get_top_flow(player).children + #Gui.get_left_flow(player).children + #player.gui.center.children + #player.gui.screen.children
end
local function is_ignored_element(element)
local tooltip = element.tooltip
if type(tooltip) == 'table' and tooltip[1] == 'evolution_progress.tooltip' then
return true
end
return false
end
for _, name in pairs(Gui._top_elements) do
Declare.test(Gui.names and Gui.names[name] or name, function(context)
local player = context.player
local element = Gui.get_top_flow(player)[name]
if not element.enabled or is_ignored_element(element) then
return
end
local click_action = function()
Helper.click(element)
end
local before_count = count_gui_elements(player)
-- Open
click_action()
local after_open_count = count_gui_elements(player)
Assert.is_true(after_open_count > before_count, 'after open count should be greater than before count.')
-- Close
context:next(click_action):next(function()
local after_close_count = count_gui_elements(player)
Assert.equal(before_count, after_close_count, 'after close count should be equal to before count.')
end)
end)
end
end)
end)