cc-os/plugins/os-backlog/tests/resolver_test.rb

112 lines
3.3 KiB
Ruby

require_relative "test_helper"
class ResolverTest < Minitest::Test
def test_configured_project_uses_configured_board
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/dev/some-repo",
config_contents: "board: llf-schema\n",
boards: %w[llf-schema other-board]
)
assert_equal "use llf-schema", resolver.resolve_string
end
def test_unconfigured_dev_repo_uses_board_named_after_repo
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/dev/llf-schema",
config_contents: nil,
boards: %w[llf-schema]
)
assert_equal "use llf-schema", resolver.resolve_string
end
def test_unconfigured_client_repo_uses_board_named_after_repo
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/clients/acme-co",
config_contents: nil,
boards: %w[acme-co]
)
assert_equal "use acme-co", resolver.resolve_string
end
def test_matching_archived_board_activates
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/dev/old-project",
config_contents: nil,
boards: %w[archived--old-project]
)
assert_equal "activate archived--old-project", resolver.resolve_string
end
def test_configured_archived_board_activates
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/dev/some-repo",
config_contents: "board: old-project\n",
boards: %w[archived--old-project]
)
assert_equal "activate archived--old-project", resolver.resolve_string
end
def test_no_match_stops_and_discusses
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/dev/brand-new-repo",
config_contents: nil,
boards: %w[unrelated-board]
)
assert_equal "stop-and-discuss", resolver.resolve_string
end
def test_path_outside_dev_and_clients_is_ambiguous
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/scratch/some-repo",
config_contents: nil,
boards: %w[some-repo]
)
assert_equal "stop-and-discuss", resolver.resolve_string
end
def test_configured_board_with_no_match_stops_and_discusses
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/dev/some-repo",
config_contents: "board: nonexistent\n",
boards: %w[llf-schema]
)
assert_equal "stop-and-discuss", resolver.resolve_string
end
def test_empty_config_contents_is_treated_as_unconfigured
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/dev/llf-schema",
config_contents: "",
boards: %w[llf-schema]
)
assert_equal "use llf-schema", resolver.resolve_string
end
def test_unconfigured_servers_repo_uses_board_named_after_repo
resolver = Backlog::Resolver.new(
repo_path: "/home/jared/servers/proxmox-ubuntu",
config_contents: nil,
boards: %w[proxmox-ubuntu]
)
assert_equal "use proxmox-ubuntu", resolver.resolve_string
end
def test_project_for_returns_dev_clients_servers_or_nil
assert_equal "Dev", Backlog::Resolver.project_for("/home/jared/dev/some-repo")
assert_equal "Clients", Backlog::Resolver.project_for("/home/jared/clients/acme-co")
assert_equal "Servers", Backlog::Resolver.project_for("/home/jared/servers/ovh-prod")
assert_equal "Servers", Backlog::Resolver.project_for("/home/jared/servers")
assert_nil Backlog::Resolver.project_for("/home/jared/scratch/some-repo")
end
end