Sha256: 4e671ff7dcadf3c85c18250135330b8c57eeb4444e5326a28275e0929816678b

Contents?: true

Size: 1.8 KB

Versions: 7

Compression:

Stored size: 1.8 KB

Contents

# File: macro-collection_spec.rb

require_relative '../spec_helper'

# Load the class under test
require_relative '../../lib/macros4cuke/macro-collection'

module Macros4Cuke # Open this namespace to avoid module qualifier prefixes
describe MacroCollection do
  let(:singleton) { MacroCollection.instance }

  before(:all) do
    MacroCollection.instance.clear
  end

  context 'Initialization:' do
    it 'should be empty' do
      expect(singleton.macro_steps).to be_empty
    end
  end # context

  context 'Provided services:' do
    let(:sample_substeps) do
      snippet = <<-SNIPPET
  Given I landed in the homepage
  When I click "Sign in"
  And I fill in "Username" with "<userid>"
  And I fill in "Password" with "<password>"
  And I click "Submit"
SNIPPET

      snippet
    end

    it 'should accept the addition of a new macro-step' do
      phrase = '[enter my credentials]'
      args = [phrase, sample_substeps, true]
      expect { singleton.add_macro(*args) }.not_to raise_error
      expect(singleton.macro_steps.size).to eq(1)

      # Error case: inserting another macro with same phrase.
      msg = "A macro-step with phrase '[enter my credentials]' already exists."
      expect { singleton.add_macro(*args) }.to raise_error(
        Macros4Cuke::DuplicateMacroError, msg)
    end

    it 'should return the rendition of a given macro-step' do
      phrase = '[enter my credentials]'
      input_values = [ %w(userid nobody), %w(password no-secret) ]
      rendered = singleton.render_steps(phrase, input_values)
      expected = <<-SNIPPET
  Given I landed in the homepage
  When I click "Sign in"
  And I fill in "Username" with "nobody"
  And I fill in "Password" with "no-secret"
  And I click "Submit"
SNIPPET
      expect(rendered).to eq(expected)
    end
  end # context
end # describe
end # module

# End of file

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
macros4cuke-0.5.14 spec/macros4cuke/macro-collection_spec.rb
macros4cuke-0.5.13 spec/macros4cuke/macro-collection_spec.rb
macros4cuke-0.5.12 spec/macros4cuke/macro-collection_spec.rb
macros4cuke-0.5.11 spec/macros4cuke/macro-collection_spec.rb
macros4cuke-0.5.10 spec/macros4cuke/macro-collection_spec.rb
macros4cuke-0.5.09 spec/macros4cuke/macro-collection_spec.rb
macros4cuke-0.5.08 spec/macros4cuke/macro-collection_spec.rb