Sha256: 225a3bef8795afc692bf9614090d04f73a061ec655c99ab7a34f61dcb28fb990

Contents?: true

Size: 1.28 KB

Versions: 6

Compression:

Stored size: 1.28 KB

Contents

require "spec_helper"

describe Simple::Workflow::CurrentContext do
  describe ".with_context" do
    it "merges the current context for the duration of the block" do
      block_called = false

      Simple::Workflow.with_context(a: "a", foo: "bar") do
        expect(Simple::Workflow.current_context.a).to eq("a")
        expect(Simple::Workflow.current_context.foo).to eq("bar")

        # layering
        Simple::Workflow.with_context() do
          expect(Simple::Workflow.current_context.foo).to eq("bar")

          expect(Simple::Workflow.current_context.unknown?).to be_nil
          expect {
            Simple::Workflow.current_context.unknown
          }.to raise_error(NameError)
        end

        # overwrite value
        Simple::Workflow.with_context(a: "b") do
          expect(Simple::Workflow.current_context.a).to eq("b")
          block_called = true
        end

        # overwrite value w/nil
        Simple::Workflow.with_context(a: nil) do
          expect(Simple::Workflow.current_context.a).to be_nil
          Simple::Workflow.with_context(a: "c") do
            expect(Simple::Workflow.current_context.a).to eq("c")
          end
        end
        expect(Simple::Workflow.current_context.a).to eq("a")
      end

      expect(block_called).to eq(true)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
simple-service-0.3.1 spec/simple/workflow/current_context_spec.rb
simple-service-0.2.3 spec/simple/workflow/current_context_spec.rb
simple-service-0.3.0 spec/simple/workflow/current_context_spec.rb
simple-service-0.2.2 spec/simple/workflow/current_context_spec.rb
simple-service-0.2.1 spec/simple/workflow/current_context_spec.rb
simple-service-0.2.0 spec/simple/workflow/current_context_spec.rb