# frozen_string_literal: true

require 'test_helper'

# module definition
module Availabilities; end

class Availabilities::UpdateTest < ActionDispatch::IntegrationTest
  setup do
    admin = User.with_role(:admin).first
    login_as(admin, scope: :user)
  end

  test 'update an availability to remove an associated machine' do
    availability = Availability.find(4)
    machine = Machine.find(2)
    patch "/api/availabilities/#{availability.id}",
          params: {
            availability: {
              machines_attributes: [
                { id: machine.id, _destroy: true }
              ]
            }
          }

    assert_response :success
    assert_match Mime[:json].to_s, response.content_type

    res = json_response(response.body)
    assert_not_includes res[:machine_ids], machine.id

    availability.reload

    assert_empty availability.machines_availabilities.where(machine: machine)
  end
end