#!/usr/bin/env bash setup_file(){ load "$PWD/tests/integration/helpers/common" _common_setup _add_server _new_app run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_success } teardown_file(){ run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_success _rm_app _rm_server } setup(){ load "$PWD/tests/integration/helpers/common" _common_setup } @test "generate: validate arguments" { run $ABRA app secret generate assert_failure assert_output --partial 'no app provided' run $ABRA app secret generate DOESNTEXIST assert_failure assert_output --partial 'cannot find app' run $ABRA app secret generate "$TEST_APP_DOMAIN" assert_failure assert_output --partial 'missing arguments' run $ABRA app secret generate "$TEST_APP_DOMAIN" testSecret testVersion --all assert_failure assert_output --partial 'cannot use' assert_output --partial "'--all' together" } @test "generate: single secret no match" { run $ABRA app secret generate "$TEST_APP_DOMAIN" DOESNTEXIST v1 assert_failure assert_output --partial "doesn't exist in the env config" } @test "generate: recipe up to date if no --offline" { run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" reset --hard HEAD~3 assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status assert_output --partial 'behind 3' run $ABRA app secret generate "$TEST_APP_DOMAIN" --all assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status refute_output --partial 'behind 3' run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_success } @test "generate: recipe not up to date if --offline" { latestCommit="$(git -C "$ABRA_DIR/recipes/$TEST_RECIPE" rev-parse --short HEAD)" refute [ -z "$latestCommit" ]; run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" reset --hard HEAD~3 assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status assert_output --partial 'behind 3' run $ABRA app secret generate "$TEST_APP_DOMAIN" --all --offline assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status assert_output --partial 'behind 3' run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$latestCommit" assert_success run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status refute_output --partial 'behind 3' } @test "generate: create secrets" { run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'false' run $ABRA app secret generate "$TEST_APP_DOMAIN" --all assert_success run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'true' run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_success } @test "insert: validate arguments" { run $ABRA app secret insert assert_failure assert_output --partial 'no app provided' run $ABRA app secret insert "$TEST_APP_DOMAIN" assert_failure assert_output --partial 'missing arguments' run $ABRA app secret insert "$TEST_APP_DOMAIN" bar assert_failure assert_output --partial 'missing arguments' run $ABRA app secret insert "$TEST_APP_DOMAIN" bar baz assert_failure assert_output --partial 'missing arguments' } @test "insert: create secret" { run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'false' run $ABRA app secret insert "$TEST_APP_DOMAIN" test_password v1 foo assert_success assert_output --partial 'successfully stored on server' run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'true' run $ABRA app secret rm "$TEST_APP_DOMAIN" test_password assert_success } @test "rm: validate arguments" { run $ABRA app secret rm assert_failure assert_output --partial 'no app provided' run $ABRA app secret rm DOESNTEXIST assert_failure assert_output --partial 'cannot find app' run $ABRA app secret rm "$TEST_APP_DOMAIN" assert_failure assert_output --partial 'no secret(s) specified' run $ABRA app secret rm "$TEST_APP_DOMAIN" test_password --all assert_failure assert_output --partial 'cannot use' assert_output --partial "'--all' together" } @test "rm: single secret no match" { run $ABRA app secret rm "$TEST_APP_DOMAIN" foo_password assert_failure assert_output --partial "doesn't exist on server" } @test "rm: no secret match" { run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_failure assert_output --partial 'no secrets to remove' } @test "rm: remove secret" { run $ABRA app secret generate "$TEST_APP_DOMAIN" --all assert_success run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'true' run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_success run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'false' } @test "ls: validate arguments" { run $ABRA app secret ls assert_failure assert_output --partial 'no app provided' run $ABRA app secret ls DOESNTEXIST assert_failure assert_output --partial 'cannot find app' } @test "ls: show secrets" { run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'false' run $ABRA app secret generate "$TEST_APP_DOMAIN" --all assert_success run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'true' run $ABRA app secret rm "$TEST_APP_DOMAIN" --all assert_success }