|
1 | 1 | const { defineConfig } = require("cypress"); |
2 | 2 | const fs = require("fs"); |
| 3 | +const path = require("path"); |
3 | 4 | const pdfjsLib = require("pdfjs-dist/legacy/build/pdf.js"); |
4 | 5 | const { PNG } = require("pngjs"); |
5 | 6 | const sharp = require("sharp"); |
@@ -124,14 +125,40 @@ module.exports = defineConfig({ |
124 | 125 | }); |
125 | 126 |
|
126 | 127 | on("after:spec", (spec, results) => { |
127 | | - if (results?.video) { |
128 | | - const hasFailures = results.tests.some((t) => t.attempts.some((a) => a.state === "failed")); |
129 | | - if (!hasFailures && fs.existsSync(results.video)) { |
130 | | - fs.unlinkSync(results.video); |
131 | | - } |
| 128 | + const hasFailures = results?.tests?.some((t) => |
| 129 | + t.attempts.some((a) => a.state === "failed") |
| 130 | + ); |
| 131 | + |
| 132 | + if (!hasFailures && results?.video && fs.existsSync(results.video)) { |
| 133 | + fs.unlinkSync(results.video); |
132 | 134 | } |
133 | 135 | }); |
134 | 136 |
|
| 137 | + on("after:run", () => { |
| 138 | + const folders = [config.videosFolder, config.screenshotsFolder]; |
| 139 | + |
| 140 | + folders.forEach((folder) => { |
| 141 | + if (!fs.existsSync(folder)) { |
| 142 | + return; // folder yoksa skip |
| 143 | + } |
| 144 | + |
| 145 | + fs.readdirSync(folder).forEach((entry) => { |
| 146 | + const fullPath = path.join(folder, entry); |
| 147 | + |
| 148 | + if (!fs.existsSync(fullPath)) { |
| 149 | + return; |
| 150 | + } |
| 151 | + |
| 152 | + if (fs.statSync(fullPath).isDirectory()) { |
| 153 | + const content = fs.readdirSync(fullPath); |
| 154 | + if (content.length === 0) { |
| 155 | + fs.rmSync(fullPath, { recursive: true, force: true }); |
| 156 | + } |
| 157 | + } |
| 158 | + }); |
| 159 | + }); |
| 160 | + }); |
| 161 | + |
135 | 162 | on("before:browser:launch", (browser, launchOptions) => { |
136 | 163 | if (["chrome", "edge", "electron"].includes(browser.name)) { |
137 | 164 | if (browser.isHeadless) { |
|
0 commit comments