Files
safetynet/tests/contenteditable-clipboard.test.mjs
T

13 lines
957 B
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import {spawn} from 'node:child_process';
import {createRequire} from 'node:module';
import {fileURLToPath} from 'node:url';
test('Chromium contenteditable plain paste blocks secrets, HTML execution and stale editor snapshots', {timeout:25000},async()=>{
const require=createRequire(import.meta.url),env={...process.env};delete env.ELECTRON_RUN_AS_NODE;
const child=spawn(require('electron'),[fileURLToPath(new URL('./contenteditable-clipboard.fixture.cjs',import.meta.url))],{env,windowsHide:true,stdio:['ignore','pipe','pipe']});let output='';
child.stdout.on('data',b=>output+=b);child.stderr.on('data',b=>output+=b);
const timer=setTimeout(()=>child.kill(),20000);const code=await new Promise((resolve,reject)=>{child.once('error',reject);child.once('exit',resolve);});clearTimeout(timer);
assert.equal(code,0,output);assert.match(output,/CONTENTEDITABLE_CLIPBOARD_PASS/);
});