#!/usr/bin/env bash

mise use dummy@latest tiny@latest
assert "mise bin-paths dummy" "$MISE_DATA_DIR/installs/dummy/latest/bin"
assert "mise bin-paths tiny" "$MISE_DATA_DIR/installs/tiny/latest/bin"
assert "mise bin-paths" "$MISE_DATA_DIR/installs/dummy/latest/bin
$MISE_DATA_DIR/installs/tiny/latest/bin"

dummy_bin="$MISE_DATA_DIR/installs/dummy/latest/bin"
ln -s dummy "$dummy_bin/dummy-link"
touch "$dummy_bin/not-executable"
mkdir "$dummy_bin/dir-target"
ln -s dir-target "$dummy_bin/dir-link"

assert "mise bin-paths dummy --bin-names" "dummy
dummy-exec-tiny
dummy-link"
assert "mise bin-paths tiny --bin-names" "rtx-tiny"
assert "mise bin-paths dummy --json | jq -r '.[].name'" "dummy
dummy-exec-tiny
dummy-link"
assert "mise bin-paths tiny --json | jq -r '.[].name'" "rtx-tiny"
assert "mise bin-paths dummy --json | jq -r '.[] | select(.name == \"dummy\") | .path'" "$dummy_bin/dummy"
assert "mise bin-paths dummy --json | jq -r '.[] | select(.name == \"dummy\") | .symlink'" "false"
assert "mise bin-paths dummy --json | jq -r '.[] | select(.name == \"dummy-link\") | .path'" "$dummy_bin/dummy-link"
assert "mise bin-paths dummy --json | jq -r '.[] | select(.name == \"dummy-link\") | .symlink'" "true"
assert "mise bin-paths tiny --json | jq -r 'map(select(.name == \"dummy\")) | length'" "0"
assert "mise bin-paths dummy --json | jq -r 'map(select(.name == \"not-executable\")) | length'" "0"
assert "mise bin-paths dummy --json | jq -r 'map(select(.name == \"dir-link\")) | length'" "0"
