fix(dfm): update traps and tests (#124)

* fix(dfm): update traps and tests

* fix(dfm): initialize defaults and secure tests

* fix(tests): secure helper quoting and extend install coverage

* fix(utils): avoid double extension when resolving command

* fix(tests): quote paths and add strict mode

* fix(utils): escape function name in regex
This commit is contained in:
2025-06-11 23:44:52 +03:00
parent 76076fdaa4
commit 1d0ea5ace4
6 changed files with 111 additions and 73 deletions

17
tests/dfm/helpers.bash Normal file
View File

@@ -0,0 +1,17 @@
run_with_dfm() {
local cmd="$*"
run env \
PROJECT_ROOT="$PROJECT_ROOT" \
DFM_CMD_DIR="$PROJECT_ROOT/local/dfm/cmd" \
DFM_LIB_DIR="$PROJECT_ROOT/local/dfm/lib" \
DOTFILES="${DOTFILES:-$PROJECT_ROOT}" \
NO_AUTOMATION="${NO_AUTOMATION:-1}" \
TEMP_DIR="$TEMP_DIR" \
bash -c 'set -e
cmd="$1"
source "$PROJECT_ROOT/local/dfm/lib/common.sh"
source "$PROJECT_ROOT/local/dfm/lib/utils.sh"
set +e
eval "$cmd"' bash "$cmd"
}