Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion examples/spec/integration/metadata_workflow_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@
workflow_id: workflow_id,
run_id: run_id,
)
expect(Time.now - actual_result.run_started_at).to be_between(0, 30)
# Lower bound is -1 to allow for clock skew between the dev server (Docker) and the host.
# Upper bound of 30s is generous slack for slow CI.
expect(Time.now - actual_result.run_started_at).to be_between(-1, 30)
end

it 'gets memo from workflow execution info' do
Expand Down
368 changes: 368 additions & 0 deletions examples/spec/replay/histories/signal_with_start_ignored_event.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,368 @@
{
"events": [
{
"eventId": "1",
"eventTime": "2024-05-28T02:46:26.852786129Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_STARTED",
"taskId": "31457280",
"workflowExecutionStartedEventAttributes": {
"workflowType": {
"name": "SignalWithStartWorkflow"
},
"taskQueue": {
"name": "general",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"input": {
"payloads": [
{
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "ImhpdCI="
}
]
},
"workflowExecutionTimeout": "30s",
"workflowRunTimeout": "30s",
"workflowTaskTimeout": "10s",
"originalExecutionRunId": "c6e8de96-4e18-409d-8e60-38d58f2f11b9",
"identity": "4514@DESKTOP-JRJDVRG\n",
"firstExecutionRunId": "c6e8de96-4e18-409d-8e60-38d58f2f11b9",
"attempt": 1,
"workflowExecutionExpirationTime": "2024-05-28T02:46:56.853Z",
"firstWorkflowTaskBackoff": "0s",
"memo": {
},
"searchAttributes": {
},
"header": {
}
}
},
{
"eventId": "2",
"eventTime": "2024-05-28T02:46:26.852896774Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_SIGNALED",
"taskId": "31457281",
"workflowExecutionSignaledEventAttributes": {
"signalName": "miss",
"input": {
"payloads": [
{
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "MQ=="
}
]
},
"identity": "4514@DESKTOP-JRJDVRG\n",
"header": {
}
}
},
{
"eventId": "3",
"eventTime": "2024-05-28T02:46:26.852900524Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "31457282",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "general",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "4",
"eventTime": "2024-05-28T02:46:26.873042948Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "31457287",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "3",
"identity": "4417@DESKTOP-JRJDVRG\n",
"requestId": "0074c78e-013b-4845-86d5-f83f1f6feb61",
"historySizeBytes": "421"
}
},
{
"eventId": "5",
"eventTime": "2024-05-28T02:46:26.896346434Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "31457291",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "3",
"startedEventId": "4",
"identity": "4417@DESKTOP-JRJDVRG\n",
"binaryChecksum": "07d96d88e3691440609a4f5de039969b14a4e6f8",
"sdkMetadata": {
"langUsedFlags": [
2
]
}
}
},
{
"eventId": "6",
"eventTime": "2024-05-28T02:46:27.869664722Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_SIGNALED",
"taskId": "31457294",
"workflowExecutionSignaledEventAttributes": {
"signalName": "miss",
"input": {
"payloads": [
{
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "Mg=="
}
]
},
"identity": "4514@DESKTOP-JRJDVRG\n"
}
},
{
"eventId": "7",
"eventTime": "2024-05-28T02:46:27.869669568Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "31457295",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "general",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "8",
"eventTime": "2024-05-28T02:46:27.881436143Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "31457298",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "7",
"identity": "4417@DESKTOP-JRJDVRG\n",
"requestId": "b1c0b0cd-cdb1-4bfd-973c-fa43eef6dfb5",
"historySizeBytes": "749"
}
},
{
"eventId": "9",
"eventTime": "2024-05-28T02:46:27.907949953Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "31457302",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "7",
"startedEventId": "8",
"identity": "4417@DESKTOP-JRJDVRG\n",
"binaryChecksum": "07d96d88e3691440609a4f5de039969b14a4e6f8"
}
},
{
"eventId": "10",
"eventTime": "2024-05-28T02:46:28.883578435Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_SIGNALED",
"taskId": "31457304",
"workflowExecutionSignaledEventAttributes": {
"signalName": "hit",
"input": {
"payloads": [
{
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "Mw=="
}
]
},
"identity": "4514@DESKTOP-JRJDVRG\n"
}
},
{
"eventId": "11",
"eventTime": "2024-05-28T02:46:28.883586706Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "31457305",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "general",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "12",
"eventTime": "2024-05-28T02:46:28.899268187Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "31457308",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "11",
"identity": "4417@DESKTOP-JRJDVRG\n",
"requestId": "4840d372-5d7f-46f0-af41-85c9fcac752d",
"historySizeBytes": "1071"
}
},
{
"eventId": "13",
"eventTime": "2024-05-28T02:46:28.925343005Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "31457312",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "11",
"startedEventId": "12",
"identity": "4417@DESKTOP-JRJDVRG\n",
"binaryChecksum": "07d96d88e3691440609a4f5de039969b14a4e6f8"
}
},
{
"eventId": "14",
"eventTime": "2024-05-28T02:46:28.925386163Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
"taskId": "31457313",
"activityTaskScheduledEventAttributes": {
"activityId": "14",
"activityType": {
"name": "HelloWorldActivity"
},
"taskQueue": {
"name": "general",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"header": {
"fields": {
"test-header": {
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "InRlc3Qi"
}
}
},
"input": {
"payloads": [
{
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "ImV4cGVjdGVkIHNpZ25hbCI="
}
]
},
"scheduleToCloseTimeout": "30s",
"scheduleToStartTimeout": "30s",
"startToCloseTimeout": "30s",
"heartbeatTimeout": "0s",
"workflowTaskCompletedEventId": "13",
"retryPolicy": {
"initialInterval": "1s",
"backoffCoefficient": 2,
"maximumInterval": "100s"
}
}
},
{
"eventId": "15",
"eventTime": "2024-05-28T02:46:28.944893259Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED",
"taskId": "31457317",
"activityTaskStartedEventAttributes": {
"scheduledEventId": "14",
"identity": "4417@DESKTOP-JRJDVRG\n",
"requestId": "73f99ef3-e606-421a-ad79-a4e43e41ceba",
"attempt": 1
}
},
{
"eventId": "16",
"eventTime": "2024-05-28T02:46:29.008828231Z",
"eventType": "EVENT_TYPE_ACTIVITY_TASK_COMPLETED",
"taskId": "31457318",
"activityTaskCompletedEventAttributes": {
"result": {
"payloads": [
{
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "IkhlbGxvIFdvcmxkLCBleHBlY3RlZCBzaWduYWwi"
}
]
},
"scheduledEventId": "14",
"startedEventId": "15",
"identity": "4417@DESKTOP-JRJDVRG\n"
}
},
{
"eventId": "17",
"eventTime": "2024-05-28T02:46:29.008830000Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_OPTIONS_UPDATED",
"taskId": "31457319",
"workflowExecutionOptionsUpdatedEventAttributes": {}
},
{
"eventId": "18",
"eventTime": "2024-05-28T02:46:29.008834769Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED",
"taskId": "31457320",
"workflowTaskScheduledEventAttributes": {
"taskQueue": {
"name": "general",
"kind": "TASK_QUEUE_KIND_NORMAL"
},
"startToCloseTimeout": "10s",
"attempt": 1
}
},
{
"eventId": "19",
"eventTime": "2024-05-28T02:46:29.022515754Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_STARTED",
"taskId": "31457321",
"workflowTaskStartedEventAttributes": {
"scheduledEventId": "18",
"identity": "4417@DESKTOP-JRJDVRG\n",
"requestId": "a24ea1bd-8584-41ae-8cc3-0880b8a946d1",
"historySizeBytes": "1713"
}
},
{
"eventId": "20",
"eventTime": "2024-05-28T02:46:29.043259634Z",
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED",
"taskId": "31457322",
"workflowTaskCompletedEventAttributes": {
"scheduledEventId": "18",
"startedEventId": "19",
"identity": "4417@DESKTOP-JRJDVRG\n",
"binaryChecksum": "07d96d88e3691440609a4f5de039969b14a4e6f8"
}
},
{
"eventId": "21",
"eventTime": "2024-05-28T02:46:29.043294503Z",
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_COMPLETED",
"taskId": "31457323",
"workflowExecutionCompletedEventAttributes": {
"result": {
"payloads": [
{
"metadata": {
"encoding": "anNvbi9wbGFpbg=="
},
"data": "Mw=="
}
]
},
"workflowTaskCompletedEventId": "20"
}
}
]
}
14 changes: 14 additions & 0 deletions examples/spec/replay/signal_with_start_ignored_event_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
require "workflows/signal_with_start_workflow"
require "temporal/testing/replay_tester"
require "temporal/workflow/history/serialization"

describe "signal with start with ignored event" do
let(:replay_tester) { Temporal::Testing::ReplayTester.new }

it "replays successfully with a WORKFLOW_EXECUTION_OPTIONS_UPDATED event in the history" do
replay_tester.replay_history(
SignalWithStartWorkflow,
Temporal::Workflow::History::Serialization.from_json_file("spec/replay/histories/signal_with_start_ignored_event.json")
)
end
end
Loading
Loading