test_run.sh
2747 bytes
1#!/usr/bin/env zunit
2
3@setup {
4 load ../alias-finder.plugin.zsh
5
6 set_git_aliases() {
7 unalias -a # all
8 alias g="git"
9 alias gc="git commit"
10 alias gcv="git commit -v"
11 alias gcvs="git commit -v -S"
12 }
13}
14
15@test 'find aliases that contain input' {
16 set_git_aliases
17
18 run alias-finder "git"
19
20 assert "${#lines[@]}" equals 1
21 assert "${lines[1]}" same_as "g=git"
22}
23
24@test 'find aliases that contain input with whitespaces at ends' {
25 set_git_aliases
26
27 run alias-finder " git "
28
29 assert "${#lines[@]}" equals 1
30 assert "${lines[1]}" same_as "g=git"
31}
32
33@test 'find aliases that contain multiple words' {
34 set_git_aliases
35
36 run alias-finder "git commit -v"
37
38 assert "${#lines[@]}" equals 3
39 assert "${lines[1]}" same_as "gcv='git commit -v'"
40 assert "${lines[2]}" same_as "gc='git commit'"
41 assert "${lines[3]}" same_as "g=git"
42}
43
44@test 'find alias that is the same with input when --exact option is set' {
45 set_git_aliases
46
47 run alias-finder -e "git"
48
49 assert "${#lines[@]}" equals 1
50 assert "${lines[1]}" same_as "g=git"
51}
52
53@test 'find alias that is the same with multiple words input when --exact option is set' {
54 set_git_aliases
55
56 run alias-finder -e "git commit -v"
57
58 assert "${#lines[@]}" equals 1
59 assert "${lines[1]}" same_as "gcv='git commit -v'"
60}
61
62@test 'find alias that is the same with or longer than input when --longer option is set' {
63 set_git_aliases
64
65 run alias-finder -l "git"
66
67 assert "${#lines[@]}" equals 4
68 assert "${lines[1]}" same_as "g=git"
69 assert "${lines[2]}" same_as "gc='git commit'"
70 assert "${lines[3]}" same_as "gcv='git commit -v'"
71 assert "${lines[4]}" same_as "gcvs='git commit -v -S'"
72}
73
74@test 'find alias that is the same with or longer than multiple words input when --longer option is set' {
75 set_git_aliases
76
77 run alias-finder -l "git commit -v"
78
79 assert "${#lines[@]}" equals 2
80 assert "${lines[1]}" same_as "gcv='git commit -v'"
81 assert "${lines[2]}" same_as "gcvs='git commit -v -S'"
82}
83
84@test 'find aliases including expensive (longer) than input' {
85 set_git_aliases
86 alias expensiveCommands="git commit"
87
88 run alias-finder "git commit -v"
89
90 assert "${#lines[@]}" equals 4
91 assert "${lines[1]}" same_as "gcv='git commit -v'"
92 assert "${lines[2]}" same_as "expensiveCommands='git commit'"
93 assert "${lines[3]}" same_as "gc='git commit'"
94 assert "${lines[4]}" same_as "g=git"
95}
96
97@test 'find aliases excluding expensive (longer) than input when --cheap option is set' {
98 set_git_aliases
99 alias expensiveCommands="git commit"
100
101 run alias-finder -c "git commit -v"
102
103 assert "${#lines[@]}" equals 3
104 assert "${lines[1]}" same_as "gcv='git commit -v'"
105 assert "${lines[2]}" same_as "gc='git commit'"
106 assert "${lines[3]}" same_as "g=git"
107}