require “application_system_test_case”

<% module_namespacing do -%> describe “<%= class_name.pluralize %>”, :system do

let(:<%= singular_table_name %>) { <%= fixture_name %>(:one) }

it "visits the index" do
  visit <%= plural_table_name %>_url
  assert_selector "h1", text: "<%= human_name.pluralize %>"
end

it "creates a <%= human_name %>" do
  visit <%= plural_table_name %>_url
  click_on "New <%= human_name.downcase %>"

  <%- attributes_hash.each do |attr, value| -%>
  <%- if boolean?(attr) -%>
  check "<%= attr.humanize %>" if <%= value %>
  <%- else -%>
  fill_in "<%= attr.humanize %>", with: <%= value %>
  <%- end -%>
  <%- end -%>
  click_on "Create <%= human_name %>"

  assert_text "<%= human_name %> was successfully created"
  click_on "Back"
end

it "updates a <%= human_name %>" do
  visit <%= singular_table_name %>_url(@<%= singular_table_name %>)
  click_on "Edit this <%= human_name.downcase %>", match: :first

  <%- attributes_hash.each do |attr, value| -%>
  <%- if boolean?(attr) -%>
  check "<%= attr.humanize %>" if <%= value %>
  <%- else -%>
  fill_in "<%= attr.humanize %>", with: <%= value %>
  <%- end -%>
  <%- end -%>
  click_on "Update <%= human_name %>"

  assert_text "<%= human_name %> was successfully updated"
  click_on "Back"
end

it "destroys a <%= human_name %>" do
  visit <%= singular_table_name %>_url(@<%= singular_table_name %>)
  click_on "Destroy this <%= human_name.downcase %>", match: :first

  assert_text "<%= human_name %> was successfully destroyed"
end

end <% end -%>