{
  "stats": {
    "suites": 1,
    "tests": 7,
    "passes": 0,
    "pending": 0,
    "failures": 7,
    "start": "2025-11-07T21:47:41.918Z",
    "end": "2025-11-07T21:47:52.336Z",
    "duration": 10418,
    "testsRegistered": 7,
    "passPercent": 0,
    "pendingPercent": 0,
    "other": 0,
    "hasOther": false,
    "skipped": 0,
    "hasSkipped": false
  },
  "results": [
    {
      "uuid": "2568587a-3413-400e-8880-9d250c20a050",
      "title": "",
      "fullFile": "cypress\\e2e\\relatorios_vendas.cy.js",
      "file": "cypress\\e2e\\relatorios_vendas.cy.js",
      "beforeHooks": [],
      "afterHooks": [],
      "tests": [],
      "suites": [
        {
          "uuid": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
          "title": "Relatórios de Vendas - UI e Exportações",
          "fullFile": "",
          "file": "",
          "beforeHooks": [],
          "afterHooks": [],
          "tests": [
            {
              "title": "carrega a página e popula filtros",
              "fullTitle": "Relatórios de Vendas - UI e Exportações carrega a página e popula filtros",
              "timedOut": null,
              "duration": 6337,
              "state": "failed",
              "speed": null,
              "pass": false,
              "fail": true,
              "pending": false,
              "context": null,
              "code": "cy.visit(base + '/relatorios/vendas');\ncy.wait('@filters');\ncy.get('#vendasProduto').find('option').should('have.length.greaterThan', 1);\ncy.get('#vendasRegiao').find('option').should('have.length.greaterThan', 1);\ncy.get('#vendasVendedor').find('option').should('have.length.greaterThan', 1);",
              "err": {
                "message": "CypressError: Timed out retrying after 5000ms: `cy.wait()` timed out waiting `5000ms` for the 1st request to the route: `filters`. No request ever occurred.\n\nhttps://on.cypress.io/wait",
                "estack": "CypressError: Timed out retrying after 5000ms: `cy.wait()` timed out waiting `5000ms` for the 1st request to the route: `filters`. No request ever occurred.\n\nhttps://on.cypress.io/wait\n    at cypressErr (http://localhost:8001/__cypress/runner/cypress_runner.js:76065:18)\n    at Object.errByPath (http://localhost:8001/__cypress/runner/cypress_runner.js:76119:10)\n    at checkForXhr (http://localhost:8001/__cypress/runner/cypress_runner.js:135342:84)\n    at <unknown> (http://localhost:8001/__cypress/runner/cypress_runner.js:135368:28)\n    at tryCatcher (http://localhost:8001/__cypress/runner/cypress_runner.js:1830:23)\n    at Promise.attempt.Promise.try (http://localhost:8001/__cypress/runner/cypress_runner.js:4338:29)\n    at whenStable (http://localhost:8001/__cypress/runner/cypress_runner.js:143744:68)\n    at <unknown> (http://localhost:8001/__cypress/runner/cypress_runner.js:143685:14)\n    at tryCatcher (http://localhost:8001/__cypress/runner/cypress_runner.js:1830:23)\n    at Promise._settlePromiseFromHandler (http://localhost:8001/__cypress/runner/cypress_runner.js:1542:31)\n    at Promise._settlePromise (http://localhost:8001/__cypress/runner/cypress_runner.js:1599:18)\n    at Promise._settlePromise0 (http://localhost:8001/__cypress/runner/cypress_runner.js:1644:10)\n    at Promise._settlePromises (http://localhost:8001/__cypress/runner/cypress_runner.js:1724:18)\n    at Promise._fulfill (http://localhost:8001/__cypress/runner/cypress_runner.js:1668:18)\n    at <unknown> (http://localhost:8001/__cypress/runner/cypress_runner.js:5473:46)\nFrom Your Spec Code:\n    at Context.eval (webpack://gestoreasy-v3/./cypress/e2e/relatorios_vendas.cy.js:68:7)",
                "diff": null
              },
              "uuid": "407d1769-a31b-4ba8-8a56-5a3440fa0e2f",
              "parentUUID": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
              "isHook": false,
              "skipped": false
            },
            {
              "title": "padroniza tamanho dos botões (.btn)",
              "fullTitle": "Relatórios de Vendas - UI e Exportações padroniza tamanho dos botões (.btn)",
              "timedOut": null,
              "duration": 558,
              "state": "failed",
              "speed": null,
              "pass": false,
              "fail": true,
              "pending": false,
              "context": null,
              "code": "cy.visit(base + '/relatorios/vendas');\ncy.get('#btnGerarVendas').should('have.class', 'btn').and('have.css', 'min-height', '40px').and('have.css', 'font-size', '14px');\ncy.get('#btnExportarPdfPagina').should('have.class', 'btn').and('have.css', 'min-height', '40px');",
              "err": {
                "message": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application",
                "estack": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application\n    at checkWrappedMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54660:21)\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54708:13)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)\n--------------\nError: Stack Trace for original\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54736:26)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)",
                "diff": null
              },
              "uuid": "fd17aa49-2f6e-4dff-aab9-8ff7b2fdabe8",
              "parentUUID": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
              "isHook": false,
              "skipped": false
            },
            {
              "title": "gera relatório e renderiza tabelas e gráficos",
              "fullTitle": "Relatórios de Vendas - UI e Exportações gera relatório e renderiza tabelas e gráficos",
              "timedOut": null,
              "duration": 585,
              "state": "failed",
              "speed": null,
              "pass": false,
              "fail": true,
              "pending": false,
              "context": null,
              "code": "cy.visit(base + '/relatorios/vendas');\n// Define datas explícitas para evitar valores vazios\ncy.get('#vendasDataInicio').type('2025-10-01');\ncy.get('#vendasDataFim').type('2025-10-31');\ncy.get('#btnGerarVendas').click();\ncy.wait(['@advanced', '@bySeller', '@topProducts', '@topRegions']);\ncy.get('#tbodyBySeller').find('tr').should('have.length.greaterThan', 1);\n// Top Produtos: valida colunas e percentuais\ncy.get('#tbodyTopProducts').find('tr').should('have.length', 2);\ncy.get('#tbodyTopProducts tr').first().find('td').should('have.length', 5);\ncy.get('#tbodyTopProducts tr').first().find('td').eq(0).should('have.text', '1');\ncy.get('#tbodyTopProducts tr').eq(1).find('td').eq(0).should('have.text', '2');\ncy.get('#tbodyTopProducts').closest('table').find('thead tr th').eq(4).should('contain.text', 'Percentual');\n// 560k / (560k + 320k) = 63.6%\ncy.get('#tbodyTopProducts tr').first().find('td').eq(4).should('contain.text', '63.6%');\ncy.get('#tbodyTopProducts tr').eq(1).find('td').eq(4).should('contain.text', '36.4%');\n// Top Regiões: valida colunas e percentuais\ncy.get('#tbodyTopRegions').find('tr').should('have.length', 2);\ncy.get('#tbodyTopRegions tr').first().find('td').should('have.length', 5);\ncy.get('#tbodyTopRegions tr').first().find('td').eq(0).should('have.text', '1');\ncy.get('#tbodyTopRegions tr').eq(1).find('td').eq(0).should('have.text', '2');\ncy.get('#tbodyTopRegions').closest('table').find('thead tr th').eq(4).should('contain.text', 'Percentual');\n// 400k / (400k + 380k) = 51.3%\ncy.get('#tbodyTopRegions tr').first().find('td').eq(4).should('contain.text', '51.3%');\ncy.get('#tbodyTopRegions tr').eq(1).find('td').eq(4).should('contain.text', '48.7%');\ncy.get('#chartVendasSerie').children().should('have.length.greaterThan', 0);\ncy.get('#chartTopProducts').children().should('have.length.greaterThan', 0);\ncy.get('#chartTopRegions').children().should('have.length.greaterThan', 0);\n// Gráficos devem exibir percentuais nos labels\ncy.get('#chartTopProducts').should('contain.text', '%');\ncy.get('#chartTopRegions').should('contain.text', '%');",
              "err": {
                "message": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application",
                "estack": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application\n    at checkWrappedMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54660:21)\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54708:13)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)\n--------------\nError: Stack Trace for original\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54736:26)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)",
                "diff": null
              },
              "uuid": "81a12e7f-ba31-48f1-a911-820b8763b722",
              "parentUUID": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
              "isHook": false,
              "skipped": false
            },
            {
              "title": "exporta CSV (Vendedores, Produtos, Regiões)",
              "fullTitle": "Relatórios de Vendas - UI e Exportações exporta CSV (Vendedores, Produtos, Regiões)",
              "timedOut": null,
              "duration": 672,
              "state": "failed",
              "speed": null,
              "pass": false,
              "fail": true,
              "pending": false,
              "context": null,
              "code": "cy.visit(base + '/relatorios/vendas');\ncy.get('#btnGerarVendas').click();\ncy.wait(['@bySeller', '@topProducts', '@topRegions']);\ncy.window().then(win => {\n  cy.stub(win.HTMLAnchorElement.prototype, 'click').as('aClick');\n});\ncy.get('#btnExportarVendasCsv').click();\ncy.get('#btnExportTopProductsCsv').click();\ncy.get('#btnExportTopRegionsCsv').click();\ncy.get('@aClick').should('have.been.called');",
              "err": {
                "message": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application",
                "estack": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application\n    at checkWrappedMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54660:21)\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54708:13)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)\n--------------\nError: Stack Trace for original\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54736:26)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)",
                "diff": null
              },
              "uuid": "ce655795-f739-416e-b8eb-8455a97fe41d",
              "parentUUID": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
              "isHook": false,
              "skipped": false
            },
            {
              "title": "exporta PNG dos gráficos com html2canvas stubado",
              "fullTitle": "Relatórios de Vendas - UI e Exportações exporta PNG dos gráficos com html2canvas stubado",
              "timedOut": null,
              "duration": 568,
              "state": "failed",
              "speed": null,
              "pass": false,
              "fail": true,
              "pending": false,
              "context": null,
              "code": "cy.visit(base + '/relatorios/vendas');\ncy.get('#btnGerarVendas').click();\ncy.wait(['@advanced', '@topProducts', '@topRegions']);\ncy.window().then(win => {\n  const fakeCanvas = win.document.createElement('canvas');\n  Object.defineProperty(fakeCanvas, 'width', {\n    value: 800\n  });\n  Object.defineProperty(fakeCanvas, 'height', {\n    value: 600\n  });\n  fakeCanvas.toDataURL = () => 'data:image/png;base64,ZmFrZQ==';\n  cy.stub(win, 'html2canvas').resolves(fakeCanvas);\n  cy.stub(win.HTMLAnchorElement.prototype, 'click').as('aClick');\n});\ncy.get('#btnVendasSeriePng').click();\ncy.get('#btnTopProductsPng').click();\ncy.get('#btnTopRegionsPng').click();\ncy.get('@aClick').should('have.been.called');",
              "err": {
                "message": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application",
                "estack": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application\n    at checkWrappedMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54660:21)\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54708:13)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)\n--------------\nError: Stack Trace for original\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54736:26)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)",
                "diff": null
              },
              "uuid": "a437670e-7a87-4b4c-bbc9-0b6dad3b6e7d",
              "parentUUID": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
              "isHook": false,
              "skipped": false
            },
            {
              "title": "exporta PDF da página (multi-página) com jsPDF stubado",
              "fullTitle": "Relatórios de Vendas - UI e Exportações exporta PDF da página (multi-página) com jsPDF stubado",
              "timedOut": null,
              "duration": 662,
              "state": "failed",
              "speed": null,
              "pass": false,
              "fail": true,
              "pending": false,
              "context": null,
              "code": "cy.visit(base + '/relatorios/vendas');\ncy.get('#btnGerarVendas').click();\ncy.wait(['@advanced', '@bySeller', '@topProducts', '@topRegions']);\ncy.window().then(win => {\n  // html2canvas gera um canvas válido para cada card\n  const mkCanvas = () => {\n    const c = win.document.createElement('canvas');\n    Object.defineProperty(c, 'width', {\n      value: 800\n    });\n    Object.defineProperty(c, 'height', {\n      value: 600\n    });\n    c.toDataURL = () => 'data:image/jpeg;base64,ZmFrZQ==';\n    return c;\n  };\n  let count = 0;\n  cy.stub(win, 'html2canvas').callsFake(async () => {\n    count++;\n    return mkCanvas();\n  });\n  const save = cy.stub().as('pdfSave');\n  const addPage = cy.stub();\n  const addImage = cy.stub();\n  const jsPDF = function () {\n    return {\n      internal: {\n        pageSize: {\n          getWidth: () => 210,\n          getHeight: () => 297\n        }\n      },\n      addPage,\n      addImage,\n      save\n    };\n  };\n  win.jspdf = {\n    jsPDF\n  };\n});\ncy.get('#btnExportarPdfPagina').click();\ncy.get('@pdfSave').should('have.been.called');",
              "err": {
                "message": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application",
                "estack": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application\n    at checkWrappedMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54660:21)\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54708:13)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)\n--------------\nError: Stack Trace for original\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54736:26)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)",
                "diff": null
              },
              "uuid": "b754f459-5df8-453a-922d-1c3243c7513a",
              "parentUUID": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
              "isHook": false,
              "skipped": false
            },
            {
              "title": "valida fluxo de impressão via safePrint sem erros",
              "fullTitle": "Relatórios de Vendas - UI e Exportações valida fluxo de impressão via safePrint sem erros",
              "timedOut": null,
              "duration": 598,
              "state": "failed",
              "speed": null,
              "pass": false,
              "fail": true,
              "pending": false,
              "context": null,
              "code": "cy.visit(base + '/relatorios/vendas');\ncy.window().then(win => {\n  cy.stub(win, 'print').as('winPrint');\n  // Chama impressão segura (exposta globalmente por print-control.js)\n  win.safePrint(1);\n});\ncy.get('@winPrint').should('have.been.called');\ncy.get('@consoleError').should('not.have.been.called');",
              "err": {
                "message": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application",
                "estack": "TypeError: The following error originated from your application code, not from Cypress.\n\n  > Attempted to wrap error which is already wrapped\n\nWhen Cypress detects uncaught errors originating from your application it will automatically fail the current test.\n\nThis behavior is configurable, and you can choose to turn this off by listening to the `uncaught:exception` event.\n\nhttps://on.cypress.io/uncaught-exception-from-application\n    at checkWrappedMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54660:21)\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54708:13)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)\n--------------\nError: Stack Trace for original\n    at wrapMethod (http://localhost:8001/__cypress/runner/cypress_runner.js:54736:26)\n    at Function.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:51850:44)\n    at Sandbox.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:45288:37)\n    at Context.stub (http://localhost:8001/__cypress/runner/cypress_runner.js:118579:32)\n    at cy.<computed> [as stub] (http://localhost:8001/__cypress/runner/cypress_runner.js:138068:17)\n    at EventEmitter.emit (http://localhost:8001/__cypress/runner/cypress_runner.js:141222:22)\n    at parent.<computed> [as emit] (http://localhost:8001/__cypress/runner/cypress_runner.js:140101:31)\n    at $Cypress.action (http://localhost:8001/__cypress/runner/cypress_runner.js:41603:21)",
                "diff": null
              },
              "uuid": "22797913-b872-499d-aa3a-081cbea84b86",
              "parentUUID": "c6573663-de41-4ebb-8b81-4b7571b3fb21",
              "isHook": false,
              "skipped": false
            }
          ],
          "suites": [],
          "passes": [],
          "failures": [
            "407d1769-a31b-4ba8-8a56-5a3440fa0e2f",
            "fd17aa49-2f6e-4dff-aab9-8ff7b2fdabe8",
            "81a12e7f-ba31-48f1-a911-820b8763b722",
            "ce655795-f739-416e-b8eb-8455a97fe41d",
            "a437670e-7a87-4b4c-bbc9-0b6dad3b6e7d",
            "b754f459-5df8-453a-922d-1c3243c7513a",
            "22797913-b872-499d-aa3a-081cbea84b86"
          ],
          "pending": [],
          "skipped": [],
          "duration": 9980,
          "root": false,
          "rootEmpty": false,
          "_timeout": 2000
        }
      ],
      "passes": [],
      "failures": [],
      "pending": [],
      "skipped": [],
      "duration": 0,
      "root": true,
      "rootEmpty": true,
      "_timeout": 2000
    }
  ],
  "meta": {
    "mocha": {
      "version": "7.0.1"
    },
    "mochawesome": {
      "options": {
        "quiet": true,
        "reportFilename": "mochawesome",
        "saveHtml": true,
        "saveJson": true,
        "consoleReporter": "spec",
        "useInlineDiffs": false,
        "code": true
      },
      "version": "7.1.4"
    },
    "marge": {
      "options": {
        "id": "default",
        "reportDir": "cypress/reports/mochawesome",
        "overwrite": false,
        "html": true,
        "json": true,
        "quiet": true
      },
      "version": "6.3.2"
    }
  }
}