Packages
nerves_bootstrap
1.7.1
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]
deps_compile = ["nerves.loadpaths", "deps.compile"]
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
assert Keyword.get(aliases, :"deps.compile") == deps_compile
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