aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs
blob: c5a57698fed6ab8c6a22a82e162da7467180496f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
defmodule NixTest do
  @fake_package "asanotehhhuh"
  @fetchgit_package "polybar"
  @fetchgithub_package "notes-up"

  use ExUnit.Case

  import NixpkgsGitHubUpdate.Nix

  def check_for_nix(_context) do
    try do
      executable()
    rescue
      RuntimeError ->
        IO.puts("You need Nix installed to run these tests.")
        System.halt(127)
    end

    :ok
  end

  setup_all :check_for_nix

  describe "evaluation tests" do
    test "evaluation handling" do
      exists_attr = "nixpkgs.#{@fetchgithub_package}"

      assert is_binary(eval!(exists_attr)) == true
      catch_error(eval!(@fake_package) == 1)
    end

    # This should always be true or false
    test "package exists?" do
      assert attribute_exists?(@fetchgithub_package) == true
      assert attribute_exists?(@fake_package) == false
    end
  end

  test "owner repo" do
    assert get_url_attr(@fetchgit_package) == "url"
    assert get_url_attr(@fetchgithub_package) == "urls"

    assert get_owner_repo(@fetchgit_package) ==
             {@fetchgit_package, @fetchgit_package}

    assert get_owner_repo(@fetchgithub_package) ==
             {"Philip-Scott", String.capitalize(@fetchgithub_package)}
  end
end