Skip to content

Commit c188380

Browse files
authored
CRE SDK: Add std test for time interpretation (#1835)
1 parent 421e13b commit c188380

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

pkg/workflows/wasm/host/standard_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,27 @@ func TestStandardSecretsFailInNodeMode(t *testing.T) {
502502
require.Contains(t, errStr, "cannot use Runtime inside RunInNodeMode")
503503
}
504504

505+
func TestStandardTimeInterpretation(t *testing.T) {
506+
t.Parallel()
507+
mockExecutionHelper := NewMockExecutionHelper(t)
508+
mockExecutionHelper.EXPECT().GetWorkflowExecutionID().Return("id")
509+
// Inject fixed timestamp: 1577934245000 milliseconds = 2020-01-02T03:04:05Z
510+
fixedTime := time.UnixMilli(1577934245000)
511+
mockExecutionHelper.EXPECT().GetDONTime().RunAndReturn(func() (time.Time, error) {
512+
return fixedTime, nil
513+
}).Maybe()
514+
mockExecutionHelper.EXPECT().GetNodeTime().RunAndReturn(func() time.Time {
515+
return time.Now()
516+
}).Maybe()
517+
518+
m := makeTestModule(t)
519+
request := triggerExecuteRequest(t, 0, &basictrigger.Outputs{CoolOutput: anyTestTriggerValue})
520+
result := executeWithResult[string](t, m, request, mockExecutionHelper)
521+
522+
// Assert exact ISO 8601 UTC string
523+
require.Equal(t, "2020-01-02T03:04:05Z", result)
524+
}
525+
505526
func triggerExecuteRequest(t *testing.T, id uint64, trigger proto.Message) *sdk.ExecuteRequest {
506527
wrappedTrigger, err := anypb.New(trigger)
507528
require.NoError(t, err)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package main
2+
3+
import (
4+
"github.com/smartcontractkit/chainlink-common/pkg/workflows/wasm/host/internal/rawsdk"
5+
"github.com/smartcontractkit/chainlink-protos/cre/go/sdk"
6+
)
7+
8+
func main() {
9+
rawsdk.SwitchModes(int32(sdk.Mode_MODE_DON))
10+
11+
t := rawsdk.Now()
12+
13+
isoString := t.UTC().Format("2006-01-02T15:04:05Z07:00")
14+
15+
rawsdk.SendResponse(isoString)
16+
}

0 commit comments

Comments
 (0)