Skip to content

Commit 0eb0314

Browse files
committed
more comprehensive tests
1 parent 364035b commit 0eb0314

File tree

3 files changed

+69
-18
lines changed

3 files changed

+69
-18
lines changed

backend/test/backendtest.go

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -343,24 +343,6 @@ func BackendTest(t *testing.T, setup func(options ...backend.BackendOption) Test
343343
require.Nil(t, task)
344344
},
345345
},
346-
{
347-
name: "Stats_ActiveWorkflowInstances",
348-
f: func(t *testing.T, ctx context.Context, b backend.Backend) {
349-
instanceID := uuid.NewString()
350-
351-
err := b.CreateWorkflowInstance(
352-
ctx,
353-
core.NewWorkflowInstance(instanceID, uuid.NewString()),
354-
history.NewHistoryEvent(1, time.Now(), history.EventType_WorkflowExecutionStarted, &history.ExecutionStartedAttributes{}),
355-
)
356-
require.NoError(t, err)
357-
358-
s, err := b.GetStats(ctx)
359-
require.NoError(t, err)
360-
361-
require.Equal(t, int64(1), s.ActiveWorkflowInstances)
362-
},
363-
},
364346
}
365347

366348
for _, tt := range tests {

backend/test/e2e.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,7 @@ func EndToEndBackendTest(t *testing.T, setup func(options ...backend.BackendOpti
662662
}
663663

664664
tests = append(tests, e2eActivityTests...)
665+
tests = append(tests, e2eStatsTests...)
665666

666667
run := func(suffix string, workerOptions *worker.Options) {
667668
for _, tt := range tests {

backend/test/e2e_stats.go

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package test
2+
3+
import (
4+
"context"
5+
"testing"
6+
"time"
7+
8+
"github.com/cschleiden/go-workflows/client"
9+
"github.com/cschleiden/go-workflows/worker"
10+
"github.com/cschleiden/go-workflows/workflow"
11+
"github.com/stretchr/testify/require"
12+
)
13+
14+
var e2eStatsTests = []backendTest{
15+
{
16+
name: "Stats_ActiveInstance",
17+
f: func(t *testing.T, ctx context.Context, c client.Client, w worker.Worker, b TestBackend) {
18+
as := make(chan bool, 1)
19+
af := make(chan bool, 1)
20+
21+
a := func(ctx context.Context) error {
22+
as <- true
23+
<-af
24+
25+
return nil
26+
}
27+
wf := func(ctx workflow.Context) (bool, error) {
28+
workflow.ExecuteActivity[any](ctx, workflow.DefaultActivityOptions, a).Get(ctx)
29+
30+
workflow.NewSignalChannel[any](ctx, "test-signal").Receive(ctx)
31+
32+
return true, nil
33+
}
34+
register(t, ctx, w, []interface{}{wf}, []interface{}{a})
35+
36+
s, err := b.GetStats(ctx)
37+
require.NoError(t, err)
38+
require.Equal(t, int64(0), s.ActiveWorkflowInstances)
39+
require.Equal(t, int64(0), s.PendingActivities)
40+
41+
wfi := runWorkflow(t, ctx, c, wf)
42+
43+
s, err = b.GetStats(ctx)
44+
require.NoError(t, err)
45+
require.Equal(t, int64(1), s.ActiveWorkflowInstances)
46+
47+
<-as
48+
49+
s, err = b.GetStats(ctx)
50+
require.NoError(t, err)
51+
require.Equal(t, int64(1), s.ActiveWorkflowInstances)
52+
require.Equal(t, int64(1), s.PendingActivities)
53+
54+
af <- true
55+
56+
err = c.SignalWorkflow(ctx, wfi.InstanceID, "test-signal", nil)
57+
require.NoError(t, err)
58+
59+
err = c.WaitForWorkflowInstance(ctx, wfi, time.Second*10)
60+
require.NoError(t, err)
61+
62+
s, err = b.GetStats(ctx)
63+
require.NoError(t, err)
64+
require.Equal(t, int64(0), s.ActiveWorkflowInstances)
65+
require.Equal(t, int64(0), s.PendingActivities)
66+
},
67+
},
68+
}

0 commit comments

Comments
 (0)