spec/macros4cuke/macro-step_spec.rb in macros4cuke-0.2.13 vs spec/macros4cuke/macro-step_spec.rb in macros4cuke-0.2.14

- old
+ new

@@ -8,11 +8,11 @@ module Macros4Cuke # Open the module to avoid lengthy qualified names describe MacroStep do let(:sample_phrase) { "enter my credentials as <userid>" } - + let(:sample_template) do snippet = <<-SNIPPET Given I landed in the homepage When I click "Sign in" And I fill in "Username" with "<userid>" @@ -27,80 +27,80 @@ subject { MacroStep.new(sample_phrase, sample_template, true) } context "Creation & initialization" do it "should be created with a phrase, substeps and a table use indicator" do - lambda { MacroStep.new(sample_phrase, sample_template, true) }.should_not raise_error + lambda { MacroStep.new(sample_phrase, sample_template, true) }.should_not raise_error end - - + + it "should complain when a sub-step argument can never be assigned a value via the phrase" do error_message = "The sub-step argument 'password' does not appear in the phrase." - lambda { MacroStep.new(sample_phrase, sample_template, false) }.should raise_error(Macros4Cuke::UnreachableSubstepArgument, error_message) + lambda { MacroStep.new(sample_phrase, sample_template, false) }.should raise_error(Macros4Cuke::UnreachableSubstepArgument, error_message) end - - + + it "should complain when an argument from the phrase never occurs in a substep" do a_phrase = "enter my credentials as <foobar>" error_message = "The phrase argument 'foobar' does not appear in a sub-step." - lambda { MacroStep.new(a_phrase, sample_template, true) }.should raise_error(Macros4Cuke::UselessPhraseArgument, error_message) - end + lambda { MacroStep.new(a_phrase, sample_template, true) }.should raise_error(Macros4Cuke::UselessPhraseArgument, error_message) + end - + it "should know its key" do subject.key.should == "enter_my_credentials_as_X_T" end - + it "should know the tags(placeholders) from its phrase" do subject.phrase_args.should == %w[userid] end - + it "should know the tags(placeholders) from its phrase and template" do - subject.args.should == %w[userid password] + subject.args.should == %w[userid password] end - + end # context - - + + context "Provided services" do - + let(:phrase_instance) {%Q|enter my credentials as "nobody"|} - + it "should render the substeps" do text = subject.expand(phrase_instance, [ ['password', 'no-secret'] ]) expectation = <<-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 - + text.should == expectation end - + it "should render steps even when one argument has no actual value" do # Special case: password has no value... text = subject.expand(phrase_instance, [ ]) expectation = <<-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 "" And I click "Submit" SNIPPET - - text.should == expectation + + text.should == expectation end - + it "should complain when an unknown variable is used" do # Error case: there is no macro argument called <unknown> error_message = "Unknown macro-step argument 'unknown'." lambda { subject.expand(phrase_instance, [ ['unknown', 'anything'] ]) }.should raise_error(UnknownArgumentError, error_message) end end # context - + end # describe end # module \ No newline at end of file