require "rails_helper"

describe Poll::BoothAssignment do
  let(:poll) { create(:poll) }
  let(:booth) { create(:poll_booth) }
  let(:booth1) { create(:poll_booth) }

  it "checks if there are shifts" do
    assignment_with_shifts = create(:poll_booth_assignment, poll: poll, booth: booth)
    assignment_without_shifts = create(:poll_booth_assignment, poll: poll, booth: booth1)
    officer = create(:poll_officer)
    create(:poll_officer_assignment, officer: officer, booth_assignment: assignment_with_shifts)
    create(:poll_shift, booth: booth, officer: officer)

    expect(assignment_with_shifts.shifts?).to be true
    expect(assignment_without_shifts.shifts?).to be false
  end

  it "deletes shifts associated to booth assignments" do
    assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
    officer = create(:poll_officer)
    create(:poll_officer_assignment, officer: officer, booth_assignment: assignment)
    create(:poll_shift, booth: booth, officer: officer)

    assignment.destroy!

    expect(Poll::Shift.count).to eq 0
  end
end
