test/openagents/transparency/artifact_link_test.exs

58e6347eeb72 · 929 B

defmodule OpenAgents.Transparency.ArtifactLinkTest do
  @moduledoc """
  Tests for `OpenAgents.Transparency.ArtifactLink` changeset validation.
  """

  use OpenAgents.DataCase, async: true

  alias OpenAgents.Transparency.ArtifactLink

  defp link_attrs(overrides) do
    Map.merge(
      %{
        account_id: Ecto.UUID.generate(),
        repository_id: Ecto.UUID.generate(),
        artifact_type: "changelog",
        artifact_ref: "sha",
        tier: "dark"
      },
      overrides
    )
  end

  describe "changeset/2" do
    test "accepts a valid transparency tier" do
      changeset = ArtifactLink.changeset(%ArtifactLink{}, link_attrs(%{tier: "glass"}))
      assert changeset.valid?
    end

    test "rejects an unrecognized transparency tier" do
      changeset = ArtifactLink.changeset(%ArtifactLink{}, link_attrs(%{tier: "invisible"}))

      assert "is invalid" in errors_on(changeset).tier
    end
  end
end