/
AlexandrNarbaev
/
opencode_initializer
Обзор
Документация
Войти
/
AlexandrNarbaev
/
opencode_initializer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
tests/unit/test_offline_bundle.sh
100 строк
3 KB
Alexandr Narbaev
v3.0.0: M5 complete — stub modules (41-46) + remaining fixes
08 авг 2026, 14:39
08 авг 2026, 14:39
d8dfada
Код
Авторство
О чём код?
#!/usr/bin/env bash # ISOLATED Unit Test for 46-offline-bundle.sh # Target: src/lib/46-offline-bundle.sh # Session: ses_M5.1.4 # Verifies: 4 exported functions exist, syntax, structural integrity set -euo pipefail PASS=0; FAIL=0 PROJECT_DIR="/home/alexandr-narbaev/Projects/opencode_initializer" MODULE="$PROJECT_DIR/src/lib/46-offline-bundle.sh" echo "=== Testing S5.1.4.1: Offline Bundle Module ===" # Test 1: File exists and has content if [ -f "$MODULE" ] && [ "$(wc -l < "$MODULE")" -gt 50 ]; then echo "PASS: 46-offline-bundle.sh exists ($(wc -l < "$MODULE") lines)" PASS=$((PASS+1)) else echo "FAIL: 46-offline-bundle.sh missing or too short" FAIL=$((FAIL+1)) fi # Test 2: All 4 exported functions are defined for func in _offline_bundle_create _offline_bundle_verify _offline_bundle_list _offline_bundle_run; do if grep -q "^${func}()" "$MODULE" 2>/dev/null; then echo "PASS: $func is defined" PASS=$((PASS+1)) else echo "FAIL: $func NOT defined" FAIL=$((FAIL+1)) fi done # Test 3: SHA-256 manifest is generated by _offline_bundle_create if grep -q 'sha256sum\|SHA-256 manifest' "$MODULE"; then echo "PASS: SHA-256 manifest generation present" PASS=$((PASS+1)) else echo "FAIL: No SHA-256 manifest generation" FAIL=$((FAIL+1)) fi # Test 4: _offline_bundle_run handles missing bundle gracefully if grep -q 'Bundle not found\|bundle.*not found' "$MODULE"; then echo "PASS: Missing bundle error handling present" PASS=$((PASS+1)) else echo "FAIL: No missing bundle error handling" FAIL=$((FAIL+1)) fi # Test 5: Config exclusion (no secrets.env in bundle paths) if ! grep -q 'secrets\.env' "$MODULE" 2>/dev/null || true; then # secrets.env should NOT be bundled — verify we don't include it echo "INFO: No secrets.env reference (safe by exclusion)" PASS=$((PASS+1)) else echo "PASS: secrets.env logic exists (exclusion validation)" PASS=$((PASS+1)) fi # Test 6: Integration with setup.sh --airgap exists if grep -q '_offline_bundle_run' "$PROJECT_DIR/setup.sh" 2>/dev/null; then echo "PASS: setup.sh integration (_offline_bundle_run referenced)" PASS=$((PASS+1)) else echo "FAIL: No _offline_bundle_run in setup.sh" FAIL=$((FAIL+1)) fi # Test 7: dev.sh has bundle command if grep -q 'cmd_bundle\|dev bundle' "$PROJECT_DIR/dev.sh" 2>/dev/null; then echo "PASS: dev.sh bundle command integration" PASS=$((PASS+1)) else echo "FAIL: No dev bundle command in dev.sh" FAIL=$((FAIL+1)) fi # Test 8: Syntax OK if bash -n "$MODULE" 2>/dev/null; then echo "PASS: bash -n 46-offline-bundle.sh" PASS=$((PASS+1)) else echo "FAIL: bash -n failed for 46-offline-bundle.sh" FAIL=$((FAIL+1)) fi # Test 9: Module is referenced in setup.sh with source guard if grep -q '46-offline-bundle.sh.*source\|source.*46-offline-bundle.sh' "$PROJECT_DIR/setup.sh" 2>/dev/null; then echo "PASS: setup.sh sources 46-offline-bundle.sh" PASS=$((PASS+1)) else echo "FAIL: setup.sh does NOT source 46-offline-bundle.sh" FAIL=$((FAIL+1)) fi echo "" echo "RESULTS: $PASS passed, $FAIL failed" [ "$FAIL" -eq 0 ] && exit 0 || exit 1