#!/usr/bin/env bats

setup() {
    export ABRA_DIR=$(mktemp -d)
    mkdir -p $ABRA_DIR/servers/default
}

teardown() {
    rm -rf "$ABRA_DIR"
}

@test "abra server (add|rm)" {
    ./abra server add swarm.test.com
    docker context ls | grep swarm.test.com
    [ -d $ABRA_DIR/servers/swarm.test.com ]
    ./abra server swarm.test.com rm

    ./abra server add swarm.test.com foobar 12345
    [ -d $ABRA_DIR/servers/swarm.test.com ]
    ./abra server swarm.test.com rm
}

@test "abra server init" {
    ./abra server default init
}

@test "abra app (new|rm)" {
    ./abra app new --server default --domain traefik.test.com --app-name traefik_test_com traefik
    [ -f $ABRA_DIR/servers/default/traefik_test_com.env ]

    # interactive prompt
    echo "y" | ./abra app traefik_test_com delete
    [ ! -f $ABRA_DIR/servers/default/traefik_test_com.env ]

    # --force
    ./abra app new --server default --domain traefik_test_com --app-name traefik_test_com traefik
    ./abra app traefik_test_com delete --force
    [ ! -f $ABRA_DIR/servers/default/traefik_test_com.env ]
}

@test "abra app <domain> secret (insert|generate|rm)" {
    ./abra app new --server default --domain traefik_test_com --app-name traefik_test_com traefik

    ./abra app traefik_test_com secret insert foobar v1 "foobar"

    # interactive prompt
    echo "y" | ./abra app traefik_test_com secret rm foobar

    ./abra app traefik_test_com secret insert foobar v1 "foobar"
    #  prompt
    ./abra app traefik_test_com secret rm foobar --force
}