"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cleanupAuth = cleanupAuth;
exports.getRoleNameInRussian = getRoleNameInRussian;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const logger_1 = require("./logger");
const ROLE_TO_AUTH_FILE = {
    Admin: 'AdminUser.json',
    Client: 'ClientUser.json',
    Agent: 'AgentUser.json',
    Bank: 'BankUser.json',
};
function shouldCleanupAuth() {
    if (process.env.CLEANUP_AUTH !== undefined) {
        return process.env.CLEANUP_AUTH === 'true' || process.env.CLEANUP_AUTH === '1';
    }
    return !!process.env.CI;
}
/**
 * Очищает файл авторизации для указанной роли
 * @param role - роль пользователя
 * @param force - принудительная очистка, игнорирует настройки кэширования
 * @returns true если файл был удален, false если файл не существовал или очистка пропущена
 */
async function cleanupAuth(role, force = false) {
    // Проверяем, нужно ли выполнять очистку
    if (!force && !shouldCleanupAuth()) {
        logger_1.logger.debug(`Очистка авторизации для роли ${role} пропущена (кэширование включено)`, 'auth-cleanup-utils.cleanupAuth');
        return false;
    }
    const authFileName = ROLE_TO_AUTH_FILE[role];
    if (!authFileName) {
        logger_1.logger.warn(`Неизвестная роль для очистки авторизации: ${role}`, 'auth-cleanup-utils.cleanupAuth');
        return false;
    }
    // Используем process.cwd() для корректного пути независимо от компиляции
    const authFile = path_1.default.join(process.cwd(), 'tests/playwright/.auth', authFileName);
    try {
        if (fs_1.default.existsSync(authFile)) {
            fs_1.default.unlinkSync(authFile);
            logger_1.logger.info(`Файл авторизации ${authFileName} удален по пути: ${authFile}`, 'auth-cleanup-utils.cleanupAuth');
            return true;
        }
        else {
            logger_1.logger.debug(`Файл авторизации ${authFileName} не существует по пути: ${authFile}, пропускаем удаление`, 'auth-cleanup-utils.cleanupAuth');
            return false;
        }
    }
    catch (error) {
        logger_1.logger.error(`Ошибка при очистке авторизации для роли ${role}: ${error}`, 'auth-cleanup-utils.cleanupAuth');
        throw error;
    }
}
/**
 * Получает название роли на русском языке для логирования
 * @param role - роль пользователя
 * @returns название роли на русском
 */
function getRoleNameInRussian(role) {
    const roleNames = {
        Admin: 'Админа',
        Client: 'Клиента',
        Agent: 'Агента',
        Bank: 'Банка',
    };
    return roleNames[role] || role;
}
