import test from 'node:test' import assert from 'node:assert/strict' import {readFileSync} from 'node:fs' import ts from 'typescript' import {loraIdentityKey,loraFriendlyName,loraTriggerFor} from '../utils/loras.ts' test('Studio 2 uses production labels/triggers and sees later changes without a restart',()=>{ const source=readFileSync(new URL('../server/utils/studio2/lora-catalog.ts',import.meta.url),'utf8').replace(/^import .*;\r?\n/gm,'').replace('export function','function') const js=ts.transpileModule(source,{compilerOptions:{target:ts.ScriptTarget.ES2022}}).outputText let exported={loraAliases:{'XAIgen-klein_portrait.safetensors':'My portrait'},loraTriggers:{'xaigen-klein_portrait.safetensors':'portrait token'}} const read=new Function('readFileSync','getLoraAliases','getLoraTriggers','loraIdentityKey','join','studio2Root',js+';return studio2LoraCatalog')(()=>{if(!exported)throw new Error('missing');return JSON.stringify(exported)},()=>({'klein_portrait.safetensors':'Old local name'}),()=>({}),loraIdentityKey,(...parts)=>parts.join('/'),()=>'/dev/studio2') let catalog=read('owner') assert.equal(loraFriendlyName('folder/xaigen-klein_portrait.safetensors',catalog.aliases),'My portrait') assert.equal(loraTriggerFor('klein_portrait.safetensors',catalog.triggers),'portrait token') exported.loraAliases['XAIgen-klein_portrait.safetensors']='Updated portrait' assert.equal(loraFriendlyName('klein_portrait.safetensors',read('owner').aliases),'Updated portrait') exported=null assert.equal(loraFriendlyName('klein_portrait.safetensors',read('owner').aliases),'Old local name') })