diff --git a/lib/temporal/testing/local_workflow_context.rb b/lib/temporal/testing/local_workflow_context.rb index b46b9bb3..2d13fe5c 100644 --- a/lib/temporal/testing/local_workflow_context.rb +++ b/lib/temporal/testing/local_workflow_context.rb @@ -24,6 +24,11 @@ def logger Temporal.logger end + def replay? + # We never replay in a test context + false + end + def headers metadata.headers end diff --git a/lib/temporal/workflow/context.rb b/lib/temporal/workflow/context.rb index ed83e5fd..5798b866 100644 --- a/lib/temporal/workflow/context.rb +++ b/lib/temporal/workflow/context.rb @@ -25,10 +25,14 @@ def initialize(state_manager, dispatcher, metadata) def logger @logger ||= ReplayAwareLogger.new(Temporal.logger) - @logger.replay = state_manager.replay? + @logger.replay = replay? @logger end + def replay? + @state_manager.replay? + end + def headers metadata.headers end diff --git a/spec/unit/lib/temporal/testing/local_workflow_context_spec.rb b/spec/unit/lib/temporal/testing/local_workflow_context_spec.rb index abb2b074..6b078a44 100644 --- a/spec/unit/lib/temporal/testing/local_workflow_context_spec.rb +++ b/spec/unit/lib/temporal/testing/local_workflow_context_spec.rb @@ -98,4 +98,10 @@ def execute expect(result).to eq('ok') end end + + describe '#replay?' do + it 'always false' do + expect(workflow_context.replay?).to be false + end + end end diff --git a/spec/unit/lib/temporal/workflow/context_spec.rb b/spec/unit/lib/temporal/workflow/context_spec.rb new file mode 100644 index 00000000..7219bf7b --- /dev/null +++ b/spec/unit/lib/temporal/workflow/context_spec.rb @@ -0,0 +1,20 @@ +require 'temporal/workflow/context' + +describe Temporal::Workflow::Context do + let(:state_manager) { instance_double('Temporal::Workflow::StateManager') } + let(:workflow_context) do + Temporal::Workflow::Context.new( + state_manager, + nil, + nil + ) + end + describe '#replay' do + it 'gets value from state_manager' do + allow(state_manager).to receive(:replay?).and_return true + + expect(workflow_context.replay?).to be true + expect(state_manager).to have_received(:replay?) + end + end +end