Skip to content

Commit

Permalink
feat: implement 'remove' command
Browse files Browse the repository at this point in the history
Signed-off-by: Julien Bouyoud <jBouyoud@users.noreply.github.com>
  • Loading branch information
jBouyoud committed Nov 11, 2020
1 parent 9402099 commit 772c0c3
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 2 deletions.
26 changes: 26 additions & 0 deletions scripts/commands/remove.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env sh

set -eu

remove_usage() {
cat <<EOF
helm config-scheme remove NAME
Remove NAME configuration scheme
EOF
}

remove() {
if [ $# -lt 1 ]; then
remove_usage
exit 1
fi
scheme_name="${1}"

if ! repository_scheme_exists "${scheme_name}"; then
log_error "[remove] Scheme '${scheme_name}' doesn't exists"
exit 2
fi

repository_delete_scheme "${scheme_name}"
}
4 changes: 4 additions & 0 deletions scripts/lib/repository.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ repository_create_scheme() {
printf '' >"$(_repository_scheme_file "${scheme_name}")"
}

repository_delete_scheme() {
rm -f "$(_repository_scheme_file "${1}")"
}

repository_scheme_append_file_uri() {
scheme_name="${1}"
file_uri="${2}"
Expand Down
7 changes: 7 additions & 0 deletions tests/lib/asserts-config-repository.bash
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@

assert_config_repository_scheme_not_exist() {
file="${HELM_CONFIG_SCHEME_REPOSITORY}/${1}"

assert_file_not_exist "${file}"
}

assert_config_repository_scheme() {
file="${HELM_CONFIG_SCHEME_REPOSITORY}/${1}"

assert_file_exist "${file}"
assert_equal "$(cat "${file}")" "${2}"
}

48 changes: 46 additions & 2 deletions tests/unit/remove.bats
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,53 @@ load '../lib/helper'
load '../bats/extensions/bats-support/load'
load '../bats/extensions/bats-assert/load'
load '../bats/extensions/bats-file/load'
load '../lib/asserts-config-repository'

@test "remove:" {
@test "remove: show help" {
run helm config-scheme remove

assert_failure 1
assert_output --partial 'helm config-scheme remove NAME'
}

@test "remove -h: show help" {
run helm config-scheme remove -h

assert_success
assert_output --partial 'helm config-scheme remove NAME'
}

@test "remove --help: show help" {
run helm config-scheme remove --help

assert_success
assert_output --partial 'helm config-scheme remove NAME'
}

@test "remove help: show help" {
run helm config-scheme remove help

assert_success
assert_output --partial 'helm config-scheme remove NAME'
}

@test "remove scheme: show error if not exists" {
helm config-scheme add scheme1 a.yaml
helm config-scheme add scheme2 a.yaml b.yaml

run helm config-scheme remove bob

assert_failure 2
assert_output --partial 'Error: Not yet implemented.'
assert_output --partial "[config-scheme][remove] Scheme 'bob' doesn't exists"
}

@test "remove scheme: remove the scheme" {
helm config-scheme add scheme1 a.yaml
helm config-scheme add scheme2 a.yaml b.yaml

run helm config-scheme remove scheme1

assert_success
assert_config_repository_scheme_not_exist "scheme1"
assert_config_repository_scheme "scheme2" $'a.yaml\nb.yaml'
}

0 comments on commit 772c0c3

Please sign in to comment.