Sha256: 6fbb072eeb339afdc473536f2d7f348ab367f1d42c2dd22ae00553cead2f63d0
Contents?: true
Size: 1.35 KB
Versions: 4
Compression:
Stored size: 1.35 KB
Contents
module Rworkflow module Minitest # Include in your test classes to add functionality for worker and workflow tests module Test def setup super rworkflow_setup end def teardown super rworkflow_teardown end def rworkflow_setup; end protected :rworkflow_setup def rworkflow_teardown; end protected :rworkflow_teardown # @params [Class] the worker class to instantiate # @params [Hash] options hash # @option [Class] :flow workflow class to instantiate; defaults to SidekiqFlow # @option [Class] :name the state name 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 end module WorkerUnitTestFlow def transition(_, name, objects) push(objects, name) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems