/home/techb158/cosmic.abdallabala.com/tests
Edit: /home/techb158/cosmic.abdallabala.com/tests/production-hardening.test.js (2775B)
const assert = require('assert');
const fs = require('fs');
const os = require('os');
const path = require('path');
const { getRuntimeConfig, validateRuntimeConfig } = require('../src/config/runtimeConfig.js');
const { buildSecurityHeaders, buildContentSecurityPolicy } = require('../src/security/securityHeaders.js');
const { JsonDatabase } = require('../src/storage/jsonDatabase.js');
const { OperationsService } = require('../src/operations/operationsService.js');
(function runProductionHardeningTests() {
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'cosmic-prod-'));
const dataDir = path.join(tmp, 'data');
const backupDir = path.join(tmp, 'backups');
fs.mkdirSync(dataDir, { recursive: true });
const dbFile = path.join(dataDir, 'database.json');
fs.writeFileSync(dbFile, JSON.stringify({ tables: { projects: [], audit_events: [] } }, null, 2), 'utf8');
const config = getRuntimeConfig({
NODE_ENV: 'production',
PORT: '9090',
COSMIC_DB_FILE: dbFile,
COSMIC_BACKUP_DIR: backupDir,
COSMIC_TOKEN_ENCRYPTION_KEY: '12345678901234567890123456789012',
COSMIC_LIVE_PM_ENABLED: 'true',
COSMIC_ALLOWED_ORIGINS: 'https://example.com',
COSMIC_FRAME_ANCESTORS: "'self',https://trello.com",
COSMIC_FORCE_HTTPS: 'true',
COSMIC_HSTS_ENABLED: 'true'
}, tmp);
assert.strictEqual(config.port, 9090);
assert.strictEqual(config.production, true);
assert.strictEqual(config.livePmEnabled, true);
assert.strictEqual(config.tokenEncryptionConfigured, true);
assert.strictEqual(validateRuntimeConfig(config).ok, true);
const csp = buildContentSecurityPolicy(config);
assert(csp.includes("default-src 'self'"));
assert(csp.includes('frame-ancestors'));
assert(csp.includes('https://trello.com'));
const headers = buildSecurityHeaders({ headers: { 'x-forwarded-proto': 'https' } }, config);
assert.strictEqual(headers['X-Content-Type-Options'], 'nosniff');
assert(headers['Strict-Transport-Security'].includes('max-age'));
assert(headers['Content-Security-Policy'].includes("object-src 'none'"));
const database = new JsonDatabase(dbFile);
const operations = new OperationsService(database, config);
const readiness = operations.getReadiness();
assert.strictEqual(readiness.ok, true);
assert(readiness.checks.find(check => check.name === 'database-readable').ok);
const backup = operations.createBackup('USER-SYSTEM');
assert(fs.existsSync(backup.backupFile));
assert(fs.existsSync(`${backup.backupFile}.manifest.json`));
assert.strictEqual(backup.sizeBytes > 0, true);
assert.strictEqual(backup.sha256.length, 64);
const backups = operations.listBackups();
assert.strictEqual(backups.length, 1);
console.log('All COSMIC AI-Risk production hardening tests passed.');
})();