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-11
1 'use strict';c50a429023archadmin2026-10-11
2 const test=require('node:test');c50a429023archadmin2026-10-11
3 const assert=require('node:assert/strict');c50a429023archadmin2026-10-11
4 const fs=require('node:fs');c50a429023archadmin2026-10-11
5 const path=require('node:path');c50a429023archadmin2026-10-11
6 const {spawnSync}=require('node:child_process');c50a429023archadmin2026-10-11
7 const main=path.resolve(__dirname,'../scripts/fix-https.sh');c50a429023archadmin2026-10-11
8 const wrapper=path.resolve(__dirname,'../fix-https.sh');c50a429023archadmin2026-10-11
9 test('HTTP-only Caddy recovery is bash-valid',()=>{c50a429023archadmin2026-10-11
10 for(const f of [main,wrapper]){c50a429023archadmin2026-10-11
11 const result=spawnSync('bash',['-n',f],{encoding:'utf8'});c50a429023archadmin2026-10-11
12 assert.equal(result.status,0, result.stderr);c50a429023archadmin2026-10-11
13 }c50a429023archadmin2026-10-11
14 });c50a429023archadmin2026-10-11
15 test('HTTPS repair checks backend and listener, and can roll back Caddy',()=>{c50a429023archadmin2026-10-11
16 const script=fs.readFileSync(main,'utf8');c50a429023archadmin2026-10-11
17 assert.match(script,/curl.*127\.0\.0\.1:3000\/healthz/);c50a429023archadmin2026-10-11
18 assert.match(script,/CADDYFILE=\/etc\/caddy\/Caddyfile/);c50a429023archadmin2026-10-11
19 assert.match(script,/BACKUP="\/root\/archforge-caddy-before-https-fix-/);c50a429023archadmin2026-10-11
20 assert.match(script,/--adapter caddyfile/);c50a429023archadmin2026-10-11
21 assert.match(script,/has_443/);c50a429023archadmin2026-10-11
22 assert.match(script,/rollback/);c50a429023archadmin2026-10-11
23 assert.match(script,/journalctl -u caddy/);c50a429023archadmin2026-10-11
24 assert.doesNotMatch(script,/sqlite3\b|npm install|apt-get/);c50a429023archadmin2026-10-11
25 });2109dd33b8archadmin2026-10-12
26 test('ArchForge wrapper invokes installed script without updating app itself',()=>{c50a429023archadmin2026-10-11
27 const script=fs.readFileSync(wrapper,'utf8');c50a429023archadmin2026-10-11
28 assert.match(script,/scripts\/fix-https\.sh/);c50a429023archadmin2026-10-11
29 });