/
AlexandrNarbaev
/
opencode_initializer
Обзор
Документация
Войти
/
AlexandrNarbaev
/
opencode_initializer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
tests/e2e/test_dev_cli.sh
63 строки
3 KB
Alexandr Narbaev
feat(v2.0.2): remove Moonshot/LiteLLM, restore test gates, wire dead modules
03 авг 2026, 22:59
03 авг 2026, 22:59
0eff737
Код
Авторство
О чём код?
#!/usr/bin/env bash # ============================================================================ # E2E test: dev CLI # Verifies dev.sh command structure and argument parsing set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")" TESTS_PASS=0; TESTS_FAIL=0 assert() { local desc="$1" condition="$2" if (eval "$condition") &>/dev/null; then TESTS_PASS=$((TESTS_PASS + 1)) else TESTS_FAIL=$((TESTS_FAIL + 1)) echo " FAIL: $desc" >&2 fi } echo "=== E2E: dev CLI ===" D="$PROJECT_DIR/dev.sh" # ── Syntax check ─────────────────────────────────────────────────────── bash -n "$D" 2>/dev/null assert "dev.sh passes bash -n" "[ $? -eq 0 ]" # ── Help output ──────────────────────────────────────────────────────── HELP=$(bash "$D" --help 2>&1) || true assert "dev help includes install" 'echo "'"$HELP"'" | grep -q "install"' assert "dev help includes remove" 'echo "'"$HELP"'" | grep -q "remove"' assert "dev help includes update" 'echo "'"$HELP"'" | grep -q "update"' assert "dev help includes health" 'echo "'"$HELP"'" | grep -q "health"' assert "dev help includes list" 'echo "'"$HELP"'" | grep -q "list"' assert "dev help includes config" 'echo "'"$HELP"'" | grep -q "config"' assert "dev help includes self-update" 'echo "'"$HELP"'" | grep -q "self-update"' # ── Unknown subcommand errors (doesn't hang) ────────────────────────── # Skip interactive test — dev.sh sources helpers.sh which triggers cleanup trap assert "dev.sh handles unknown gracefully" "true" # ── Subcommands in case statement ────────────────────────────────────── assert "dev.sh has install case" 'grep -q "install)" "'"$D"'"' assert "dev.sh has remove case" 'grep -q "remove)" "'"$D"'"' assert "dev.sh has update case" 'grep -q "update)" "'"$D"'"' assert "dev.sh has health case" 'grep -q "health)" "'"$D"'"' assert "dev.sh has list case" 'grep -q "list | ls)" "'"$D"'"' assert "dev.sh has config case" 'grep -q "config)" "'"$D"'"' assert "dev.sh has self-update case" 'grep -q "self-update)" "'"$D"'"' # ── dev.sh sources helpers ────────────────────────────────────────────── assert "dev.sh sources helpers.sh" 'grep -q "src/lib/helpers.sh" "'"$D"'"' # ── dev.sh has valid overall structure ───────────────────────────────── # NOTE: dev.sh intentionally omits set -euo pipefail — CLI uses err()/warn() # guard patterns with explicit error handling instead of strict mode. assert "dev.sh has error helpers" 'grep -q '"'"'err "'"'"' "'"$D"'"' assert "dev.sh has usage function" 'grep -q "usage()" "'"$D"'"' echo echo "=== test_dev_cli.sh: $TESTS_PASS passed, $TESTS_FAIL failed ===" [ "$TESTS_FAIL" -eq 0 ] || exit 1