{"id":231941,"date":"2023-01-12T14:37:00","date_gmt":"2023-01-12T11:37:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231941"},"modified":"2022-11-10T05:49:05","modified_gmt":"2022-11-10T02:49:05","slug":"como-ocultar-la-salida-de-console-log-de-javascript-en-las-pruebas-de-jest","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/como-ocultar-la-salida-de-console-log-de-javascript-en-las-pruebas-de-jest\/","title":{"rendered":"C\u00f3mo ocultar la salida de console.log de JavaScript en las pruebas de Jest"},"content":{"rendered":"<p>Estaba trabajando hoy en una base de c\u00f3digo que ten\u00eda muchos <code>console.log<\/code>resultados intencionales en todos los entornos excepto en producci\u00f3n, por lo que aparec\u00edan en los resultados de las pruebas de Jest. Habr\u00eda sido tedioso ir y eliminarlos uno por uno, por lo que ide\u00e9 esta configuraci\u00f3n simple para suprimir todas las <code>console.log<\/code>salidas a la vez mientras se ejecuta Jest.<\/p>\n<h2>Configurando Hay<\/h2>\n<p>Este truco se basa en la habilidad nativa de Jest para burlarse de cualquier cosa. Lo que haremos b\u00e1sicamente es burlarnos del <code>log<\/code>m\u00e9todo del <code>console<\/code>objeto y dejar intactos los otros m\u00e9todos.<\/p>\n<p>Primero debemos decirle a <a href=\"https:\/\/startfunction.com\/tag\/jest\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jest<\/a> que ejecute un archivo de instalaci\u00f3n antes de ejecutar las pruebas. Para ello, editaremos el <code>jest.config.js<\/code>archivo que suele estar en la ra\u00edz de su proyecto con otras propiedades de configuraci\u00f3n y agregaremos la siguiente l\u00ednea:<\/p>\n<pre><code>setupFilesAfterEnv: ['\/src\/jest.setup.js']<\/code><\/pre>\n<p>Podemos verificar en <a href=\"https:\/\/jestjs.io\/docs\/configuration#setupfilesafterenv-array\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la documentaci\u00f3n de Jest<\/a> lo que <code>setupFilesAfterEnv<\/code>hace:<\/p>\n<blockquote>\n<p>Una lista de rutas a m\u00f3dulos que ejecutan alg\u00fan c\u00f3digo para configurar o configurar el marco de prueba antes de que se ejecute cada archivo de prueba en la suite.<\/p>\n<\/blockquote>\n<p>Ahora, cuando ejecutemos nuestras pruebas, primero ejecutar\u00e1n el <code>jest.setup.js<\/code>que crearemos ahora.<\/p>\n<h2>Burl\u00e1ndose de console.log<\/h2>\n<p>Cree un archivo en <code>src\/setup.js<\/code>o donde haya se\u00f1alado su ruta en el paso anterior. Luego le agregar\u00e1s esto:<\/p>\n<pre><code>global.console = {\n    log: jest.fn(),\n    debug: console.debug,\n    trace: console.trace,\n\n}\n<\/code><\/pre>\n<p>Esto anula el <code>log<\/code>m\u00e9todo y permite a los dem\u00e1s. Como todav\u00eda quer\u00eda tener la capacidad de generar algo en las pruebas, mape\u00e9 <code>debug<\/code>y <code>trace<\/code>. Puede asignar otros que pueda necesitar, como los <code>console.table<\/code>que representan elementos en una tabla, \u00fatiles para registrar objetos o matrices. Para ser honesto, hasta que escrib\u00ed esto, nunca hab\u00eda mirado la <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/console\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">p\u00e1gina del objeto de la consola en MDN<\/a> y hay muchos m\u00e9todos interesantes como el <code>console.dir<\/code>que muestra una lista interactiva de las propiedades del objeto <a href=\"https:\/\/startfunction.com\/category\/javascript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JavaScript<\/a> especificado .<\/p>\n<h2>palabras de cierre<\/h2>\n<p>Ahora su <code>console.log<\/code>salida se suprime mientras se ejecutan sus pruebas Jest. Si trabaja en equipo, aseg\u00farese de informar al resto del equipo sobre este cambio document\u00e1ndolo, ya que alguien podr\u00eda estresarse tratando de hacer <code>console.log<\/code>algo y no verlo donde deber\u00eda estar.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/startfunction.com\" class=\"external external_icon\">startfunction.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprende c\u00f3mo suprimir la salida de llamadas console.log() no deseadas en tus pruebas de Jest.<\/p>\n","protected":false},"author":1,"featured_media":236170,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716,747,727,1015],"tags":[1172],"class_list":["post-231941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-fuente-abierta","category-javascript-2","category-sitios-utiles","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=231941"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231941\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/236170"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}