2021-04-02 03:46:08 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -o errexit -o errtrace -o functrace -o nounset -o pipefail
|
|
|
|
|
|
|
|
# Test Directory
|
|
|
|
d=$(cd "$(dirname "${BASH_SOURCE[0]:-$PWD}")" 2>/dev/null 1>&2 && pwd)
|
|
|
|
|
|
|
|
test::cli() {
|
|
|
|
local dagger="$1"
|
|
|
|
|
|
|
|
test::cli::list "$dagger"
|
|
|
|
test::cli::newdir "$dagger"
|
2021-04-02 22:55:01 +02:00
|
|
|
test::cli::newgit "$dagger"
|
2021-04-02 03:46:08 +02:00
|
|
|
test::cli::query "$dagger"
|
2021-04-03 00:02:14 +02:00
|
|
|
test::cli::plan "$dagger"
|
2021-04-02 03:46:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
test::cli::list() {
|
|
|
|
local dagger="$1"
|
|
|
|
|
|
|
|
# Create temporary store
|
|
|
|
local DAGGER_STORE
|
|
|
|
DAGGER_STORE="$(mktemp -d -t dagger-store-XXXXXX)"
|
|
|
|
export DAGGER_STORE
|
|
|
|
|
|
|
|
test::one "CLI: list: no deployments" --stdout="" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" list
|
|
|
|
|
|
|
|
test::one "CLI: list: create deployment" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" new --plan-dir "$d"/cli/simple simple
|
|
|
|
|
|
|
|
test::one "CLI: list: with deployments" --stdout="simple" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" list
|
|
|
|
}
|
|
|
|
|
|
|
|
test::cli::newdir() {
|
|
|
|
local dagger="$1"
|
|
|
|
|
|
|
|
# Create temporary store
|
|
|
|
local DAGGER_STORE
|
|
|
|
DAGGER_STORE="$(mktemp -d -t dagger-store-XXXXXX)"
|
|
|
|
export DAGGER_STORE
|
|
|
|
|
|
|
|
test::one "CLI: new: --plan-dir" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" new --plan-dir "$d"/cli/simple simple
|
|
|
|
|
|
|
|
test::one "CLI: new: duplicate name" --exit=1 \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" new --plan-dir "$d"/cli/simple simple
|
|
|
|
|
|
|
|
test::one "CLI: new: verify plan can be upped" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" up -d "simple"
|
|
|
|
|
|
|
|
test::one "CLI: new: verify we have the right plan" --stdout='{
|
|
|
|
foo: "value"
|
|
|
|
bar: "another value"
|
|
|
|
}' \
|
2021-04-03 00:47:59 +02:00
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" query -f cue -d "simple" -c
|
2021-04-02 03:46:08 +02:00
|
|
|
}
|
|
|
|
|
2021-04-02 22:55:01 +02:00
|
|
|
test::cli::newgit() {
|
|
|
|
local dagger="$1"
|
|
|
|
|
|
|
|
# Create temporary store
|
|
|
|
local DAGGER_STORE
|
|
|
|
DAGGER_STORE="$(mktemp -d -t dagger-store-XXXXXX)"
|
|
|
|
export DAGGER_STORE
|
|
|
|
|
|
|
|
test::one "CLI: new: --plan-git" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" new --plan-git https://github.com/samalba/dagger-test.git simple
|
|
|
|
|
|
|
|
test::one "CLI: new: verify plan can be upped" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" up -d "simple"
|
|
|
|
|
|
|
|
test::one "CLI: new: verify we have the right plan" --stdout='{
|
|
|
|
foo: "value"
|
|
|
|
bar: "another value"
|
|
|
|
}' \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" query -d "simple" -c
|
|
|
|
}
|
|
|
|
|
2021-04-02 03:46:08 +02:00
|
|
|
test::cli::query() {
|
|
|
|
local dagger="$1"
|
|
|
|
|
|
|
|
# Create temporary store
|
|
|
|
local DAGGER_STORE
|
|
|
|
DAGGER_STORE="$(mktemp -d -t dagger-store-XXXXXX)"
|
|
|
|
export DAGGER_STORE
|
|
|
|
|
|
|
|
test::one "CLI: query: initialize simple" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" new --plan-dir "$d"/cli/simple simple
|
|
|
|
|
|
|
|
test::one "CLI: query: concrete" --stdout='{
|
|
|
|
foo: "value"
|
|
|
|
bar: "another value"
|
|
|
|
}' \
|
2021-04-03 00:47:59 +02:00
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" query -f cue -d "simple" -c
|
2021-04-02 03:46:08 +02:00
|
|
|
|
|
|
|
test::one "CLI: query: target" --stdout='"value"' \
|
2021-04-03 00:47:59 +02:00
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" query -f cue -d "simple" foo
|
2021-04-02 03:46:08 +02:00
|
|
|
|
|
|
|
test::one "CLI: query: initialize nonconcrete" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" new --plan-dir "$d"/cli/nonconcrete nonconcrete
|
|
|
|
|
|
|
|
test::one "CLI: query: non concrete" --exit=1 \
|
2021-04-03 00:47:59 +02:00
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" query -f cue -d "nonconcrete" -c
|
2021-04-02 03:46:08 +02:00
|
|
|
}
|
2021-04-03 00:02:14 +02:00
|
|
|
|
|
|
|
test::cli::plan() {
|
|
|
|
local dagger="$1"
|
|
|
|
|
|
|
|
# Create temporary store
|
|
|
|
local DAGGER_STORE
|
|
|
|
DAGGER_STORE="$(mktemp -d -t dagger-store-XXXXXX)"
|
|
|
|
export DAGGER_STORE
|
|
|
|
|
|
|
|
test::one "CLI: new" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" new --plan-dir "$d"/cli/simple simple
|
|
|
|
|
|
|
|
test::one "CLI: plan dir" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" -d "simple" plan dir "$d"/cli/nonconcrete
|
|
|
|
|
|
|
|
test::one "CLI: plan dir: query non-concrete" --exit=1 \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" -d "simple" query -c
|
|
|
|
|
|
|
|
test::one "CLI: plan git" \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" -d "simple" plan git https://github.com/samalba/dagger-test.git
|
|
|
|
|
|
|
|
test::one "CLI: plan git: verify we have the right plan" --stdout='{
|
|
|
|
foo: "value"
|
|
|
|
bar: "another value"
|
|
|
|
}' \
|
|
|
|
"$dagger" "${DAGGER_BINARY_ARGS[@]}" query -d "simple" -c
|
|
|
|
}
|