# -*- sh -*-
#
# secret-related tests
#

# secret create
t POST secrets/create Name=mysecret Data=c2VjcmV0 200\
    .ID~.* \

# secret create unsupported labels
t POST secrets/create Name=mysecret Data=c2VjcmV0 Labels='{"fail":"fail"}' 400

# secret create name already in use
t POST secrets/create Name=mysecret Data=c2VjcmV0 409

# secret inspect
t GET secrets/mysecret 200 \
    .Spec.Name=mysecret \
    .Version.Index=1

# secret inspect non-existent secret
t GET secrets/bogus 404

# secret list
t GET secrets 200 \
    length=1 \
    .[0].Spec.Name=mysecret \
    .[0].Version.Index=1

# secret list with filters
t GET secrets?filters='{"name":["mysecret"]}' 200 \
    length=1 \
    .[0].Spec.Name=mysecret \
    .[0].Version.Index=1

t GET secrets?filters='{"name":["mysecret2"]}' 200 \
    length=0 \

# secret libpod list with filters
t GET libpod/secrets/json?filters='{"name":["mysecret"]}' 200 \
    length=1 \
    .[0].Spec.Name=mysecret \

t GET libpod/secrets/json?filters='{"name":["mysecret2"]}' 200 \
    length=0 \

# secret list with unsupported filters
t GET secrets?filters='{"label":["xyz"]}' 500

#compat api list secrets sanity checks
t GET secrets?filters='garb1age}' 500 \
    .cause="invalid character 'g' looking for beginning of value"
t GET secrets?filters='{"label":["testl' 500 \
    .cause="unexpected end of JSON input"

#libpod api list secrets sanity checks
t GET libpod/secrets/json?filters='garb1age}' 500 \
    .cause="invalid character 'g' looking for beginning of value"
t GET libpod/secrets/json?filters='{"label":["testl' 500 \
    .cause="unexpected end of JSON input"

# secret rm
t DELETE secrets/mysecret 204
# secret rm non-existent secret
t DELETE secrets/bogus 404

# secret update not implemented
t POST secrets/mysecret/update 501