Commit 76fde36f72dd0930434948cdf25162f9c8323a57
1 parent
fe19b696
Exists in
master
and in
1 other branch
more powerful (Tool Time grunt) Factory Girl steps for Cucumber
Showing
1 changed file
with
26 additions
and
2 deletions
Show diff stats
features/step_definitions/factory_girl_steps.rb
| 1 | +Given /^the following (.*) exists?:$/ do |factory, table| | |
| 2 | + factory = factory.singularize.gsub(' ','_') | |
| 3 | + table.hashes.each do |attributes| | |
| 4 | + Factory(factory, attributes) | |
| 5 | + end | |
| 6 | +end | |
| 7 | + | |
| 1 | 8 | Factory.factories.each do |name, factory| |
| 2 | - Given /^an? #{name} exists with an? (.*) of "([^"]*)"$/ do |attr, value| | |
| 3 | - Factory(name, attr.gsub(' ', '_') => value) | |
| 9 | + if factory.build_class.respond_to?(:columns) | |
| 10 | + factory.build_class.columns.each do |column| | |
| 11 | + Given %{^an? #{name.to_s.humanize.downcase} exists with an? #{column.name.humanize.downcase} of "([^"]*)"$} do |value| | |
| 12 | + Factory(name, column.name => value) | |
| 13 | + end | |
| 14 | + end | |
| 15 | + end | |
| 16 | + | |
| 17 | + Given /^an? #{name} exists$/ do | |
| 18 | + Factory(name) | |
| 19 | + end | |
| 20 | + | |
| 21 | + Given /^(\d+) #{name.to_s.humanize.downcase.pluralize} exist with an? ([^"]*) of "([^"]*)"$/ do |count, attr, value| | |
| 22 | + count.to_i.times { Factory(name, attr.gsub(' ', '_') => value) } | |
| 23 | + end | |
| 24 | + | |
| 25 | + Given %r{^(\d+) #{name.to_s.humanize.downcase.pluralize} exist$} do |count| | |
| 26 | + count.to_i.times { Factory(name) } | |
| 4 | 27 | end |
| 5 | 28 | end |
| 29 | + | ... | ... |