Tengo esta función y quiero probarla. Quiero probar stream.on('error', err => reject(err)); línea, pero no sé cómo llegar a él. ¿Qué podría ingresar en esta función para activar el lanzamiento de error? ¡Gracias!
function streamToString(stream) { const chunks = []; return new Promise((resolve, reject) => { stream.on('data', chunk => chunks.push(Buffer.from(chunk))); stream.on('error', err => reject(err)); stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8'))); }); }Si está en nodejs y usa jest, puede emitir el error usted mismo como:
function streamToString(stream) { const chunks = []; return new Promise((resolve, reject) => { stream.on("data", (chunk) => chunks.push(Buffer.from(chunk))); stream.on("error", (err) => reject(err)); stream.on("end", () => resolve(Buffer.concat(chunks).toString("utf8"))); }); } test("broken stream", () => { let fs = require("fs"); let stream = fs.createReadStream("file.txt"); let res = streamToString(stream); stream.emit("error", "OH NO!"); return expect(res).rejects.toMatch("OH NO!"); }); //or test("broken stream", () => { let fs = require("fs"); let stream = fs.createReadStream("file.txt"); let res = streamToString(stream); stream.destroy("OH NO!"); return expect(res).rejects.toMatch("OH NO!"); });