// test "create_action/1 kind: ability/fire" {
    //   user = insert(:user)
    //   commander = insert(:commander)
    //   subject_user_data = build(:user_data, %{
    //     turn: true,
    //     user_id: user.id,
    //     commander_id: commander.id
    //   })
    //   target_user_data = build(:user_data, %{
    //     turn: false,
    //     user_id: insert(:user).id,
    //     commander_id: commander.id
    //   })
    //   attacker = unit_data(AWDS.infantry(), %{
    //     coord: build(:coord, %{x: 0, y: 0}),
    //     faction: 1,
    //     user_id: subject_user_data.user_id
    //   })
    //   defender = unit_data(AWDS.infantry(), %{
    //     coord: build(:coord, %{x: 0, y: 4}),
    //     faction: 2,
    //     user_id: target_user_data.user_id
    //   })
    //   map = insert(:map)
    //   game = insert(:game, %{
    //     weather: "Clear",
    //     map: map,
    //     map_data: map.map_data,
    //     map_type: map.map_type,
    //     user_data: [subject_user_data, target_user_data],
    //     unit_data: [attacker, defender],
    //     tile_data: []
    //   })

    //   attacker = game.unit_data |> Enum.at(0)
    //   defender = game.unit_data |> Enum.at(1)

    //   insert(:game_user, %{game: game, faction: 1})
    //   insert(:game_user, %{game: game, faction: 2})
    //   action = build(:action, %{
    //     kind: "ability",
    //     ability_id: "fire",
    //     subject_unit_data_id: attacker.id,
    //     target_unit_data_id: defender.id,
    //     game_id: game.id,
    //     user_id: user.id,
    //     move_coords: [
    //       build(:coord, %{x: 0, y: 1}),
    //       build(:coord, %{x: 0, y: 2}),
    //       build(:coord, %{x: 0, y: 3})
    //     ]
    //   })
    //   |> Map.from_struct()

    //   assert {:ok, Action {
    //     game: Game {
    //       unit_data: [defender, attacker],
    //       user_data: [attacker_user, defender_user]
    //     }
    //   } = action} = Engine.create_action(action)

    //   assert defender.health <= 52.0
    //   assert defender.health >= 43.0
    //   assert attacker.health <= 76.0
    //   assert attacker.health >= 66.0

    //   assert defender_user.charge <= 71
    //   assert defender_user.charge >= 62
    //   assert attacker_user.charge <= 58
    //   assert attacker_user.charge >= 49
    // }