summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAnish Athalye <me@anishathalye.com>2020-03-25 21:38:39 -0400
committerAnish Athalye <me@anishathalye.com>2020-03-26 11:23:07 -0400
commit7ffaa65482a59fa485e7a8f19fe07a33694fc157 (patch)
tree78e5990b5934b920b797fe7bace046b3b9bf51c6 /test
parent5d83f9e797b1950199e127a8196803f5e33e0916 (diff)
Add --only and --except command-line arguments
Internal to Dotbot, we use the name "skip" instead of "except", because the latter is a keyword, and using a name like "except_" didn't seem as nice.
Diffstat (limited to 'test')
-rw-r--r--test/tests/except-multi.bash21
-rw-r--r--test/tests/except.bash31
-rw-r--r--test/tests/only-multi.bash20
-rw-r--r--test/tests/only.bash31
4 files changed, 103 insertions, 0 deletions
diff --git a/test/tests/except-multi.bash b/test/tests/except-multi.bash
new file mode 100644
index 0000000..4193e66
--- /dev/null
+++ b/test/tests/except-multi.bash
@@ -0,0 +1,21 @@
+test_description='--except with multiple arguments'
+. '../test-lib.bash'
+
+test_expect_success 'setup' '
+ln -s ${DOTFILES}/nonexistent ~/bad && touch ${DOTFILES}/y
+'
+
+test_expect_success 'run' '
+run_dotbot --except clean shell <<EOF
+- clean: ["~"]
+- shell:
+ - echo "x" > ~/x
+- link:
+ ~/y: y
+EOF
+'
+
+test_expect_success 'test' '
+[ "$(readlink ~/bad | cut -d/ -f4-)" = "dotfiles/nonexistent" ] &&
+ ! test -f ~/x && test -f ~/y
+'
diff --git a/test/tests/except.bash b/test/tests/except.bash
new file mode 100644
index 0000000..356eaef
--- /dev/null
+++ b/test/tests/except.bash
@@ -0,0 +1,31 @@
+test_description='--except'
+. '../test-lib.bash'
+
+test_expect_success 'setup' '
+echo "apple" > ${DOTFILES}/x
+'
+
+test_expect_success 'run' '
+run_dotbot --except link <<EOF
+- shell:
+ - echo "pear" > ~/y
+- link:
+ ~/x: x
+EOF
+'
+
+test_expect_success 'test' '
+grep "pear" ~/y && ! test -f ~/x
+'
+
+test_expect_success 'run 2' '
+run_dotbot --except shell <<EOF
+- shell:
+ - echo "pear" > ~/z
+- link:
+ ~/x: x
+'
+
+test_expect_success 'test' '
+grep "apple" ~/x && ! test -f ~/z
+'
diff --git a/test/tests/only-multi.bash b/test/tests/only-multi.bash
new file mode 100644
index 0000000..e8d8362
--- /dev/null
+++ b/test/tests/only-multi.bash
@@ -0,0 +1,20 @@
+test_description='--only with multiple arguments'
+. '../test-lib.bash'
+
+test_expect_success 'setup' '
+ln -s ${DOTFILES}/nonexistent ~/bad && touch ${DOTFILES}/y
+'
+
+test_expect_success 'run' '
+run_dotbot --only clean shell <<EOF
+- clean: ["~"]
+- shell:
+ - echo "x" > ~/x
+- link:
+ ~/y: y
+EOF
+'
+
+test_expect_success 'test' '
+! test -f ~/bad && grep "x" ~/x && ! test -f ~/y
+'
diff --git a/test/tests/only.bash b/test/tests/only.bash
new file mode 100644
index 0000000..5222881
--- /dev/null
+++ b/test/tests/only.bash
@@ -0,0 +1,31 @@
+test_description='--only'
+. '../test-lib.bash'
+
+test_expect_success 'setup' '
+echo "apple" > ${DOTFILES}/x
+'
+
+test_expect_success 'run' '
+run_dotbot --only shell <<EOF
+- shell:
+ - echo "pear" > ~/y
+- link:
+ ~/x: x
+EOF
+'
+
+test_expect_success 'test' '
+grep "pear" ~/y && ! test -f ~/x
+'
+
+test_expect_success 'run 2' '
+run_dotbot --only link <<EOF
+- shell:
+ - echo "pear" > ~/z
+- link:
+ ~/x: x
+'
+
+test_expect_success 'test' '
+grep "apple" ~/x && ! test -f ~/z
+'