Skip to content

Repository files, collaboration, releases and project activity.

ARCHFORGE HISTORY

Blame · tests/https-repair.test.js

Branch main · the Commit author is not necessarily a verified ArchForge account.

c50a429023archadmin2026-10-111 'use strict';
c50a429023archadmin2026-10-112 const test=require('node:test');
c50a429023archadmin2026-10-113 const assert=require('node:assert/strict');
c50a429023archadmin2026-10-114 const fs=require('node:fs');
c50a429023archadmin2026-10-115 const path=require('node:path');
c50a429023archadmin2026-10-116 const {spawnSync}=require('node:child_process');
c50a429023archadmin2026-10-117 const main=path.resolve(__dirname,'../scripts/fix-https.sh');
c50a429023archadmin2026-10-118 const wrapper=path.resolve(__dirname,'../fix-https.sh');
c50a429023archadmin2026-10-119 test('HTTP-only Caddy recovery is bash-valid',()=>{
c50a429023archadmin2026-10-1110  for(const f of [main,wrapper]){
c50a429023archadmin2026-10-1111  const result=spawnSync('bash',['-n',f],{encoding:'utf8'});
c50a429023archadmin2026-10-1112  assert.equal(result.status,0, result.stderr);
c50a429023archadmin2026-10-1113  }
c50a429023archadmin2026-10-1114 });
c50a429023archadmin2026-10-1115 test('HTTPS repair checks backend and listener, and can roll back Caddy',()=>{
c50a429023archadmin2026-10-1116  const script=fs.readFileSync(main,'utf8');
c50a429023archadmin2026-10-1117  assert.match(script,/curl.*127\.0\.0\.1:3000\/healthz/);
c50a429023archadmin2026-10-1118  assert.match(script,/CADDYFILE=\/etc\/caddy\/Caddyfile/);
c50a429023archadmin2026-10-1119  assert.match(script,/BACKUP="\/root\/archforge-caddy-before-https-fix-/);
c50a429023archadmin2026-10-1120  assert.match(script,/--adapter caddyfile/);
c50a429023archadmin2026-10-1121  assert.match(script,/has_443/);
c50a429023archadmin2026-10-1122  assert.match(script,/rollback/);
c50a429023archadmin2026-10-1123  assert.match(script,/journalctl -u caddy/);
c50a429023archadmin2026-10-1124  assert.doesNotMatch(script,/sqlite3\b|npm install|apt-get/);
c50a429023archadmin2026-10-1125 });
2109dd33b8archadmin2026-10-1226 test('ArchForge wrapper invokes installed script without updating app itself',()=>{
c50a429023archadmin2026-10-1127  const script=fs.readFileSync(wrapper,'utf8');
c50a429023archadmin2026-10-1128  assert.match(script,/scripts\/fix-https\.sh/);
c50a429023archadmin2026-10-1129 });