Close TD-19 quality gates
This commit is contained in:
44
test/bds/mix_project_test.exs
Normal file
44
test/bds/mix_project_test.exs
Normal file
@@ -0,0 +1,44 @@
|
||||
defmodule BDS.MixProjectTest do
|
||||
use ExUnit.Case, async: true
|
||||
|
||||
test "validate alias runs all required quality gates" do
|
||||
aliases = BDS.MixProject.project()[:aliases]
|
||||
|
||||
assert aliases[:validate] == [
|
||||
"test",
|
||||
"credo --strict",
|
||||
"deps.audit --ignore-file .mix_audit.ignore",
|
||||
"dialyzer"
|
||||
]
|
||||
end
|
||||
|
||||
test "quality tooling deps are available in dev and test" do
|
||||
deps = BDS.MixProject.project()[:deps]
|
||||
|
||||
assert quality_dep(deps, :credo) == {:credo, "~> 1.7", [only: [:dev, :test], runtime: false]}
|
||||
|
||||
assert quality_dep(deps, :mix_audit) ==
|
||||
{:mix_audit, "~> 2.1", [only: [:dev, :test], runtime: false]}
|
||||
end
|
||||
|
||||
test "mix audit exceptions stay explicit and scoped" do
|
||||
ignore_file = File.read!(Path.expand("../../.mix_audit.ignore", __DIR__))
|
||||
|
||||
assert ignore_file =~ "GHSA-rhv4-8758-jx7v"
|
||||
refute ignore_file =~ "GHSA-628h-q48j-jr6q"
|
||||
end
|
||||
|
||||
test "validate runs in the test environment" do
|
||||
cli = BDS.MixProject.cli()
|
||||
|
||||
assert cli[:preferred_envs][:validate] == :test
|
||||
end
|
||||
|
||||
defp quality_dep(deps, app) do
|
||||
Enum.find(deps, fn
|
||||
{^app, _version} -> true
|
||||
{^app, _version, _opts} -> true
|
||||
_other -> false
|
||||
end)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user