Workflow instance should be accessible in test environment for simple assertion
Is your feature request related to a problem? Please describe. I would like to write unit tests on workflow code, and would like to access workflow for assertions in test env.
eg.
class WorkflowImpl implements Workflow {
public String value = "something";
//// more workflow code
}
and the value is updated in the workflow code. I would like to add access the values.
Currently there is no easy way to access the workflow object, as we simply register workflow class as type
Describe the solution you'd like I would like to access the workflow object at any point in time for test env, and it should provide me an object of workflow with latest state of workflow.
Like
var workflowImpl = (WorkflowImpl) testWorkflowClient.getWorkflowObject("workflowId", "workflowRunId");
assertThat(workflowImpl.value, is("some-assertion-value"));
Describe alternatives you've considered The other method we have considered is to add a QueryMethod in the workflow but we don't want to add QueryMethod in production code at all.
We can surely do it for tests as well as mentioned at https://temporalio.slack.com/archives/CTT84KXK9/p1747167261307199?thread_ts=1747086843.705119&cid=CTT84KXK9, but it can cause issues when you have multiple variables, and adding QueryMethod for each a lot, and managing QueryMethod for testing can be cumbersome.
Additional context Discussed this previously at Github - https://temporalio.slack.com/archives/CTT84KXK9/p1747086843705119