Esta es la primera vez que uso jest, jsdom. Después de completar la codificación principal de mi aplicación web, intento probar mi código JS usando jest. Estoy tratando de probar un fragmento de código JS que devuelve un elemento de fila de tabla con 2 columnas para los datos de columna proporcionados.
Esta es createTableRow es la función que estoy tratando de probar. Archivo JS: imprimirResultados.js
/* * createTableRow FUNCTION * @description: Populate table data in a table row with 2 columns * @param {string} col1: string content for table colum 1 * @param {string} col2: string content for table colum 2 */ function createTableRow(col1, col2) { console.log('inputData', col1, col2); const table__row = document.createElement('tr'); const table__data__1 = document.createElement('td'); table__data__1.innerText = col1; const table__data__2 = document.createElement('td'); table__data__2.innerText = col2; table__row.appendChild(table__data__1); table__row.appendChild(table__data__2); return table__row }Estoy tratando de probar esto en broma. Archivo de broma: printResults.spec.js
/** * @jest-environment jsdom */ import {createTableRow} from '../src/client/js/printResults' describe("Create Row Element", () => { test("Create a row element with 2 columns", () => { expect(createTableRow("c1", "c2").outerHTML).toBe('<tr><td>c1</td><td>c2</td></tr>'); }); });Esta prueba falla con el siguiente error.
expect(received).toBe(expected) // Object.is equality Expected: "<tr><td>c1</td><td>c2</td></tr>" Received: "<tr><td></td><td></td></tr>"La función createTableRow funciona correctamente fuera de broma. La tabla se rellena con todas las filas y las filas tienen datos.
No puedo entender por qué, en broma, las filas de la tabla no tienen datos. Y si hay una limitación con innerText por broma, ¿cómo pruebo el correcto funcionamiento de mi código?