1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
require 'spec_helper'
FILE_PATH = './test_bashrc'.freeze
describe Mkalias do
it 'has a version number' do
expect(Mkalias::VERSION).not_to be nil
end
describe 'test Mkalias functions' do
before do
File.new(FILE_PATH, 'w')
open(FILE_PATH, 'a') do |file|
file.puts("\n")
file.puts("alias cd='mkalias_cd'\n")
file.puts("function mkalias_cd(){ ls -la; }\n")
file.puts("\n")
file.puts("alias mv='mkalias_mv'\n")
file.puts("function mkalias_mv(){ touch; pwd; }\n")
file.puts("\n")
file.puts("alias fkd='mkalias_fkd'\n")
file.puts("function mkalias_fkd(){ flake8 $(git ls-files -m) $@; }\n")
end
end
after do
File.delete(FILE_PATH)
end
it 'create new alias' do
alias_name = 'ls'
command = 'pwd'
Mkalias.new_alias(alias_name, command, FILE_PATH)
lines = File.readlines(FILE_PATH)
expect(lines).to include("alias ls='mkalias_ls'\n")
expect(lines).to include("function mkalias_ls(){ pwd $@; }\n")
end
it 'create new alias with args' do
alias_name = 'ls'
command = 'echo #1 #2'
Mkalias.new_alias(alias_name, command, FILE_PATH)
lines = File.readlines(FILE_PATH)
expect(lines).to include("alias ls='mkalias_ls'\n")
expect(lines).to include("function mkalias_ls(){ echo $1 $2; }\n")
end
it 'create new alias with multiple commands' do
alias_name = 'ls'
commands = ['pwd', 'echo a', 'cd']
Mkalias.new_alias(alias_name, commands, FILE_PATH)
lines = File.readlines(FILE_PATH)
expect(lines).to include "alias ls='mkalias_ls'\n"
expect(lines).to include "function mkalias_ls(){ pwd; echo a; cd; }\n"
end
it 'dont create new alias with an existing name' do
alias_name = 'cd'
command = 'echo #1 #2'
result = Mkalias.new_alias(alias_name, command, FILE_PATH)
expect(result).to be false
end
it 'list all alias' do
alias_names = Mkalias.list_alias(FILE_PATH)
expect(alias_names).to include 'cd'
expect(alias_names).to include 'mv'
expect(alias_names).to include 'fkd'
end
it 'show alias commands' do
alias_commands = Mkalias.show_alias(%w(cd mv fkd), FILE_PATH)
expect(alias_commands['cd']).to include 'ls -la'
expect(alias_commands['mv'][0]).to eq 'touch'
expect(alias_commands['mv'][1]).to eq 'pwd'
expect(alias_commands['fkd']).to include 'flake8 $(git ls-files -m) $@'
end
it 'dont show alias commands if alias not exists' do
alias_commands = Mkalias.show_alias(['dd'], FILE_PATH)
expect(alias_commands.keys).not_to include 'dd'
end
it 'remove alias' do
removed_alias = Mkalias.remove_alias(%w(cd mv), FILE_PATH)
alias_names = Mkalias.list_alias(FILE_PATH)
expect(removed_alias).to include 'cd'
expect(removed_alias).to include 'mv'
expect(alias_names).not_to include 'cd'
expect(alias_names).not_to include 'mv'
end
it 'add signal' do
result = Mkalias.add_signal(FILE_PATH)
expect(result).to be true
end
it 'dont add signal if already exists' do
Mkalias.add_signal(FILE_PATH)
result = Mkalias.add_signal(FILE_PATH)
expect(result).to be false
end
it 'remove signal' do
Mkalias.add_signal(FILE_PATH)
result = Mkalias.remove_signal(FILE_PATH)
expect(result).to be true
end
it 'dont remove signal unless already exists' do
result = Mkalias.remove_signal(FILE_PATH)
expect(result).to be false
end
end
end
|