File size: 1,627 Bytes
391c43e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import { describe, it, expect } from 'vitest';
import { stripPreviewScripts } from '../strip-preview-scripts';
const consoleCapture = `<script>
// Console Capture - Auto-injected by OSW Studio
(function() {
if (window === window.parent) return;
var levels = ['log', 'warn', 'error'];
})();
</script>
`;
const assetInterceptor = `<script>
// VFS Asset Interceptor
(function() {
var map = {};
})();
</script>
`;
describe('stripPreviewScripts', () => {
it('removes the Console Capture script', () => {
const html = `<html><head>${consoleCapture}<title>X</title></head><body>hi</body></html>`;
const out = stripPreviewScripts(html);
expect(out).not.toContain('Console Capture');
expect(out).toContain('<title>X</title>');
expect(out).toContain('hi');
});
it('removes the VFS Asset Interceptor script', () => {
const html = `<html><head>${assetInterceptor}</head><body>hi</body></html>`;
const out = stripPreviewScripts(html);
expect(out).not.toContain('VFS Asset Interceptor');
expect(out).toContain('hi');
});
it('removes both and leaves user scripts alone', () => {
const html = `<html><head>${consoleCapture}${assetInterceptor}</head><body><script>console.log('mine')</script></body></html>`;
const out = stripPreviewScripts(html);
expect(out).not.toContain('Console Capture');
expect(out).not.toContain('VFS Asset Interceptor');
expect(out).toContain("console.log('mine')");
});
it('returns non-instrumented HTML unchanged', () => {
const html = '<html><body>plain</body></html>';
expect(stripPreviewScripts(html)).toBe(html);
});
});
|