Module: Rworkflow::Minitest::Test

Included in:
Minitest::Test
Defined in:
lib/rworkflow/minitest/test.rb

Overview

Include in your test classes to add functionality for worker and workflow tests

Instance Method Summary collapse

Instance Method Details

#rworkflow_worker(worker_class, flow: ::SidekiqFlow, name: nil, meta: {}) {|workflow| ... } ⇒ Object

Parameters:

  • [Class] (Hash)

    a customizable set of options

Yields:

  • (workflow)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rworkflow/minitest/test.rb', line 25

def rworkflow_worker(worker_class, flow: ::SidekiqFlow, name: nil, meta: {})
  name ||= worker_class.name
  worker = worker_class.new
  workflow = flow.new(name)
  meta.each { |key, value| workflow.set(key, value) }

  worker.instance_variable_set(:@workflow, workflow)
  worker.instance_variable_set(:@state_name, name)

  workflow.extend(WorkerUnitTestFlow)
  if defined?(flexmock)
    flexmock(workflow.class).should_receive(:terminal?).and_return(true)
  end

  yield(workflow) if block_given?

  return worker, workflow
end

#setupObject



5
6
7
8
# File 'lib/rworkflow/minitest/test.rb', line 5

def setup
  super
  rworkflow_setup
end

#teardownObject



10
11
12
13
# File 'lib/rworkflow/minitest/test.rb', line 10

def teardown
  super
  rworkflow_teardown
end