yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::cli::TestWorkflowGenerator Class Reference

Generates GUI test workflows from natural language prompts. More...

#include <test_workflow_generator.h>

Public Member Functions

 TestWorkflowGenerator ()=default
 
absl::StatusOr< TestWorkflowGenerateWorkflow (const std::string &prompt)
 Generate a test workflow from a natural language prompt.
 

Private Member Functions

bool MatchesOpenEditor (const std::string &prompt, std::string *editor_name)
 
bool MatchesOpenAndVerify (const std::string &prompt, std::string *editor_name)
 
bool MatchesTypeInput (const std::string &prompt, std::string *input_name, std::string *text)
 
bool MatchesClickButton (const std::string &prompt, std::string *button_name)
 
bool MatchesMultiStep (const std::string &prompt)
 
TestWorkflow BuildOpenEditorWorkflow (const std::string &editor_name)
 
TestWorkflow BuildOpenAndVerifyWorkflow (const std::string &editor_name)
 
TestWorkflow BuildTypeInputWorkflow (const std::string &input_name, const std::string &text)
 
TestWorkflow BuildClickButtonWorkflow (const std::string &button_name)
 
std::string NormalizeEditorName (const std::string &name)
 

Detailed Description

Generates GUI test workflows from natural language prompts.

This class uses pattern matching to convert user prompts into structured test workflows that can be executed by GuiAutomationClient.

Example prompts:

  • "Open Overworld editor" → Click button, Wait for window
  • "Open Dungeon editor and verify it loads" → Click, Wait, Assert
  • "Type 'zelda3.sfc' in filename input" → Click input, Type text

Usage:

auto workflow = generator.GenerateWorkflow("Open Overworld editor");
if (!workflow.ok()) return workflow.status();
for (const auto& step : workflow->steps) {
std::cout << step.ToString() << "\n";
}
Generates GUI test workflows from natural language prompts.
absl::StatusOr< TestWorkflow > GenerateWorkflow(const std::string &prompt)
Generate a test workflow from a natural language prompt.

Definition at line 72 of file test_workflow_generator.h.

Constructor & Destructor Documentation

◆ TestWorkflowGenerator()

yaze::cli::TestWorkflowGenerator::TestWorkflowGenerator ( )
default

Member Function Documentation

◆ GenerateWorkflow()

absl::StatusOr< TestWorkflow > yaze::cli::TestWorkflowGenerator::GenerateWorkflow ( const std::string &  prompt)

Generate a test workflow from a natural language prompt.

Parameters
promptNatural language description of desired GUI actions
Returns
TestWorkflow or error if prompt is unsupported

◆ MatchesOpenEditor()

bool yaze::cli::TestWorkflowGenerator::MatchesOpenEditor ( const std::string &  prompt,
std::string *  editor_name 
)
private

◆ MatchesOpenAndVerify()

bool yaze::cli::TestWorkflowGenerator::MatchesOpenAndVerify ( const std::string &  prompt,
std::string *  editor_name 
)
private

◆ MatchesTypeInput()

bool yaze::cli::TestWorkflowGenerator::MatchesTypeInput ( const std::string &  prompt,
std::string *  input_name,
std::string *  text 
)
private

◆ MatchesClickButton()

bool yaze::cli::TestWorkflowGenerator::MatchesClickButton ( const std::string &  prompt,
std::string *  button_name 
)
private

◆ MatchesMultiStep()

bool yaze::cli::TestWorkflowGenerator::MatchesMultiStep ( const std::string &  prompt)
private

◆ BuildOpenEditorWorkflow()

TestWorkflow yaze::cli::TestWorkflowGenerator::BuildOpenEditorWorkflow ( const std::string &  editor_name)
private

◆ BuildOpenAndVerifyWorkflow()

TestWorkflow yaze::cli::TestWorkflowGenerator::BuildOpenAndVerifyWorkflow ( const std::string &  editor_name)
private

◆ BuildTypeInputWorkflow()

TestWorkflow yaze::cli::TestWorkflowGenerator::BuildTypeInputWorkflow ( const std::string &  input_name,
const std::string &  text 
)
private

◆ BuildClickButtonWorkflow()

TestWorkflow yaze::cli::TestWorkflowGenerator::BuildClickButtonWorkflow ( const std::string &  button_name)
private

◆ NormalizeEditorName()

std::string yaze::cli::TestWorkflowGenerator::NormalizeEditorName ( const std::string &  name)
private

The documentation for this class was generated from the following file: