Tests: merge compute.bats into core.bats
Signed-off-by: Solomon Hykes <solomon@dagger.io>
This commit is contained in:
parent
d978692ccd
commit
b1d52254b1
@ -1,116 +0,0 @@
|
||||
setup() {
|
||||
load 'helpers'
|
||||
|
||||
common_setup
|
||||
}
|
||||
|
||||
@test "compute: simple" {
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/string
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/bool
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/int
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/struct
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/noop
|
||||
assert_success
|
||||
assert_line '{"empty":{}}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/simple
|
||||
assert_success
|
||||
assert_line '{}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/overload/flat
|
||||
assert_success
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/overload/wrapped
|
||||
assert_success
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/exec-nocache
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "compute: dependencies" {
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dependencies/simple
|
||||
assert_success
|
||||
assert_line '{"A":{"result":"from A"},"B":{"result":"dependency from A"}}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dependencies/interpolation
|
||||
assert_success
|
||||
assert_line '{"A":{"result":"from A"},"B":{"result":"dependency from A"}}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dependencies/unmarshal
|
||||
assert_success
|
||||
assert_line '{"A":"{\"hello\": \"world\"}\n","B":{"result":"unmarshalled.hello=world"},"unmarshalled":{"hello":"world"}}'
|
||||
}
|
||||
|
||||
@test "compute: inputs" {
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/input/simple
|
||||
assert_success
|
||||
assert_line '{}'
|
||||
|
||||
run "$DAGGER" compute --input-string 'in=foobar' "$TESTDIR"/compute/input/simple
|
||||
assert_success
|
||||
assert_line '{"in":"foobar","test":"received: foobar"}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/input/default
|
||||
assert_success
|
||||
assert_line '{"in":"default input","test":"received: default input"}'
|
||||
|
||||
run "$DAGGER" compute --input-string 'in=foobar' "$TESTDIR"/compute/input/default
|
||||
assert_success
|
||||
assert_line '{"in":"foobar","test":"received: foobar"}'
|
||||
|
||||
run "$DAGGER" compute --input-string=foobar "$TESTDIR"/compute/input/default
|
||||
assert_failure
|
||||
assert_output --partial 'failed to parse input: input-string'
|
||||
|
||||
run "$DAGGER" compute --input-dir=foobar "$TESTDIR"/compute/input/default
|
||||
assert_failure
|
||||
assert_output --partial 'failed to parse input: input-dir'
|
||||
|
||||
run "$DAGGER" compute --input-git=foobar "$TESTDIR"/compute/input/default
|
||||
assert_failure
|
||||
assert_output --partial 'failed to parse input: input-git'
|
||||
}
|
||||
|
||||
@test "compute: secrets" {
|
||||
# secrets used as environment variables must fail
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/secrets/invalid/env
|
||||
assert_failure
|
||||
assert_line --partial "conflicting values"
|
||||
|
||||
# strings passed as secrets must fail
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/secrets/invalid/string
|
||||
assert_failure
|
||||
|
||||
# Setting a text input for a secret value should fail
|
||||
run "$DAGGER" compute --input-string 'mySecret=SecretValue' "$TESTDIR"/compute/secrets/simple
|
||||
assert_failure
|
||||
|
||||
# Now test with an actual secret and make sure it works
|
||||
"$DAGGER" init
|
||||
dagger_new_with_plan secrets "$TESTDIR"/compute/secrets/simple
|
||||
"$DAGGER" input secret mySecret SecretValue
|
||||
run "$DAGGER" up
|
||||
assert_success
|
||||
|
||||
# Make sure the secret doesn't show in dagger query
|
||||
run "$DAGGER" query mySecret.id -f text
|
||||
assert_success
|
||||
assert_output "secret=mySecret"
|
||||
}
|
||||
|
||||
@test "compute: docker socket" {
|
||||
skip "docker socket support disabled"
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dockersocket
|
||||
}
|
||||
|
||||
@test "compute: exclude" {
|
||||
"$DAGGER" up -w "$TESTDIR"/compute/exclude
|
||||
}
|
125
tests/core.bats
125
tests/core.bats
@ -4,12 +4,20 @@ setup() {
|
||||
load 'helpers'
|
||||
|
||||
common_setup
|
||||
|
||||
# Use native Dagger environment here
|
||||
unset DAGGER_WORKSPACE
|
||||
}
|
||||
|
||||
# This file combines 2 types of tests:
|
||||
# old-style tests: use 'dagger compute'
|
||||
# new-style tests: use 'dagger up'
|
||||
#
|
||||
# For new tests, please adopt new-style.
|
||||
# NOTE: you will need to 'unset DAGGER_WORKSPACE'
|
||||
# at the beginning of each new-style test.
|
||||
|
||||
@test "core: inputs & outputs" {
|
||||
# Use native Dagger environment here
|
||||
unset DAGGER_WORKSPACE
|
||||
|
||||
# List available inputs
|
||||
run dagger -e test-core input list
|
||||
assert_success
|
||||
@ -33,3 +41,114 @@ setup() {
|
||||
assert_output --partial 'Hello, world!'
|
||||
}
|
||||
|
||||
|
||||
@test "compute: simple" {
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/string
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/bool
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/int
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/invalid/struct
|
||||
assert_failure
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/noop
|
||||
assert_success
|
||||
assert_line '{"empty":{}}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/simple
|
||||
assert_success
|
||||
assert_line '{}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/overload/flat
|
||||
assert_success
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/overload/wrapped
|
||||
assert_success
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/success/exec-nocache
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "compute: dependencies" {
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dependencies/simple
|
||||
assert_success
|
||||
assert_line '{"A":{"result":"from A"},"B":{"result":"dependency from A"}}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dependencies/interpolation
|
||||
assert_success
|
||||
assert_line '{"A":{"result":"from A"},"B":{"result":"dependency from A"}}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dependencies/unmarshal
|
||||
assert_success
|
||||
assert_line '{"A":"{\"hello\": \"world\"}\n","B":{"result":"unmarshalled.hello=world"},"unmarshalled":{"hello":"world"}}'
|
||||
}
|
||||
|
||||
@test "compute: inputs" {
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/input/simple
|
||||
assert_success
|
||||
assert_line '{}'
|
||||
|
||||
run "$DAGGER" compute --input-string 'in=foobar' "$TESTDIR"/compute/input/simple
|
||||
assert_success
|
||||
assert_line '{"in":"foobar","test":"received: foobar"}'
|
||||
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/input/default
|
||||
assert_success
|
||||
assert_line '{"in":"default input","test":"received: default input"}'
|
||||
|
||||
run "$DAGGER" compute --input-string 'in=foobar' "$TESTDIR"/compute/input/default
|
||||
assert_success
|
||||
assert_line '{"in":"foobar","test":"received: foobar"}'
|
||||
|
||||
run "$DAGGER" compute --input-string=foobar "$TESTDIR"/compute/input/default
|
||||
assert_failure
|
||||
assert_output --partial 'failed to parse input: input-string'
|
||||
|
||||
run "$DAGGER" compute --input-dir=foobar "$TESTDIR"/compute/input/default
|
||||
assert_failure
|
||||
assert_output --partial 'failed to parse input: input-dir'
|
||||
|
||||
run "$DAGGER" compute --input-git=foobar "$TESTDIR"/compute/input/default
|
||||
assert_failure
|
||||
assert_output --partial 'failed to parse input: input-git'
|
||||
}
|
||||
|
||||
@test "compute: secrets" {
|
||||
# secrets used as environment variables must fail
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/secrets/invalid/env
|
||||
assert_failure
|
||||
assert_line --partial "conflicting values"
|
||||
|
||||
# strings passed as secrets must fail
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/secrets/invalid/string
|
||||
assert_failure
|
||||
|
||||
# Setting a text input for a secret value should fail
|
||||
run "$DAGGER" compute --input-string 'mySecret=SecretValue' "$TESTDIR"/compute/secrets/simple
|
||||
assert_failure
|
||||
|
||||
# Now test with an actual secret and make sure it works
|
||||
"$DAGGER" init
|
||||
dagger_new_with_plan secrets "$TESTDIR"/compute/secrets/simple
|
||||
"$DAGGER" input secret mySecret SecretValue
|
||||
run "$DAGGER" up
|
||||
assert_success
|
||||
|
||||
# Make sure the secret doesn't show in dagger query
|
||||
run "$DAGGER" query mySecret.id -f text
|
||||
assert_success
|
||||
assert_output "secret=mySecret"
|
||||
}
|
||||
|
||||
@test "compute: docker socket" {
|
||||
skip "docker socket support disabled"
|
||||
run "$DAGGER" compute "$TESTDIR"/compute/dockersocket
|
||||
}
|
||||
|
||||
@test "compute: exclude" {
|
||||
"$DAGGER" up -w "$TESTDIR"/compute/exclude
|
||||
}
|
||||
|
Reference in New Issue
Block a user