"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;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const logger_1 = require("./logger");
const ROLE_TO_AUTH_FILE_DEFAULT = {
    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;
}
async function cleanupAuth(role, options) {
    const force = options?.force ?? false;
    if (!force && !shouldCleanupAuth()) {
        logger_1.logger.debug(`Очистка авторизации для роли ${role} пропущена (кэширование включено)`, 'auth-cleanup-utils.cleanupAuth');
        return false;
    }
    const roleToAuthFile = {
        ...ROLE_TO_AUTH_FILE_DEFAULT,
        ...(options?.roleToAuthFile ?? {}),
    };
    const authFileName = roleToAuthFile[role];
    if (!authFileName) {
        logger_1.logger.warn(`Неизвестная роль для очистки авторизации: ${role}`, 'auth-cleanup-utils.cleanupAuth');
        return false;
    }
    const authDir = options?.authDir ?? path_1.default.join(process.cwd(), 'tests/playwright/.auth');
    const authFile = path_1.default.join(authDir, 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;
        }
        logger_1.logger.debug(`Файл авторизации не существует по пути: ${authFile}, пропускаем удаление`, 'auth-cleanup-utils.cleanupAuth');
        return false;
    }
    catch (error) {
        logger_1.logger.error(`Ошибка при очистке авторизации для роли ${role}: ${String(error)}`, 'auth-cleanup-utils.cleanupAuth');
        throw error;
    }
}
