Skip to content

Repository files, collaboration, releases and project activity.

ARCHFORGE HISTORY

Blame · tests/branding-persistence.test.js

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

2109dd33b8archadmin2026-10-121 'use strict';
2109dd33b8archadmin2026-10-122 const {test}=require('node:test');
2109dd33b8archadmin2026-10-123 const assert=require('node:assert/strict');
2109dd33b8archadmin2026-10-124 const fs=require('node:fs');const os=require('node:os');const path=require('node:path');
2109dd33b8archadmin2026-10-125 const {openDatabase,one,syncServices}=require('../src/database');
2109dd33b8archadmin2026-10-126 const {serviceDefinitions}=require('../src/probes');
2109dd33b8archadmin2026-10-127 const {serviceLabel,presentService}=require('../src/branding');
2109dd33b8archadmin2026-10-128 const {homepage,adminDashboard,details}=require('../src/views');
2109dd33b8archadmin2026-10-129 
2109dd33b8archadmin2026-10-1210 test('existing labels are migrated by normal service startup without deleting samples',()=>{
2109dd33b8archadmin2026-10-1211  const db=openDatabase(':memory:');
2109dd33b8archadmin2026-10-1212  db.prepare("INSERT INTO services (id,label,description,configured,category) VALUES('git_ssh','ArchForge SSH','banner',1,'ArchForge')").run();
2109dd33b8archadmin2026-10-1213  db.prepare("INSERT INTO samples(service_id,checked_at,success,detail) VALUES('git_ssh',100,1,'ok')").run();
2109dd33b8archadmin2026-10-1214  // Mimics a previous release process attempting to restore Git branding.
2109dd33b8archadmin2026-10-1215  db.prepare("UPDATE services SET label='Git SSH',category='Git' WHERE id='git_ssh'").run();
2109dd33b8archadmin2026-10-1216  assert.equal(one(db,"SELECT label FROM services WHERE id='git_ssh'").label,'ArchForge SSH');
2109dd33b8archadmin2026-10-1217  syncServices(db,serviceDefinitions({api:'',gitHttp:''}));
2109dd33b8archadmin2026-10-1218  assert.equal(one(db,"SELECT label FROM services WHERE id='git_ssh'").label,'ArchForge SSH');
2109dd33b8archadmin2026-10-1219  assert.equal(one(db,"SELECT COUNT(*) AS n FROM samples WHERE service_id='git_ssh'").n,1);
2109dd33b8archadmin2026-10-1220  db.close();
2109dd33b8archadmin2026-10-1221 });
2109dd33b8archadmin2026-10-1222 test('older processes cannot revert public service branding via insert or update',()=>{
2109dd33b8archadmin2026-10-1223  const db=openDatabase(':memory:');
2109dd33b8archadmin2026-10-1224  for(const [id,wrong,expected] of [
2109dd33b8archadmin2026-10-1225  ['git_ssh','Git SSH','ArchForge SSH'],['git_http','Git Smart HTTP','ArchForge HTTPS']]){
2109dd33b8archadmin2026-10-1226  db.prepare('INSERT INTO services(id,label,description,configured,category) VALUES(?,?,?,?,?)').run(id,wrong,'banner',1,'Git');
2109dd33b8archadmin2026-10-1227  let state=one(db,'SELECT label,category FROM services WHERE id=?',id);
2109dd33b8archadmin2026-10-1228  assert.equal(state.label,expected);assert.equal(state.category,'ArchForge');
2109dd33b8archadmin2026-10-1229  db.prepare('UPDATE services SET label=?,category=? WHERE id=?').run(wrong,'Git',id);
2109dd33b8archadmin2026-10-1230  state=one(db,'SELECT label,category FROM services WHERE id=?',id);
2109dd33b8archadmin2026-10-1231  assert.equal(state.label,expected);assert.equal(state.category,'ArchForge');
2109dd33b8archadmin2026-10-1232  }
2109dd33b8archadmin2026-10-1233  db.close();
2109dd33b8archadmin2026-10-1234 });
2109dd33b8archadmin2026-10-1235 test('branding guard persists after SQLite database reopens',()=>{
2109dd33b8archadmin2026-10-1236  const folder=fs.mkdtempSync(path.join(os.tmpdir(),'af-branding-'));
2109dd33b8archadmin2026-10-1237  try{
2109dd33b8archadmin2026-10-1238  const file=path.join(folder,'monitor.db');
2109dd33b8archadmin2026-10-1239  let db=openDatabase(file);
2109dd33b8archadmin2026-10-1240  db.prepare("INSERT INTO services(id,label,description) VALUES('git_ssh','Git SSH','legacy')").run();
2109dd33b8archadmin2026-10-1241  db.close();
2109dd33b8archadmin2026-10-1242  db=openDatabase(file);
2109dd33b8archadmin2026-10-1243  db.prepare("UPDATE services SET label='Git SSH' WHERE id='git_ssh'").run();
2109dd33b8archadmin2026-10-1244  assert.equal(one(db,"SELECT label FROM services WHERE id='git_ssh'").label,'ArchForge SSH');
2109dd33b8archadmin2026-10-1245  db.close();
2109dd33b8archadmin2026-10-1246  }finally{fs.rmSync(folder,{force:true,recursive:true});}
2109dd33b8archadmin2026-10-1247 });
2109dd33b8archadmin2026-10-1248 test('browser rendering and API output canonicalize stale service record names',()=>{
2109dd33b8archadmin2026-10-1249  const bad={id:'git_http',label:'Git Smart HTTP',description:'read-only public repository',category:'Git',current_state:'operational',last_latency:123,
2109dd33b8archadmin2026-10-1250  stats:{days:7,coverage:1,uptime:100,buckets:[]}};
2109dd33b8archadmin2026-10-1251  assert.equal(serviceLabel(bad),'ArchForge HTTPS');
2109dd33b8archadmin2026-10-1252  assert.deepEqual(presentService(bad),{...bad,label:'ArchForge HTTPS',category:'ArchForge'});
2109dd33b8archadmin2026-10-1253  const home=homepage({services:[bad],days:7,incidents:[],maintenance:[],config:{}});
2109dd33b8archadmin2026-10-1254  const admin=adminDashboard({csrf:'test-token',services:[bad],incidents:[],maintenance:[],queue:0});
2109dd33b8archadmin2026-10-1255  const detail=details(bad,[],7,false);
2109dd33b8archadmin2026-10-1256  for(const html of [home,admin,detail]){
2109dd33b8archadmin2026-10-1257  assert.match(html,/ArchForge HTTPS/);
2109dd33b8archadmin2026-10-1258  assert.doesNotMatch(html,/>Git Smart HTTP</);
2109dd33b8archadmin2026-10-1259  }
2109dd33b8archadmin2026-10-1260 });