From 80e510d65bd4b20e2e61cafee0b5f7c2ec832ab6 Mon Sep 17 00:00:00 2001 From: Nils Winkler Date: Fri, 6 Oct 2017 17:29:12 +0200 Subject: [PATCH] Added assert_link_exist function and use that --- test/bash_it/bash_it.bats | 94 ++++++++-------- test/completion/bash-it.completion.bats | 60 +++++----- test/install/install.bats | 10 +- test/lib/helpers.bats | 140 ++++++++++++------------ test/test_helper.bash | 45 ++++++++ 5 files changed, 197 insertions(+), 152 deletions(-) diff --git a/test/bash_it/bash_it.bats b/test/bash_it/bash_it.bats index 1fef3033..886453dd 100644 --- a/test/bash_it/bash_it.bats +++ b/test/bash_it/bash_it.bats @@ -46,12 +46,12 @@ function local_teardown { mkdir -p $BASH_IT/plugins/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -69,12 +69,12 @@ function local_teardown { mkdir -p $BASH_IT/plugins/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/175---a.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/175---a.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/175---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -92,14 +92,14 @@ function local_teardown { mkdir -p $BASH_IT/plugins/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash" ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---c.plugin.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -118,14 +118,14 @@ function local_teardown { mkdir -p $BASH_IT/completion/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/150---a.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---a.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/completion/enabled/350---b.completion.bash - assert [ -L "$BASH_IT/completion/enabled/350---b.completion.bash" ] + assert_link_exist "$BASH_IT/completion/enabled/350---b.completion.bash" ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---c.plugin.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -145,14 +145,14 @@ function local_teardown { mkdir -p $BASH_IT/completion/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/450---a.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/450---a.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/450---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/completion/enabled/350---b.completion.bash - assert [ -L "$BASH_IT/completion/enabled/350---b.completion.bash" ] + assert_link_exist "$BASH_IT/completion/enabled/350---b.completion.bash" ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/950---c.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/950---c.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/950---c.plugin.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -171,14 +171,14 @@ function local_teardown { mkdir -p $BASH_IT/plugins/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/aliases/enabled/350---a.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/350---a.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/350---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash" ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/plugins/enabled/250---c.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---c.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---c.plugin.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -197,12 +197,12 @@ function local_teardown { mkdir -p $BASH_IT/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/150---a.aliases.bash - assert [ -L "$BASH_IT/enabled/150---a.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -219,12 +219,12 @@ function local_teardown { mkdir -p $BASH_IT/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/175---a.aliases.bash - assert [ -L "$BASH_IT/enabled/175---a.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/175---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -241,14 +241,14 @@ function local_teardown { mkdir -p $BASH_IT/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/150---a.aliases.bash - assert [ -L "$BASH_IT/enabled/150---a.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash" ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/enabled/250---c.plugin.bash - assert [ -L "$BASH_IT/enabled/250---c.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---c.plugin.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -265,14 +265,14 @@ function local_teardown { mkdir -p $BASH_IT/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/350---a.aliases.bash - assert [ -L "$BASH_IT/enabled/350---a.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/350---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash" ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/enabled/250---c.plugin.bash - assert [ -L "$BASH_IT/enabled/250---c.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---c.plugin.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -292,17 +292,17 @@ function local_teardown { mkdir -p $BASH_IT/aliases/enabled ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash" ln -s $BASH_IT/aliases/available/a.aliases.bash $BASH_IT/enabled/350---a.aliases.bash - assert [ -L "$BASH_IT/enabled/350---a.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/350---a.aliases.bash" ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---b.aliases.bash" ln -s $BASH_IT/plugins/available/c.plugin.bash $BASH_IT/enabled/250---c.plugin.bash - assert [ -L "$BASH_IT/enabled/250---c.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---c.plugin.bash" # Add one file in the old directory structure ln -s $BASH_IT/aliases/available/b.aliases.bash $BASH_IT/aliases/enabled/150---b.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---b.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---b.aliases.bash" # The `test_alias` alias should not exist run alias test_alias &> /dev/null @@ -320,9 +320,9 @@ function local_teardown { @test "bash-it: load enabled aliases from new structure, priority-based" { mkdir -p $BASH_IT/enabled ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash - assert [ -L "$BASH_IT/enabled/150---atom.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash" ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash" # The `ah` alias should not exist run alias ah &> /dev/null @@ -338,9 +338,9 @@ function local_teardown { mkdir -p $BASH_IT/aliases/enabled mkdir -p $BASH_IT/plugins/enabled ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/250---base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---base.plugin.bash" # The `ah` alias should not exist run alias ah &> /dev/null @@ -356,9 +356,9 @@ function local_teardown { mkdir -p $BASH_IT/aliases/enabled mkdir -p $BASH_IT/plugins/enabled ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/atom.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash" ln -s $BASH_IT/plugins/available/base.plugin.bash $BASH_IT/plugins/enabled/base.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/base.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/base.plugin.bash" # The `ah` alias should not exist run alias ah &> /dev/null diff --git a/test/completion/bash-it.completion.bats b/test/completion/bash-it.completion.bats index b8aef96f..3cdc84ba 100644 --- a/test/completion/bash-it.completion.bats +++ b/test/completion/bash-it.completion.bats @@ -164,10 +164,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the a* aliases when atom is enabled with the old location and name" { ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/atom.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash" ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/completion/enabled/apm.completion.bash - assert [ -L "$BASH_IT/completion/enabled/apm.completion.bash" ] + assert_link_exist "$BASH_IT/completion/enabled/apm.completion.bash" run __check_completion 'bash-it disable alias a' assert_line -n 0 "all atom" @@ -175,10 +175,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the a* aliases when atom is enabled with the old location and priority-based name" { ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/completion/enabled/350---apm.completion.bash - assert [ -L "$BASH_IT/completion/enabled/350---apm.completion.bash" ] + assert_link_exist "$BASH_IT/completion/enabled/350---apm.completion.bash" run __check_completion 'bash-it disable alias a' assert_line -n 0 "all atom" @@ -186,10 +186,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the a* aliases when atom is enabled with the new location and priority-based name" { ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash - assert [ -L "$BASH_IT/enabled/150---atom.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash" ln -s $BASH_IT/completion/available/apm.completion.bash $BASH_IT/enabled/350---apm.completion.bash - assert [ -L "$BASH_IT/enabled/350---apm.completion.bash" ] + assert_link_exist "$BASH_IT/enabled/350---apm.completion.bash" run __check_completion 'bash-it disable alias a' assert_line -n 0 "all atom" @@ -197,10 +197,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the old location and name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/plugins/enabled/docker-machine.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/docker-machine.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/docker-machine.plugin.bash" run __check_completion 'bash-it disable plugin docker' assert_line -n 0 "docker-machine" @@ -208,10 +208,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the old location and priority-based name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/plugins/enabled/350---docker-machine.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/350---docker-machine.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/350---docker-machine.plugin.bash" run __check_completion 'bash-it disable plugin docker' assert_line -n 0 "docker-machine" @@ -219,10 +219,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the docker-machine plugin when docker-machine is enabled with the new location and priority-based name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash - assert [ -L "$BASH_IT/enabled/150---docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash" ln -s $BASH_IT/plugins/available/docker-machine.plugin.bash $BASH_IT/enabled/350---docker-machine.plugin.bash - assert [ -L "$BASH_IT/enabled/350---docker-machine.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/350---docker-machine.plugin.bash" run __check_completion 'bash-it disable plugin docker' assert_line -n 0 "docker-machine" @@ -230,10 +230,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and name" { ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/todo.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/todo.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/todo.plugin.bash" run __check_completion 'bash-it disable alias to' assert_line -n 0 "todo.txt-cli" @@ -241,10 +241,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and priority-based name" { ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash" ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/350---todo.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/350---todo.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/350---todo.plugin.bash" run __check_completion 'bash-it disable alias to' assert_line -n 0 "todo.txt-cli" @@ -252,10 +252,10 @@ function __check_completion () { @test "completion bash-it: disable - provide the todo.txt-cli aliases when todo plugin is enabled with the new location and priority-based name" { ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/enabled/150---todo.txt-cli.aliases.bash - assert [ -L "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/enabled/350---todo.plugin.bash - assert [ -L "$BASH_IT/enabled/350---todo.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/350---todo.plugin.bash" run __check_completion 'bash-it disable alias to' assert_line -n 0 "todo.txt-cli" @@ -273,7 +273,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the a* aliases when atom is enabled with the old location and name" { ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/atom.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/atom.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/atom.aliases.bash" run __check_completion 'bash-it enable alias a' assert_line -n 0 "all ag ansible apt" @@ -281,7 +281,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the a* aliases when atom is enabled with the old location and priority-based name" { ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/aliases/enabled/150---atom.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---atom.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---atom.aliases.bash" run __check_completion 'bash-it enable alias a' assert_line -n 0 "all ag ansible apt" @@ -289,7 +289,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the a* aliases when atom is enabled with the new location and priority-based name" { ln -s $BASH_IT/aliases/available/atom.aliases.bash $BASH_IT/enabled/150---atom.aliases.bash - assert [ -L "$BASH_IT/enabled/150---atom.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---atom.aliases.bash" run __check_completion 'bash-it enable alias a' assert_line -n 0 "all ag ansible apt" @@ -297,7 +297,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the old location and name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" run __check_completion 'bash-it enable plugin docker' assert_line -n 0 "docker-compose docker-machine docker" @@ -305,7 +305,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the old location and priority-based name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" run __check_completion 'bash-it enable plugin docker' assert_line -n 0 "docker-compose docker-machine docker" @@ -313,7 +313,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the docker-* plugins when nothing is enabled with the new location and priority-based name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash - assert [ -L "$BASH_IT/enabled/150---docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash" run __check_completion 'bash-it enable plugin docker' assert_line -n 0 "docker-compose docker-machine docker" @@ -321,7 +321,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the old location and name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/docker-compose.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/docker-compose.aliases.bash" run __check_completion 'bash-it enable completion docker' assert_line -n 0 "docker docker-compose docker-machine" @@ -329,7 +329,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the old location and priority-based name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" run __check_completion 'bash-it enable completion docker' assert_line -n 0 "docker docker-compose docker-machine" @@ -337,7 +337,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the docker-* completions when nothing is enabled with the new location and priority-based name" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/enabled/150---docker-compose.aliases.bash - assert [ -L "$BASH_IT/enabled/150---docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---docker-compose.aliases.bash" run __check_completion 'bash-it enable completion docker' assert_line -n 0 "docker docker-compose docker-machine" @@ -345,7 +345,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and name" { ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/todo.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/todo.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/todo.plugin.bash" run __check_completion 'bash-it enable alias to' assert_line -n 0 "todo.txt-cli" @@ -353,7 +353,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the old location and priority-based name" { ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/plugins/enabled/350---todo.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/350---todo.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/350---todo.plugin.bash" run __check_completion 'bash-it enable alias to' assert_line -n 0 "todo.txt-cli" @@ -361,7 +361,7 @@ function __check_completion () { @test "completion bash-it: enable - provide the todo.txt-cli aliases when todo plugin is enabled with the new location and priority-based name" { ln -s $BASH_IT/plugins/available/todo.plugin.bash $BASH_IT/enabled/350---todo.plugin.bash - assert [ -L "$BASH_IT/enabled/350---todo.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/350---todo.plugin.bash" run __check_completion 'bash-it enable alias to' assert_line -n 0 "todo.txt-cli" diff --git a/test/install/install.bats b/test/install/install.bats index 23684137..7e971d1f 100644 --- a/test/install/install.bats +++ b/test/install/install.bats @@ -52,11 +52,11 @@ function local_teardown { assert_file_exist "$BASH_IT_TEST_HOME/$BASH_IT_CONFIG_FILE" - assert [ -L "$BASH_IT/enabled/150---general.aliases.bash" ] - assert [ -L "$BASH_IT/enabled/250---base.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/365---alias-completion.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/350---bash-it.completion.bash" ] - assert [ -L "$BASH_IT/enabled/350---system.completion.bash" ] + assert_link_exist "$BASH_IT/enabled/150---general.aliases.bash" + assert_link_exist "$BASH_IT/enabled/250---base.plugin.bash" + assert_link_exist "$BASH_IT/enabled/365---alias-completion.plugin.bash" + assert_link_exist "$BASH_IT/enabled/350---bash-it.completion.bash" + assert_link_exist "$BASH_IT/enabled/350---system.completion.bash" } @test "install: verify that a backup file is created" { diff --git a/test/lib/helpers.bats b/test/lib/helpers.bats index db956fc2..08e4ec5f 100644 --- a/test/lib/helpers.bats +++ b/test/lib/helpers.bats @@ -67,7 +67,7 @@ function local_setup { @test "helpers: bash-it help list aliases with ag aliases enabled" { ln -s $BASH_IT/aliases/available/ag.aliases.bash $BASH_IT/aliases/enabled/150---ag.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---ag.aliases.bash" run _help-list-aliases "$BASH_IT/aliases/enabled/150---ag.aliases.bash" assert_line -n 0 "ag:" @@ -75,7 +75,7 @@ function local_setup { @test "helpers: bash-it help list aliases with todo.txt-cli aliases enabled" { ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash" run _help-list-aliases "$BASH_IT/aliases/enabled/150---todo.txt-cli.aliases.bash" assert_line -n 0 "todo.txt-cli:" @@ -83,7 +83,7 @@ function local_setup { @test "helpers: bash-it help list aliases with docker-compose aliases enabled" { ln -s $BASH_IT/aliases/available/docker-compose.aliases.bash $BASH_IT/aliases/enabled/150---docker-compose.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" run _help-list-aliases "$BASH_IT/aliases/enabled/150---docker-compose.aliases.bash" assert_line -n 0 "docker-compose:" @@ -91,7 +91,7 @@ function local_setup { @test "helpers: bash-it help list aliases with ag aliases enabled in global directory" { ln -s $BASH_IT/aliases/available/ag.aliases.bash $BASH_IT/enabled/150---ag.aliases.bash - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" run _help-list-aliases "$BASH_IT/enabled/150---ag.aliases.bash" assert_line -n 0 "ag:" @@ -99,7 +99,7 @@ function local_setup { @test "helpers: bash-it help aliases one alias enabled in the old directory" { ln -s $BASH_IT/aliases/available/ag.aliases.bash $BASH_IT/aliases/enabled/150---ag.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/150---ag.aliases.bash" run bash-it help aliases assert_line -n 0 "ag:" @@ -108,11 +108,11 @@ function local_setup { @test "helpers: bash-it help aliases one alias enabled in global directory" { run bash-it enable alias "ag" assert_line -n 0 'ag enabled with priority 150.' - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" run bash-it enable plugin "aws" assert_line -n 0 'aws enabled with priority 250.' - assert [ -L "$BASH_IT/enabled/250---aws.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---aws.plugin.bash" run bash-it help aliases assert_line -n 0 "ag:" @@ -122,31 +122,31 @@ function local_setup { @test "helpers: enable the todo.txt-cli aliases through the bash-it function" { run bash-it enable alias "todo.txt-cli" assert_line -n 0 'todo.txt-cli enabled with priority 150.' - assert [ -L "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" } @test "helpers: enable the curl aliases" { run _enable-alias "curl" assert_line -n 0 'curl enabled with priority 150.' - assert [ -L "$BASH_IT/enabled/150---curl.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---curl.aliases.bash" } @test "helpers: enable the apm completion through the bash-it function" { run bash-it enable completion "apm" assert_line -n 0 'apm enabled with priority 350.' - assert [ -L "$BASH_IT/enabled/350---apm.completion.bash" ] + assert_link_exist "$BASH_IT/enabled/350---apm.completion.bash" } @test "helpers: enable the brew completion" { run _enable-completion "brew" assert_line -n 0 'brew enabled with priority 350.' - assert [ -L "$BASH_IT/enabled/350---brew.completion.bash" ] + assert_link_exist "$BASH_IT/enabled/350---brew.completion.bash" } @test "helpers: enable the node plugin" { run _enable-plugin "node" assert_line -n 0 'node enabled with priority 250.' - assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" assert_equal "../plugins/available/node.plugin.bash" "`readlink $BASH_IT/enabled/250---node.plugin.bash`" } @@ -154,28 +154,28 @@ function local_setup { @test "helpers: enable the node plugin through the bash-it function" { run bash-it enable plugin "node" assert_line -n 0 'node enabled with priority 250.' - assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" } @test "helpers: enable the node and nvm plugins through the bash-it function" { run bash-it enable plugin "node" "nvm" assert_line -n 0 'node enabled with priority 250.' assert_line -n 1 'nvm enabled with priority 225.' - assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" } @test "helpers: enable the foo-unkown and nvm plugins through the bash-it function" { run bash-it enable plugin "foo-unknown" "nvm" assert_line -n 0 'sorry, foo-unknown does not appear to be an available plugin.' assert_line -n 1 'nvm enabled with priority 225.' - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" } @test "helpers: enable the nvm plugin" { run _enable-plugin "nvm" assert_line -n 0 'nvm enabled with priority 225.' - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" } @test "helpers: enable an unknown plugin" { @@ -211,7 +211,7 @@ function local_setup { @test "helpers: enable and disable the nvm plugin" { run _enable-plugin "nvm" assert_line -n 0 'nvm enabled with priority 225.' - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] run _disable-plugin "nvm" @@ -221,7 +221,7 @@ function local_setup { @test "helpers: disable the nvm plugin if it was enabled with a priority, but in the component-specific directory" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] run _disable-plugin "nvm" @@ -232,7 +232,7 @@ function local_setup { @test "helpers: disable the nvm plugin if it was enabled without a priority" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" run _disable-plugin "nvm" assert_line -n 0 'nvm disabled.' @@ -241,42 +241,42 @@ function local_setup { @test "helpers: enable the nvm plugin if it was enabled without a priority" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" run _enable-plugin "nvm" assert_line -n 0 'nvm is already enabled.' - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" assert [ ! -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] } @test "helpers: enable the nvm plugin if it was enabled with a priority, but in the component-specific directory" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" run _enable-plugin "nvm" assert_line -n 0 'nvm is already enabled.' assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] - assert [ -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" assert [ ! -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] } @test "helpers: enable the nvm plugin twice" { run _enable-plugin "nvm" assert_line -n 0 'nvm enabled with priority 225.' - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" run _enable-plugin "nvm" assert_line -n 0 'nvm is already enabled.' - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" } @test "helpers: migrate plugins and completions that share the same name" { ln -s $BASH_IT/completion/available/dirs.completion.bash $BASH_IT/completion/enabled/350---dirs.completion.bash - assert [ -L "$BASH_IT/completion/enabled/350---dirs.completion.bash" ] + assert_link_exist "$BASH_IT/completion/enabled/350---dirs.completion.bash" ln -s $BASH_IT/plugins/available/dirs.plugin.bash $BASH_IT/plugins/enabled/250---dirs.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---dirs.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---dirs.plugin.bash" run _bash-it-migrate assert_line -n 0 'Migrating plugin dirs.' @@ -287,34 +287,34 @@ function local_setup { assert_line -n 5 'dirs enabled with priority 350.' assert_line -n 6 'If any migration errors were reported, please try the following: reload && bash-it migrate' - assert [ -L "$BASH_IT/enabled/350---dirs.completion.bash" ] - assert [ -L "$BASH_IT/enabled/250---dirs.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/350---dirs.completion.bash" + assert_link_exist "$BASH_IT/enabled/250---dirs.plugin.bash" assert [ ! -L "$BASH_IT/completion/enabled/350----dirs.completion.bash" ] assert [ ! -L "$BASH_IT/plugins/enabled/250----dirs.plugin.bash" ] } @test "helpers: migrate enabled plugins that don't use the new priority-based configuration" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/node.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/node.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/node.plugin.bash" ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" run _enable-plugin "ssh" - assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash" run _bash-it-migrate assert_line -n 0 'Migrating alias todo.txt-cli.' assert_line -n 1 'todo.txt-cli disabled.' assert_line -n 2 'todo.txt-cli enabled with priority 150.' - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" + assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" + assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash" + assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" assert [ ! -L "$BASH_IT/plugins/enabled/node.plugin.bash" ] assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] assert [ ! -L "$BASH_IT/aliases/enabled/todo.txt-cli.aliases.bash" ] @@ -322,22 +322,22 @@ function local_setup { @test "helpers: migrate enabled plugins that use the new priority-based configuration in the individual directories" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---node.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash" ln -s $BASH_IT/aliases/available/todo.txt-cli.aliases.bash $BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash - assert [ -L "$BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/aliases/enabled/250---todo.txt-cli.aliases.bash" run _enable-plugin "ssh" - assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash" run _bash-it-migrate - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" + assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" + assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash" + assert_link_exist "$BASH_IT/enabled/150---todo.txt-cli.aliases.bash" assert [ ! -L "$BASH_IT/plugins/enabled/225----node.plugin.bash" ] assert [ ! -L "$BASH_IT/plugins/enabled/250----nvm.plugin.bash" ] assert [ ! -L "$BASH_IT/aliases/enabled/250----todo.txt-cli.aliases.bash" ] @@ -349,10 +349,10 @@ function local_setup { @test "helpers: run the migrate command without anything to migrate" { run _enable-plugin "ssh" - assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash" run _bash-it-migrate - assert [ -L "$BASH_IT/enabled/250---ssh.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/250---ssh.plugin.bash" } function __migrate_all_components() { @@ -430,7 +430,7 @@ function __migrate_all_components() { @test "helpers: verify that existing components are automatically migrated when something is enabled" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" run bash-it enable plugin "node" assert_line -n 0 'Migrating plugin nvm.' @@ -439,15 +439,15 @@ function __migrate_all_components() { assert_line -n 3 'If any migration errors were reported, please try the following: reload && bash-it migrate' assert_line -n 4 'node enabled with priority 250.' assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/250---node.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" + assert_link_exist "$BASH_IT/enabled/250---node.plugin.bash" } @test "helpers: verify that existing components are automatically migrated when something is disabled" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---node.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash" run bash-it disable plugin "node" assert_line -n 0 'Migrating plugin node.' @@ -459,7 +459,7 @@ function __migrate_all_components() { assert_line -n 6 'If any migration errors were reported, please try the following: reload && bash-it migrate' assert_line -n 7 'node disabled.' assert [ ! -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" assert [ ! -L "$BASH_IT/plugins/enabled/250---node.plugin.bash" ] assert [ ! -L "$BASH_IT/enabled/250---node.plugin.bash" ] } @@ -478,50 +478,50 @@ function __migrate_all_components() { assert_equal "$available" "$enabled" run _enable-alias "ag" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" run _disable-plugin "all" local enabled2=$(find $BASH_IT/enabled -name [0-9]*.plugin.bash | wc -l | xargs) assert_equal "0" "$enabled2" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" } @test "helpers: disable all plugins in the old directory structure" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/node.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/node.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/node.plugin.bash" local enabled=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs) assert_equal "2" "$enabled" run _enable-alias "ag" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" run _disable-plugin "all" local enabled2=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs) assert_equal "0" "$enabled2" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" } @test "helpers: disable all plugins in the old directory structure with priority" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/250---nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---nvm.plugin.bash" ln -s $BASH_IT/plugins/available/node.plugin.bash $BASH_IT/plugins/enabled/250---node.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/250---node.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/250---node.plugin.bash" local enabled=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs) assert_equal "2" "$enabled" run _enable-alias "ag" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" run _disable-plugin "all" local enabled2=$(find $BASH_IT/plugins/enabled -name *.plugin.bash | wc -l | xargs) assert_equal "0" "$enabled2" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" } @test "helpers: disable all plugins without anything enabled" { @@ -529,18 +529,18 @@ function __migrate_all_components() { assert_equal "0" "$enabled" run _enable-alias "ag" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" run _disable-plugin "all" local enabled2=$(find $BASH_IT/enabled -name [0-9]*.plugin.bash | wc -l | xargs) assert_equal "0" "$enabled2" - assert [ -L "$BASH_IT/enabled/150---ag.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ag.aliases.bash" } @test "helpers: enable the ansible aliases through the bash-it function" { run bash-it enable alias "ansible" assert_line -n 0 'ansible enabled with priority 150.' - assert [ -L "$BASH_IT/enabled/150---ansible.aliases.bash" ] + assert_link_exist "$BASH_IT/enabled/150---ansible.aliases.bash" } @test "helpers: describe the nvm plugin without enabling it" { @@ -550,21 +550,21 @@ function __migrate_all_components() { @test "helpers: describe the nvm plugin after enabling it" { run _enable-plugin "nvm" assert_line -n 0 'nvm enabled with priority 225.' - assert [ -L "$BASH_IT/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/enabled/225---nvm.plugin.bash" _bash-it-plugins | grep "nvm" | grep "\[x\]" } @test "helpers: describe the nvm plugin after enabling it in the old directory" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/nvm.plugin.bash" _bash-it-plugins | grep "nvm" | grep "\[x\]" } @test "helpers: describe the nvm plugin after enabling it in the old directory with priority" { ln -s $BASH_IT/plugins/available/nvm.plugin.bash $BASH_IT/plugins/enabled/225---nvm.plugin.bash - assert [ -L "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" ] + assert_link_exist "$BASH_IT/plugins/enabled/225---nvm.plugin.bash" _bash-it-plugins | grep "nvm" | grep "\[x\]" } diff --git a/test/test_helper.bash b/test/test_helper.bash index 9155b434..e2bb9442 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -39,3 +39,48 @@ teardown() { rm -rf "${BASH_IT_TEST_DIR}" } + +# Fail and display path of the link if it does not exist. Also fails +# if the path exists, but is not a link. +# This function is the logical complement of `assert_file_not_exist'. +# There is no dedicated function for checking that a link does not exist. +# +# Globals: +# BATSLIB_FILE_PATH_REM +# BATSLIB_FILE_PATH_ADD +# Arguments: +# $1 - path +# Returns: +# 0 - link exists and is a link +# 1 - otherwise +# Outputs: +# STDERR - details, on failure +assert_link_exist() { + local -r file="$1" + local -r target="$2" + if [[ ! -L "$file" ]]; then + local -r rem="$BATSLIB_FILE_PATH_REM" + local -r add="$BATSLIB_FILE_PATH_ADD" + if [[ -e "$file" ]]; then + batslib_print_kv_single 4 'path' "${file/$rem/$add}" \ + | batslib_decorate 'exists, but is not a link' \ + | fail + else + batslib_print_kv_single 4 'path' "${file/$rem/$add}" \ + | batslib_decorate 'link does not exist' \ + | fail + fi + else + if [ -n "$target" ]; then + local link_target='' + link_target=$(readlink "$file") + if [[ "$link_target" != "$target" ]]; then + batslib_print_kv_single_or_multi 8 'path' "${file/$rem/$add}" \ + 'expected' "$target" \ + 'actual' "$link_target" \ + | batslib_decorate 'link exists, but does not point to target file' \ + | fail + fi + fi + fi +}