chore: sync from fn-registry agent
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
// E2E tests for chart_demo — Dear ImGui Test Engine.
|
||||
// Built only when -DFN_BUILD_TESTS=ON. The same main.cpp from chart_demo is
|
||||
// compiled here with FN_TEST_BUILD defined so its int main() is excluded and
|
||||
// only render() is reused.
|
||||
|
||||
#include "app_base.h"
|
||||
#include "imgui.h"
|
||||
#include "imgui_te_engine.h"
|
||||
#include "imgui_te_context.h"
|
||||
|
||||
void render(); // defined in chart_demo/main.cpp
|
||||
|
||||
static void register_tests(ImGuiTestEngine* e) {
|
||||
ImGuiTest* t = nullptr;
|
||||
|
||||
// Smoke test: the main window appears and is non-empty.
|
||||
t = IM_REGISTER_TEST(e, "chart_demo", "smoke_window_visible");
|
||||
t->TestFunc = [](ImGuiTestContext* ctx) {
|
||||
ctx->SetRef("fn_registry \xe2\x80\x94 Chart Demo"); // em-dash
|
||||
IM_CHECK(ctx->WindowInfo("").ID != 0);
|
||||
};
|
||||
|
||||
// Cycle through all four tabs. Test engine fails the test if any tab item
|
||||
// is not found or cannot be activated — that is our implicit assertion.
|
||||
t = IM_REGISTER_TEST(e, "chart_demo", "tabs_cycle_all");
|
||||
t->TestFunc = [](ImGuiTestContext* ctx) {
|
||||
ctx->SetRef("fn_registry \xe2\x80\x94 Chart Demo");
|
||||
ctx->ItemClick("##charts/Line Plot");
|
||||
ctx->ItemClick("##charts/Scatter Plot");
|
||||
ctx->ItemClick("##charts/Bar Chart");
|
||||
ctx->ItemClick("##charts/Heatmap");
|
||||
};
|
||||
}
|
||||
|
||||
int main() {
|
||||
fn::AppConfig cfg{};
|
||||
cfg.title = "chart_demo_tests";
|
||||
cfg.width = 1280;
|
||||
cfg.height = 800;
|
||||
return fn::run_app_test(cfg, render, register_tests);
|
||||
}
|
||||
Reference in New Issue
Block a user