fix(backend): IP в аудите, closed_at тикетов и admin_activity в статистике. Refs EventHub/EventHubBack#27 #28 #29
This commit is contained in:
@@ -1,17 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Rebar3 на WSL+Windows иногда оставляет symlink вместо каталога.
|
||||
TEST_DIR="/home/alexc/eventhub-wsl-data/_build/test/lib/eventhub/test"
|
||||
# Rebar3 на WSL+ext4 _build оставляет битые symlink unit|api (относительный путь не резолвится).
|
||||
# Заменяем на полную копию из репозитория.
|
||||
|
||||
PROJ="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
BUILD_DIR="$(readlink -f "${PROJ}/_build" 2>/dev/null || echo "${PROJ}/_build")"
|
||||
TEST_DIR="${BUILD_DIR}/test/lib/eventhub/test"
|
||||
|
||||
mkdir -p "${TEST_DIR}"
|
||||
|
||||
for name in unit api; do
|
||||
target="${TEST_DIR}/${name}"
|
||||
if [ -L "${target}" ] || [ -f "${target}" ]; then
|
||||
rm -f "${target}"
|
||||
src="${PROJ}/test/${name}"
|
||||
if [ ! -d "${src}" ]; then
|
||||
echo "fix-rebar-unit-symlink: нет каталога ${src}" >&2
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p "${target}"
|
||||
echo "Fixed: ${target}"
|
||||
rm -rf "${target}"
|
||||
cp -a "${src}" "${target}"
|
||||
echo "Copied: ${src} -> ${target}"
|
||||
ls -ld "${target}"
|
||||
done
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
# Запуск тестов только в Linux (WSL dev): asdf OTP 28 + rebar 3.27.
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJ="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
# shellcheck source=scripts/wsl-dev-env.sh
|
||||
source "${SCRIPT_DIR}/wsl-dev-env.sh"
|
||||
|
||||
cd "${PROJ}"
|
||||
bash "${SCRIPT_DIR}/wsl-ext4-dirs.sh" 2>/dev/null || true
|
||||
bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh"
|
||||
|
||||
echo "=== env ==="
|
||||
erl -noshell -eval 'io:format("OTP ~s~n", [erlang:system_info(otp_release)]), halt().'
|
||||
rebar3 --version
|
||||
echo "rebar3: $(command -v rebar3)"
|
||||
echo "erl: $(command -v erl)"
|
||||
|
||||
echo "=== compile ==="
|
||||
rebar3 compile
|
||||
|
||||
bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh"
|
||||
|
||||
echo "=== eunit: admin_utils_tests ==="
|
||||
rebar3 eunit --module=admin_utils_tests --verbose
|
||||
|
||||
echo "=== eunit: logic_ticket_tests ==="
|
||||
rebar3 eunit --module=logic_ticket_tests --verbose
|
||||
|
||||
bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh"
|
||||
|
||||
port_busy() {
|
||||
ss -tln 2>/dev/null | grep -q ":$1 "
|
||||
}
|
||||
|
||||
run_ct() {
|
||||
local case_name="$1"
|
||||
echo "=== ct: ${case_name} ==="
|
||||
rebar3 ct --suite=api_admins_SUITE --case="${case_name}" --verbose
|
||||
}
|
||||
|
||||
if port_busy 8080 || port_busy 8445; then
|
||||
echo "=== ct: SKIP (порты 8080/8445 заняты — остановите eventhub и повторите) ==="
|
||||
ss -tln 2>/dev/null | grep -E ':8080|:8445' || true
|
||||
exit 0
|
||||
fi
|
||||
|
||||
run_ct admin_test_stats
|
||||
bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh"
|
||||
run_ct admin_test_audit
|
||||
|
||||
echo "=== ALL PASSED ==="
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
# Linux-only WSL dev: asdf OTP 28 + rebar 3.27 (без Windows erl/rebar3 в PATH).
|
||||
set -euo pipefail
|
||||
|
||||
ASDF_DIR="${HOME}/.asdf"
|
||||
ERLANG_VER="${ERLANG_VER:-28.2}"
|
||||
REBAR_VER="${REBAR_VER:-3.27.0}"
|
||||
|
||||
ERL_BIN="${ASDF_DIR}/installs/erlang/${ERLANG_VER}/bin"
|
||||
REBAR_BIN="${ASDF_DIR}/installs/rebar/${REBAR_VER}/bin"
|
||||
|
||||
if [ ! -x "${ERL_BIN}/erl" ]; then
|
||||
echo "wsl-dev-env: нет ${ERL_BIN}/erl (asdf install erlang ${ERLANG_VER})" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -x "${REBAR_BIN}/rebar3" ]; then
|
||||
echo "wsl-dev-env: нет ${REBAR_BIN}/rebar3 (asdf install rebar ${REBAR_VER})" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Только Linux PATH — без /mnt/c/.../Erlang OTP и rebar3
|
||||
export PATH="${ERL_BIN}:${REBAR_BIN}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
Reference in New Issue
Block a user