class ZeebeBpmnRspec::ActivatedJob

Attributes

client[R]
context[R]
job[R]
type[R]

Public Class Methods

new(job, type:, process_instance_key:, client:, context:, validate:) click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 13
def initialize(job, type:, process_instance_key:, client:, context:, validate:) # rubocop:disable Metrics/ParameterLists
  @job = job
  @type = type
  @process_instance_key = process_instance_key
  @client = client
  @context = context

  if validate
    context.instance_eval do
      expect(job).not_to be_nil, "expected to receive job of type '#{type}' but received none"
      aggregate_failures do
        expect(job.processInstanceKey).to eq(process_instance_key)
        expect(job.type).to eq(type)
      end
    end
  end
end

Public Instance Methods

and_complete(variables = {}) click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 106
def and_complete(variables = {})
  client.complete_job(CompleteJobRequest.new(
                        jobKey: job.key,
                        variables: variables.to_json
                      ))
end
Also aliased as: complete
and_fail(message = nil, retries: nil) click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 95
def and_fail(message = nil, retries: nil)
  client.fail_job(FailJobRequest.new(
                    {
                      jobKey: job.key,
                      retries: retries || 0,
                      errorMessage: message,
                    }.compact
                  ))
end
Also aliased as: fail
and_throw_error(error_code, message = nil) click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 84
def and_throw_error(error_code, message = nil)
  client.throw_error(ThrowErrorRequest.new(
                       {
                         jobKey: job.key,
                         errorCode: error_code,
                         errorMessage: message,
                       }.compact
                     ))
end
Also aliased as: throw_error
complete(variables = {})
Alias for: and_complete
expect_headers(headers) click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 74
def expect_headers(headers)
  job_headers = self.headers
  headers = headers.stringify_keys if headers.is_a?(Hash)
  context.instance_eval do
    expect(job_headers).to match(headers)
  end

  self
end
expect_input(data) click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 64
def expect_input(data)
  job_variables = variables
  data = data.stringify_keys if data.is_a?(Hash)
  context.instance_eval do
    expect(job_variables).to match(data)
  end

  self
end
fail(message = nil, retries: nil)
Alias for: and_fail
headers() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 60
def headers
  @_headers ||= JSON.parse(job.customHeaders)
end
key() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 35
def key
  job.key
end
process_instance_key() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 39
def process_instance_key
  job.processInstanceKey
end
raw() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 31
def raw
  job
end
retries() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 44
def retries
  job.retries
end
task_key() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 48
def task_key
  job.elementInstanceKey
end
throw_error(error_code, message = nil)
Alias for: and_throw_error
to_s() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 52
def to_s
  raw.to_s
end
update_retries(retries = 1) click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 114
def update_retries(retries = 1)
  client.update_job_retries(UpdateJobRetriesRequest.new(
                              jobKey: job.key,
                              retries: retries
                            ))
end
variables() click to toggle source
# File lib/zeebe_bpmn_rspec/activated_job.rb, line 56
def variables
  @_variables ||= JSON.parse(job.variables)
end