| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- const {test} = require('node:test');
- const assert = require('node:assert/strict');
- const fs = require('node:fs');
- const path = require('node:path');
- const vm = require('node:vm');
- const source = fs.readFileSync(path.join(__dirname,'../internal/web/static/app.js'),'utf8');
- function functionSource(name,next) {
- return source.slice(source.indexOf('function '+name+'('),source.indexOf('\nfunction '+next+'('));
- }
- test('bandwidth cursor follows elapsed time across a rolling history and a new session',()=>{
- const seen=[];
- const context={bwtestState:{lastSampleElapsed:-1},handleBwTestSample:s=>seen.push(s.elapsed_sec),clearInterval(){},setBwTestRunningUI(){},handleBwTestFinish(){}};
- vm.createContext(context);
- vm.runInContext(functionSource('processBwTestStatus','startBwTestTelemetry'),context);
- const window=offset=>Array.from({length:200},(_,i)=>({elapsed_sec:i+offset}));
- context.processBwTestStatus({session_id:'one',running:true,recent_samples:window(1)});
- context.processBwTestStatus({session_id:'one',running:true,recent_samples:window(2)});
- assert.equal(seen.length,201);
- assert.equal(seen.at(-1),201);
- context.processBwTestStatus({session_id:'two',running:true,recent_samples:[{elapsed_sec:0.5}]});
- assert.equal(seen.at(-1),0.5);
- });
- test('fetch coalesces API reads, copies responses, and keeps bearer tokens on this origin',async()=>{
- const requests=[];
- const localStorage={getItem:()=> 'test-token',removeItem(){}};
- const context={URL,Headers,Request,Response,AbortController,setTimeout,clearTimeout,console,localStorage,document:{getElementById:()=>null}};
- context.window={location:{href:'http://router/',origin:'http://router'},fetch:async(resource,options)=>{
- requests.push({resource,options});
- await new Promise(resolve=>setTimeout(resolve,10));
- return new Response('{"ok":true}',{headers:{'content-type':'application/json'}});
- }};
- vm.createContext(context);
- vm.runInContext(source.slice(source.indexOf('const originalFetch'),source.indexOf('\nlet state ='))+'\nlet state = {currentUser:null};',context);
- const responses=await Promise.all([context.window.fetch('/api/status'),context.window.fetch('/api/status')]);
- assert.equal(requests.length,1);
- assert.deepEqual(await responses[0].json(),{ok:true});
- assert.deepEqual(await responses[1].json(),{ok:true});
- assert.equal(requests[0].options.headers.get('Authorization'),'Bearer test-token');
- await context.window.fetch('https://another-origin.example/path');
- assert.equal(requests[1].options.headers,undefined);
- });
- test('HTML contains no duplicate IDs',()=>{
- const html=fs.readFileSync(path.join(__dirname,'../internal/web/static/index.html'),'utf8');
- const ids=[...html.matchAll(/\bid="([^"]+)"/g)].map(match=>match[1]);
- assert.equal(new Set(ids).size,ids.length);
- });
|