1
1
/* eslint-disable @typescript-eslint/no-non-null-assertion */
2
2
import { v4 as uuid4 } from 'uuid' ;
3
3
import { coresdk } from '@temporalio/proto' ;
4
+ import { msStrToTs } from '@temporalio/workflow/commonjs/time' ;
4
5
import { defaultDataConverter } from '@temporalio/workflow/commonjs/converter/data-converter' ;
5
6
import {
6
7
Worker as RealWorker ,
@@ -11,6 +12,22 @@ import {
11
12
} from '@temporalio/worker/lib/worker' ;
12
13
import { sleep } from '@temporalio/worker/lib/utils' ;
13
14
15
+ function addActivityStartDefaults ( task : coresdk . activity_task . IActivityTask ) {
16
+ // Add some defaults for convenience
17
+ if ( task . start ) {
18
+ task . start = {
19
+ attempt : 1 ,
20
+ startedTime : msStrToTs ( '0 seconds' ) ,
21
+ currentAttemptScheduledTime : msStrToTs ( '0 seconds' ) ,
22
+ startToCloseTimeout : msStrToTs ( '1 minute' ) ,
23
+ scheduleToCloseTimeout : msStrToTs ( '1 minute' ) ,
24
+ heartbeatTimeout : msStrToTs ( '1 minute' ) ,
25
+ scheduledTime : msStrToTs ( '0 seconds' ) ,
26
+ ...task . start ,
27
+ } ;
28
+ }
29
+ }
30
+
14
31
export type Task =
15
32
| { workflow : coresdk . workflow_activation . IWFActivation }
16
33
| { activity : coresdk . activity_task . IActivityTask } ;
@@ -72,6 +89,7 @@ export class MockNativeWorker implements NativeWorkerLike {
72
89
const buffer = arr . buffer . slice ( arr . byteOffset , arr . byteOffset + arr . byteLength ) ;
73
90
this . workflowActivations . unshift ( Promise . resolve ( buffer ) ) ;
74
91
} else {
92
+ addActivityStartDefaults ( task . activity ) ;
75
93
const arr = coresdk . activity_task . ActivityTask . encode ( task . activity ) . finish ( ) ;
76
94
const buffer = arr . buffer . slice ( arr . byteOffset , arr . byteOffset + arr . byteLength ) ;
77
95
this . activityTasks . unshift ( Promise . resolve ( buffer ) ) ;
@@ -92,6 +110,7 @@ export class MockNativeWorker implements NativeWorkerLike {
92
110
}
93
111
94
112
public async runActivityTask ( task : coresdk . activity_task . IActivityTask ) : Promise < coresdk . ActivityTaskCompletion > {
113
+ addActivityStartDefaults ( task ) ;
95
114
const arr = coresdk . activity_task . ActivityTask . encode ( task ) . finish ( ) ;
96
115
const buffer = arr . buffer . slice ( arr . byteOffset , arr . byteOffset + arr . byteLength ) ;
97
116
const result = await new Promise < ArrayBuffer > ( ( resolve ) => {
0 commit comments