Files
Wegwichtel/test/nginx-config.test.js
Florian Zumpe 0ead30e740
Sonarqube Scanner / Prepare environment (push) Successful in 6s
Sonarqube Scanner / Build and test (push) Successful in 25s
Sonarqube Scanner / SonarQube analysis (push) Failing after 1m20s
Sonarqube Scanner / Deploy to Server (push) Failing after 1s
refactor tests
2026-09-30 01:43:38 +02:00

47 lines
1.9 KiB
JavaScript

import assert from 'node:assert/strict';
import fs from 'node:fs/promises';
import path from 'node:path';
import test from 'node:test';
const root = path.resolve(import.meta.dirname, '..');
async function nginxConfig() {
return fs.readFile(path.join(root, 'nginx/wegwichtel.conf'), 'utf8');
}
function activeLines(config) {
return config
.split(/\r?\n/)
.map(line => line.trim())
.filter(line => line && !line.startsWith('#'));
}
test('nginx listens actively on HTTP while SSL remains a commented template', async () => {
const config = await nginxConfig();
assert.match(config, /listen 80;\s*\n\s*listen \[::\]:80;\s*\n\s*# listen 443 ssl;\s*\n\s*# listen \[::\]:443 ssl;/);
assert.match(config, /server_name wegwichtel\.de www\.wegwichtel\.de;[\s\S]*# ssl_certificate\s+\/etc\/nginx\/ssl\/snakeoil\.pem;/);
assert.match(config, /# ssl_certificate_key\s+\/etc\/nginx\/ssl\/snakeoil\.key;/);
assert.match(config, /# ssl_protocols TLSv1\.2 TLSv1\.3;/);
const active = activeLines(config).join('\n');
assert.doesNotMatch(active, /listen (?:\[::\]:)?443\b/);
assert.doesNotMatch(active, /^ssl_/m);
assert.doesNotMatch(active, /https:\/\//);
});
test('nginx keeps reverse-proxy, upload and forwarding settings in the HTTP server block', async () => {
const config = await nginxConfig();
assert.match(config, /proxy_pass\s+http:\/\/127\.0\.0\.1:47145;/);
assert.match(config, /client_max_body_size\s+64m;/);
assert.match(config, /proxy_request_buffering\s+off;/);
assert.match(config, /proxy_set_header\s+Host\s+\$host;/);
assert.match(config, /proxy_set_header\s+X-Real-IP\s+\$remote_addr;/);
assert.match(config, /proxy_set_header\s+X-Forwarded-For\s+\$proxy_add_x_forwarded_for;/);
assert.match(config, /proxy_set_header\s+X-Forwarded-Proto\s+\$scheme;/);
assert.match(config, /proxy_connect_timeout\s+10s;/);
assert.match(config, /proxy_send_timeout\s+120s;/);
assert.match(config, /proxy_read_timeout\s+120s;/);
});