#!/usr/bin/env bash

unset MISE_LOCKFILE

cat <<EOF >mise.toml
[settings]
lockfile = true
EOF
cat <<EOF >mise.local.toml
[env]
LOCKFILE_TEST = "1"
EOF

assert "test ! -e mise.lock"
mise use --pin tiny@1
assert "test -f mise.lock"
assert "test ! -e mise.local.lock"
assert_contains "cat mise.lock" 'version = "1.1.0"'

rm mise.lock
mise use --global --pin tiny@2
assert "test ! -e mise.lock"
assert "test ! -e $MISE_CONFIG_DIR/mise.lock"

cat <<EOF >mise.toml
[settings]
lockfile = true

[tools]
dummy = "1"
EOF

mise install
assert "test -f mise.lock"

rm mise.lock
cat <<EOF >mise.toml
[tools]
tiny = "1"
EOF

mise install
assert "test ! -e mise.lock"

MISE_LOCKFILE=1 mise install
assert "test ! -e mise.lock"

cat <<EOF >"$MISE_CONFIG_DIR/config.toml"
[settings]
lockfile = true
EOF

mise install
assert "test -f mise.lock"
rm mise.lock "$MISE_CONFIG_DIR/config.toml"

cat <<EOF >mise.toml
[settings]
lockfile = true

[tools]
dummy = "1"
EOF
cat <<EOF >mise.dev.toml
[tools]
tiny = "2"
EOF

mise use --env dev --pin tiny@2
assert "test -f mise.lock"
assert "test -f mise.dev.lock"
assert_contains "cat mise.lock" '[[tools.dummy]]'
assert_contains "cat mise.dev.lock" '[[tools.tiny]]'
