Packages
nerves_bootstrap
1.0.0-rc.4
1.16.0
1.15.3
1.15.2
1.15.1
1.15.0
1.14.5
1.14.4
1.14.3
1.14.2
1.14.0
1.13.1
1.13.0
1.12.2
1.12.1
1.12.0
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.6
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.1
1.8.0
1.7.1
1.7.0
1.6.3
1.6.2
1.6.1
1.6.0
1.5.3
1.5.2
1.5.1
1.5.0
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.0
1.0.1
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
Nerves mix integration bootstrap and new project generator
Current section
Files
Jump to
Current section
Files
test/nerves_bootstrap_test.exs
defmodule Nerves.BootstrapTest do
use ExUnit.Case
test "aliases are injected properly" do
deps_loadpaths = ["nerves.loadpaths", "deps.loadpaths"]
deps_get = ["deps.get", "nerves.deps.get"]
deps_update = [&Nerves.Bootstrap.Aliases.deps_update/1]
aliases = Nerves.Bootstrap.add_aliases([])
assert Keyword.get(aliases, :"deps.loadpaths") == deps_loadpaths
assert Keyword.get(aliases, :"deps.get") == deps_get
assert Keyword.get(aliases, :"deps.update") == deps_update
end
test "custom aliases are maintained" do
custom_aliases = [
"deps.loadpaths": ["custom", "deps.loadpaths"],
"deps.get": ["deps.get", "custom"],
"deps.update": ["custom"],
custom: ["custom"]
]
aliases = Nerves.Bootstrap.add_aliases(custom_aliases)
assert Keyword.get(aliases, :"deps.loadpaths") == [
"nerves.loadpaths",
"custom",
"deps.loadpaths"
]
assert Keyword.get(aliases, :"deps.get") == ["deps.get", "custom", "nerves.deps.get"]
assert Keyword.get(aliases, :"deps.update") == [
"custom",
&Nerves.Bootstrap.Aliases.deps_update/1
]
assert Keyword.get(aliases, :custom) == ["custom"]
end
test "aliases are dropped if they already exist" do
deps_loadpaths = ["nerves.loadpaths", "deps.loadpaths"]
deps_get = ["deps.get", "nerves.deps.get"]
deps_update = [&Nerves.Bootstrap.Aliases.deps_update/1]
nerves_aliases = [
"deps.loadpaths": deps_loadpaths
]
aliases = Nerves.Bootstrap.add_aliases(nerves_aliases)
assert Keyword.get(aliases, :"deps.loadpaths") == deps_loadpaths
assert Keyword.get(aliases, :"deps.get") == deps_get
assert Keyword.get(aliases, :"deps.update") == deps_update
end
test "check for update will exclude pre release" do
current_version = Version.parse!("0.8.0")
releases = [
"0.8.2",
"1.0.0-rc.0",
"0.8.1"
]
releases = Enum.map(releases, &Version.parse!/1)
assert %{minor: 8, patch: 2} = Nerves.Bootstrap.check_for_update(releases, current_version)
end
test "check for update will include pre release if on pre" do
current_version = Version.parse!("1.0.0-rc.0")
releases = [
"1.1.0-rc.0",
"1.0.0-rc.1",
"0.8.2",
"1.0.0-rc.0",
"0.8.1"
]
releases = Enum.map(releases, &Version.parse!/1)
assert %{minor: 0, pre: ["rc", 1]} =
Nerves.Bootstrap.check_for_update(releases, current_version)
end
test "check for update moving from pre to stable" do
current_version = Version.parse!("1.0.0-rc.0")
releases = [
"1.0.0",
"1.0.0-rc.1",
"0.8.2",
"1.0.0-rc.0",
"0.8.1"
]
releases = Enum.map(releases, &Version.parse!/1)
assert %{major: 1, minor: 0, patch: 0, pre: []} =
Nerves.Bootstrap.check_for_update(releases, current_version)
end
test "check for update excluding pre release message" do
current_version = Version.parse!("0.8.0")
latest_version = Version.parse!("0.8.1")
Nerves.Bootstrap.render_update_message(current_version, latest_version)
assert_receive {:mix_shell, :info, [message]}
assert message =~ "mix local.nerves"
end
test "check for update including pre release message" do
current_version = Version.parse!("1.0.0-rc.0")
latest_version = Version.parse!("1.0.0-rc.1")
Nerves.Bootstrap.render_update_message(current_version, latest_version)
assert_receive {:mix_shell, :info, [message]}
assert message =~ "mix archive.install hex nerves_bootstrap 1.0.0-rc.1"
end
test "check for update moving from pre to stable message" do
current_version = Version.parse!("1.0.0-rc.0")
latest_version = Version.parse!("1.0.0")
Nerves.Bootstrap.render_update_message(current_version, latest_version)
assert_receive {:mix_shell, :info, [message]}
assert message =~ "mix local.nerves"
end
end