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