test/support/fixtures/project_fields_fixtures.ex

58e6347eeb72 · 967 B

defmodule OpenAgents.ProjectFieldsFixtures do
  @moduledoc """
  This module defines test helpers for creating
  entities via the `OpenAgents.ProjectFields` context.
  """

  @doc """
  Generate a project_field.
  """
  def project_field_fixture(repository, attrs \\ %{}) do
    normalized = Map.new(attrs)
    project_id = Map.get(normalized, :project_id) || Map.get(normalized, "project_id")

    project =
      if project_id do
        OpenAgents.Projects.get_project!(repository, project_id)
      else
        {:ok, project} =
          OpenAgents.Projects.create_project(repository, %{
            title: "Fixture project",
            owner: "OpenAgents"
          })

        project
      end

    {:ok, project_field} =
      attrs
      |> Enum.into(%{
        data_type: "text",
        name: "some name",
        options: %{},
        project_id: project.id
      })
      |> OpenAgents.ProjectFields.create_project_field()

    project_field
  end
end