@wgtechlabs/log-engine
Version:
A lightweight, security-first logging utility with automatic data redaction for Node.js applications - the first logging library with built-in PII protection.
72 lines • 2.3 kB
JavaScript
;
/**
* Shared test utilities for redaction tests
* Common setup, mocks, and helper functions
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.originalConsole = exports.mockConsole = void 0;
exports.setupConsoleMocks = setupConsoleMocks;
exports.restoreConsole = restoreConsole;
exports.setupTestEnvironment = setupTestEnvironment;
exports.restoreEnvironment = restoreEnvironment;
// Mock console methods to capture output for integration tests
exports.mockConsole = {
log: jest.fn(),
warn: jest.fn(),
error: jest.fn()
};
// Store original console methods
exports.originalConsole = {
log: console.log,
warn: console.warn,
error: console.error
};
/**
* Setup console mocks for testing
*/
function setupConsoleMocks() {
jest.clearAllMocks();
console.log = exports.mockConsole.log;
console.warn = exports.mockConsole.warn;
console.error = exports.mockConsole.error;
}
/**
* Restore original console methods
*/
function restoreConsole() {
console.log = exports.originalConsole.log;
console.warn = exports.originalConsole.warn;
console.error = exports.originalConsole.error;
}
/**
* Setup environment for testing
*/
function setupTestEnvironment() {
const originalEnv = { ...process.env };
return { originalEnv };
}
/**
* Restore environment after testing
*/
function restoreEnvironment(originalEnv) {
// Only remove environment variables that were added during the test
// (i.e., those not present in the originalEnv)
// Create a copy of the keys to avoid mutation during iteration
const currentEnvKeys = Object.keys(process.env);
for (const key of currentEnvKeys) {
if (!Object.prototype.hasOwnProperty.call(originalEnv, key)) {
// Safe deletion using explicit type assertion
delete process.env[key];
}
}
// Restore or update variables that existed originally
// Iterate over originalEnv keys safely
const originalEnvKeys = Object.keys(originalEnv);
for (const key of originalEnvKeys) {
if (Object.prototype.hasOwnProperty.call(originalEnv, key)) {
// Safe assignment using explicit access
process.env[key] = originalEnv[key];
}
}
}
//# sourceMappingURL=test-utils.js.map