Skip to content

Commit ed108fa

Browse files
committed
Use workflow Workflow and Activity types
1 parent 9c81e75 commit ed108fa

File tree

4 files changed

+20
-22
lines changed

4 files changed

+20
-22
lines changed

internal/workflow/registry.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,20 @@ import (
77

88
"github.com/cschleiden/go-workflows/internal/args"
99
"github.com/cschleiden/go-workflows/internal/fn"
10+
wf "github.com/cschleiden/go-workflows/workflow"
1011
)
1112

12-
type Activity interface{}
13-
1413
type Registry struct {
1514
sync.Mutex
1615

17-
workflowMap map[string]Workflow
16+
workflowMap map[string]wf.Workflow
1817
activityMap map[string]interface{}
1918
}
2019

2120
func NewRegistry() *Registry {
2221
return &Registry{
2322
Mutex: sync.Mutex{},
24-
workflowMap: make(map[string]Workflow),
23+
workflowMap: make(map[string]wf.Workflow),
2524
activityMap: make(map[string]interface{}),
2625
}
2726
}
@@ -42,7 +41,7 @@ func (e *ErrInvalidActivity) Error() string {
4241
return e.msg
4342
}
4443

45-
func (r *Registry) RegisterWorkflowByName(name string, workflow Workflow) error {
44+
func (r *Registry) RegisterWorkflowByName(name string, workflow wf.Workflow) error {
4645
wfType := reflect.TypeOf(workflow)
4746
if wfType.Kind() != reflect.Func {
4847
return &ErrInvalidWorkflow{"workflow is not a function"}
@@ -78,7 +77,7 @@ func (r *Registry) RegisterWorkflowByName(name string, workflow Workflow) error
7877
return nil
7978
}
8079

81-
func (r *Registry) RegisterWorkflow(workflow Workflow) error {
80+
func (r *Registry) RegisterWorkflow(workflow wf.Workflow) error {
8281
name := fn.Name(workflow)
8382
return r.RegisterWorkflowByName(name, workflow)
8483
}
@@ -150,7 +149,7 @@ func checkActivity(actType reflect.Type) error {
150149
return nil
151150
}
152151

153-
func (r *Registry) GetWorkflow(name string) (Workflow, error) {
152+
func (r *Registry) GetWorkflow(name string) (wf.Workflow, error) {
154153
r.Lock()
155154
defer r.Unlock()
156155

internal/workflow/registry_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/cschleiden/go-workflows/internal/fn"
88
"github.com/cschleiden/go-workflows/internal/sync"
9+
wf "github.com/cschleiden/go-workflows/workflow"
910
"github.com/stretchr/testify/require"
1011
)
1112

@@ -16,7 +17,7 @@ func reg_workflow1(ctx sync.Context) error {
1617
func TestRegistry_RegisterWorkflow(t *testing.T) {
1718
type args struct {
1819
name string
19-
workflow Workflow
20+
workflow wf.Workflow
2021
}
2122
tests := []struct {
2223
name string

internal/workflow/workflow.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import (
1212
"github.com/cschleiden/go-workflows/internal/workflowerrors"
1313
)
1414

15-
type Workflow interface{}
16-
1715
type workflow struct {
1816
s *sync.Scheduler
1917
fn reflect.Value

tester/tester.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ import (
2424
"github.com/cschleiden/go-workflows/internal/fn"
2525
"github.com/cschleiden/go-workflows/internal/log"
2626
"github.com/cschleiden/go-workflows/internal/signals"
27-
"github.com/cschleiden/go-workflows/internal/workflow"
27+
wf "github.com/cschleiden/go-workflows/internal/workflow"
2828
"github.com/cschleiden/go-workflows/internal/workflowerrors"
29-
wf "github.com/cschleiden/go-workflows/workflow"
29+
"github.com/cschleiden/go-workflows/workflow"
3030
"github.com/google/uuid"
3131
"github.com/stretchr/testify/mock"
3232
"go.opentelemetry.io/otel/trace"
@@ -80,7 +80,7 @@ type WorkflowTester[TResult any] interface {
8080

8181
Execute(ctx context.Context, args ...interface{})
8282

83-
Registry() *workflow.Registry
83+
Registry() *wf.Registry
8484

8585
OnActivity(activity workflow.Activity, args ...interface{}) *mock.Call
8686

@@ -125,7 +125,7 @@ type workflowTester[TResult any] struct {
125125
workflowResult payload.Payload
126126
workflowErr *workflowerrors.Error
127127

128-
registry *workflow.Registry
128+
registry *wf.Registry
129129

130130
ma *mock.Mock
131131
mockedActivities map[string]bool
@@ -158,13 +158,13 @@ type workflowTester[TResult any] struct {
158158

159159
converter converter.Converter
160160

161-
propagators []wf.ContextPropagator
161+
propagators []workflow.ContextPropagator
162162
}
163163

164164
var _ WorkflowTester[any] = (*workflowTester[any])(nil)
165165

166-
func NewWorkflowTester[TResult any](wf interface{}, opts ...WorkflowTesterOption) *workflowTester[TResult] {
167-
if err := margs.ReturnTypeMatch[TResult](wf); err != nil {
166+
func NewWorkflowTester[TResult any](workflow workflow.Workflow, opts ...WorkflowTesterOption) *workflowTester[TResult] {
167+
if err := margs.ReturnTypeMatch[TResult](workflow); err != nil {
168168
panic(fmt.Sprintf("workflow return type does not match: %s", err))
169169
}
170170

@@ -173,7 +173,7 @@ func NewWorkflowTester[TResult any](wf interface{}, opts ...WorkflowTesterOption
173173
c.Set(time.Now())
174174

175175
wfi := core.NewWorkflowInstance(uuid.NewString(), uuid.NewString())
176-
registry := workflow.NewRegistry()
176+
registry := wf.NewRegistry()
177177

178178
options := &options{
179179
TestTimeout: time.Second * 10,
@@ -190,7 +190,7 @@ func NewWorkflowTester[TResult any](wf interface{}, opts ...WorkflowTesterOption
190190
wt := &workflowTester[TResult]{
191191
options: options,
192192

193-
wf: wf,
193+
wf: workflow,
194194
wfi: wfi,
195195
wfm: &metadata.WorkflowMetadata{},
196196
registry: registry,
@@ -223,7 +223,7 @@ func NewWorkflowTester[TResult any](wf interface{}, opts ...WorkflowTesterOption
223223
registry.RegisterActivity(signalActivities)
224224

225225
// Always register the workflow under test
226-
if err := wt.registry.RegisterWorkflow(wf); err != nil {
226+
if err := wt.registry.RegisterWorkflow(workflow); err != nil {
227227
panic(fmt.Sprintf("could not register workflow under test: %v", err))
228228
}
229229

@@ -234,7 +234,7 @@ func (wt *workflowTester[TResult]) Now() time.Time {
234234
return wt.clock.Now()
235235
}
236236

237-
func (wt *workflowTester[TResult]) Registry() *workflow.Registry {
237+
func (wt *workflowTester[TResult]) Registry() *wf.Registry {
238238
return wt.registry
239239
}
240240

@@ -313,7 +313,7 @@ func (wt *workflowTester[TResult]) Execute(ctx context.Context, args ...interfac
313313
tw.pendingEvents = tw.pendingEvents[:0]
314314

315315
// Execute task
316-
e, err := workflow.NewExecutor(wt.logger, wt.tracer, wt.registry, wt.converter, wt.propagators, &testHistoryProvider{tw.history}, tw.instance, tw.metadata, wt.clock)
316+
e, err := wf.NewExecutor(wt.logger, wt.tracer, wt.registry, wt.converter, wt.propagators, &testHistoryProvider{tw.history}, tw.instance, tw.metadata, wt.clock)
317317
if err != nil {
318318
panic(fmt.Errorf("could not create workflow executor: %v", err))
319319
}

0 commit comments

Comments
 (0)