     end
   end
 
-  # REVIEW: Related to T409; move to motherboard tests
-  test "delete is idempotent and removes every slot", %{mobo: mobo} do
-    refute [] === MotherboardSlotController.find_by(motherboard_id: mobo.motherboard_id)
-
-    # MotherboardSlotController.delete_all_from_motherboard(mobo.motherboard_id)
-    # MotherboardSlotController.delete_all_from_motherboard(mobo.motherboard_id)
-    MotherboardController.delete(mobo.motherboard_id)
-
-    assert [] === MotherboardSlotController.find_by(motherboard_id: mobo.motherboard_id)
-  end
-
   describe "link" do
     test "connecting a component into slot", %{slot: slot} do
       component = component_for(slot)

    [
      component_types: types,
      slot_type: slot_type,
      mobo_type: mobo_type,
      spec: spec]
  end

  setup context do
    comp_params = %{
      component_type: context.mobo_type,
      spec_id: context.spec.spec_id}
    {:ok, comp} = ComponentController.create(comp_params)

    mobo_params = %{motherboard_id: comp.component_id}
    {:ok, mobo} = MotherboardController.create(mobo_params)
    mobo = Repo.preload(mobo, :component_spec)

    slot =
      MotherboardSlotController.find_by(motherboard_id: mobo.motherboard_id)
      |> List.first()

    {:ok, slot: slot, mobo: mobo}
  end

  defp component_type(name) do

    end

    slot_type = Enum.random(["ram", "cpu", "hdd"])

    component_type(slot_type)
    component_type("mobo")

    slot_number = Burette.Number.digits(4)
    spec_params = %{
      component_type: "mobo",
      spec: %{
        spec_type: "mobo",
        spec_code: Random.string(min: 20, max: 20),
        slots: %{
          slot_number => %{type: slot_type}
