#!/usr/bin/env bats
# Remarque: le shebang a change, le shell devra utiliser l'utilitaire bats (a telecharger au besoin)
#==================================================================================================
# Tests fonctionnels bats
#==================================================================================================
# Preparation des donnees de tests
setup(){
TEST_DIR=$(mktemp -d)
DUMMY_LOG="${TEST_DIR}/auth.log"
echo "User admin@example.com logged in from 192.168.1.50 with token=secret123" > "$DUMMY_LOG"
}
# Test de validation des arguments
@test "TC-01: Validation du parsing des arguments valides" {
run ./main.sh -d "${TEST_DIR}" -l 10
echo "${status}"
echo "${TEST_DIR}"
[ "$status -eq 0" ] || [ "$status" -eq 1 ]
}
# Test de verification de l'anonymisation de l'adresse IP et de l'email
@test "TC-02: Verification d'anonymisation effective de l'adresse IP et de l'email" {
source ./settings.env
source ./lib/anonymizer.sh
result=$(cat "${DUMMY_LOG}" | anonymize_stream )
[[ "$result" != *"192.168.1.50"* ]]
[[ "$result" != *"admin@example.com"* ]]
[[ "$result" != *"token=secret123"* ]]
[[ "$result" =~ "xxx.xxx.xxx.xxx" ]]
[[ "$result" =~ [ANONYMIZED_EMAIL] ]]
[[ "$result" =~ [REDACTED_TOKEN] ]]
}
# Test d'echouage securise au cas ou le test n'existe pas
@test "TC-03: Echec propre si le repertoire n'existe pas" {
run ./main.sh -d "/path/does_not_exist" -l -s
[ "$status" -ne 0 ]
}
endSetup(){
rm -rf "${TEST_DIR}"
}