Files
nairobi/spec/components/admin/poll/officers/officers_component_spec.rb
2021-08-10 15:00:26 +02:00

38 lines
1.2 KiB
Ruby

require "rails_helper"
describe Admin::Poll::Officers::OfficersComponent, type: :component, controller: Admin::BaseController do
let(:existing_officer) { create(:poll_officer, name: "Old officer") }
let(:new_officer) { build(:poll_officer, name: "New officer") }
let(:officers) { [existing_officer, new_officer] }
let(:component) { Admin::Poll::Officers::OfficersComponent.new(officers) }
it "renders as many rows as officers" do
render_inline component
tbody = page.find("tbody")
expect(tbody).to have_css "tr", count: 2
expect(tbody).to have_css "a", count: 2
end
it "renders link to destroy for existing officers" do
render_inline component
row = page.find("tr", text: "Old officer")
expect(row).to have_css "a[data-method='delete']", text: "Delete"
end
it "renders link to add for new officers" do
render_inline component
row = page.find("tr", text: "New officer")
expect(row).to have_css "a[data-method='post']", text: "Add"
end
it "accepts table options" do
render_inline Admin::Poll::Officers::OfficersComponent.new(officers, class: "my-officers-table")
expect(page).to have_css "table.my-officers-table"
end
end