Files
minivless/tests/ui-preview.html
T

22 lines
1.9 KiB
HTML

<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>MiniVLESS — UI test fixture</title></head><body><div id="root"></div><script type="module">
// Development-only IPC fixture. Not referenced by index.html or included in production.
import { mockIPC, mockWindows } from '@tauri-apps/api/mocks';
let prefs = {vless_url:'vless://test-fixture',applications:['/usr/bin/telegram-desktop','/opt/discord/Discord'],custom_applications:[],split_tunneling:true};
let status = {phase:'Disconnected',error:null,split_tunneling:true,applications:[]};
const apps=[{name:'Telegram',executable:'/usr/bin/telegram-desktop',running:true,pid:1},{name:'Discord',executable:'/opt/discord/Discord',running:true,pid:2},{name:'Firefox',executable:'/usr/lib/firefox/firefox',running:true,pid:3},{name:'Steam',executable:'/usr/bin/steam',running:true,pid:4}];
mockIPC((cmd,args)=>{
if(cmd==='load_preferences') return prefs;
if(cmd==='save_preferences'){prefs=args.preferences;return;}
if(cmd==='list_applications') return apps;
if(cmd==='list_installed_applications') return [...apps,{name:'Chromium',executable:'/usr/lib/chromium/chromium',running:false,pid:null}];
if(cmd==='add_application') return {name:args.path.split('/').pop(),executable:args.path,running:false,pid:null};
if(cmd==='get_status') return status;
if(cmd==='get_logs') return ['Tunnel started.','Credentials are redacted.'];
if(cmd==='connect'){status={...status,phase:'Connecting',split_tunneling:args.request.split_tunneling,applications:args.request.applications};setTimeout(()=>{status={...status,phase:args.request.vless_url==='invalid'?'Error':'Connected',error:args.request.vless_url==='invalid'?'Invalid VLESS URL':null};},700);return;}
if(cmd==='disconnect'){status={...status,phase:'Disconnected',error:null};return;}
});
mockWindows('main');
window.isTauri = true;
await import('/src/main.tsx');
</script></body></html>