lib/chop/form.rb in chop-0.21.0 vs lib/chop/form.rb in chop-0.22.0

- old
+ new

@@ -7,11 +7,16 @@ new(table, session, path).fill_in! end def self.diff! selector, table, session: Capybara.current_session, &block all_fields = session.find("form").all("input, textarea, select") - deduplicated_fields = all_fields.inject([]) do |fields, field| + relevant_fields = all_fields.inject([]) do |fields, field| + next fields if field[:name].blank? + next fields if field[:type] == "submit" + fields + [field] + end + deduplicated_fields = relevant_fields.inject([]) do |fields, field| next fields if fields.map { |field| field[:name] }.include?(field[:name]) fields + [field] end actual = deduplicated_fields.inject([]) do |fields, field| next fields unless label = find_label_for(field) @@ -20,10 +25,10 @@ end table.diff! actual, surplus_row: false end def self.find_label_for field, session: Capybara.current_session - if field[:id] + if field[:id].present? session.first("label[for='#{field[:id]}']") else raise "cannot find label without id... yet" end end