spec/wally/search_features_spec.rb in wally-0.0.19 vs spec/wally/search_features_spec.rb in wally-0.0.20

- old
+ new

@@ -1,52 +1,49 @@ require File.join(File.dirname(__FILE__), "..", "spec_helper") module Wally describe SearchFeatures do - before do - FileUtils.mkdir "application-features" - end - after do - FileUtils.rm_rf "application-features" + Feature.delete_all end - def write_feature(name, contents) - File.open("application-features/#{name}", "w") do |file| - file.write(contents) - end + def create_feature path, content + feature = Feature.new + feature.path = path + feature.content = content + feature.save end let :lists_features do ListsFeatures.new("application-features") end it "finds features containing text" do - write_feature("sample1.feature", "Feature: Bla") - write_feature("sample2.feature", "Feature: Meh") + create_feature("sample1.feature", "Feature: Bla") + create_feature("sample2.feature", "Feature: Meh") results = SearchFeatures.new(lists_features).find(:query => "Meh") results.items.size.should == 1 results.items.first.feature["name"].should == "Meh" end it "finds features by narrative" do - write_feature("sample1.feature", "Feature: bla\nIn order to bananas") + create_feature("sample1.feature", "Feature: bla\nIn order to bananas") results = SearchFeatures.new(lists_features).find(:query => "bananas") results.items.size.should == 1 results.items.first.feature["name"].should == "bla" end it "has a suggestion" do - write_feature("sample1.feature", "Feature: Monkeys") + create_feature("sample1.feature", "Feature: Monkeys") results = SearchFeatures.new(lists_features).find(:query => "mnkeys") results.suggestion.should == "Monkeys" end it "has a suggestion only when it's different from the search query" do - write_feature("sample1.feature", "Feature: monkeys\nScenario: feature") - write_feature("sample2.feature", "Feature: dogs\nScenario: Sample scenario") + create_feature("sample1.feature", "Feature: monkeys\nScenario: feature") + create_feature("sample2.feature", "Feature: dogs\nScenario: Sample scenario") results = SearchFeatures.new(lists_features).find(:query => "feature") results.suggestion.should be_nil end context "feature with multiple scenarios" do @@ -56,11 +53,11 @@ Scenario: Sample Scenario Scenario: Matched Scenario Given I eat some doughnuts Scenario: Another Scenario CONTENTS - write_feature("sample1.feature", contents) + create_feature("sample1.feature", contents) end it "finds scenarios containing text" do results = SearchFeatures.new(lists_features).find(:query => "MATCHED") results.items.size.should == 1 @@ -74,16 +71,16 @@ end end context "feature with tags" do it "finds features by tag" do - write_feature("example-feature.feature", "@tag_name\nFeature: Example Feature") + create_feature("example-feature.feature", "@tag_name\nFeature: Example Feature") results = SearchFeatures.new(lists_features).find(:query => "@tag_NAME") results.items.first.feature["name"].should == "Example Feature" end it "finds scenarios by tag" do - write_feature("example-feature.feature", "Feature: Example Feature\n@scenario_tag\nScenario: Example Scenario") + create_feature("example-feature.feature", "Feature: Example Feature\n@scenario_tag\nScenario: Example Scenario") results = SearchFeatures.new(lists_features).find(:query => "@scenario_TAG") results.items.first.scenario["name"].should == "Example Scenario" end end end