@taiga-ui/testing 4.47.0-canary.152d8de → 4.47.0-canary.fb0273b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/visual-testing/combine-cypress-failed-screenshots.mjs +3 -3
- package/esm2022/visual-testing/combine-playwright-failed-screenshots.mjs +4 -4
- package/fesm2022/taiga-ui-testing-visual-testing.mjs +5 -5
- package/fesm2022/taiga-ui-testing-visual-testing.mjs.map +1 -1
- package/package.json +1 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
import { readFileSync, writeFileSync } from 'node:fs';
|
2
2
|
import { tuiCombineSnapshots } from './combine-snapshots';
|
3
|
-
const ROOT_PATH = 'projects/demo-cypress';
|
4
|
-
const TEST_RESULTS_PATH = `${ROOT_PATH}/tests-results`;
|
3
|
+
const ROOT_PATH = process.env.ROOT_PATH ?? 'projects/demo-cypress';
|
4
|
+
const TEST_RESULTS_PATH = process.env.TEST_RESULTS_PATH ?? `${ROOT_PATH}/tests-results`;
|
5
5
|
export async function tuiCombineCypressFailedScreenshots() {
|
6
6
|
const reportSummary = readJSON(`${TEST_RESULTS_PATH}/report-summary.json`);
|
7
7
|
if (!reportSummary) {
|
@@ -24,4 +24,4 @@ function readJSON(path) {
|
|
24
24
|
return null;
|
25
25
|
}
|
26
26
|
}
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZS1jeXByZXNzLWZhaWxlZC1zY3JlZW5zaG90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlc3RpbmcvdmlzdWFsLXRlc3RpbmcvY29tYmluZS1jeXByZXNzLWZhaWxlZC1zY3JlZW5zaG90cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLGFBQWEsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSx1QkFBdUIsQ0FBQztBQUNuRSxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksR0FBRyxTQUFTLGdCQUFnQixDQUFDO0FBY3hGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0NBQWtDO0lBQ3BELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBUyxHQUFHLGlCQUFpQixzQkFBc0IsQ0FBQyxDQUFDO0lBRW5GLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDaEIsT0FBTztLQUNWO0lBRUQsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQUMsTUFBTTtTQUMzQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDbkIsSUFBSSxFQUFFO1NBQ04sTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEQsS0FBSyxNQUFNLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFDLElBQUksbUJBQW1CLEVBQUU7UUFDOUUsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQkFBbUIsQ0FDcEMsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDM0UsQ0FBQztRQUVGLGFBQWEsQ0FBQyxHQUFHLGlCQUFpQixJQUFJLElBQUksV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ2xFO0FBQ0wsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFJLElBQVk7SUFDN0IsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDbEQ7SUFBQyxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3JlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnbm9kZTpmcyc7XG5cbmltcG9ydCB7dHVpQ29tYmluZVNuYXBzaG90c30gZnJvbSAnLi9jb21iaW5lLXNuYXBzaG90cyc7XG5cbmNvbnN0IFJPT1RfUEFUSCA9IHByb2Nlc3MuZW52LlJPT1RfUEFUSCA/PyAncHJvamVjdHMvZGVtby1jeXByZXNzJztcbmNvbnN0IFRFU1RfUkVTVUxUU19QQVRIID0gcHJvY2Vzcy5lbnYuVEVTVF9SRVNVTFRTX1BBVEggPz8gYCR7Uk9PVF9QQVRIfS90ZXN0cy1yZXN1bHRzYDtcblxuaW50ZXJmYWNlIFRlc3RSZXN1bHQge1xuICAgIHN0YXR1czogJ2ZhaWwnIHwgJ3Bhc3MnO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBiYXNlbGluZVBhdGg6IHN0cmluZztcbiAgICBkaWZmUGF0aDogc3RyaW5nO1xuICAgIGNvbXBhcmlzb25QYXRoOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXBvcnQge1xuICAgIHN1aXRlczogQXJyYXk8e3Rlc3RzOiBUZXN0UmVzdWx0W119Pjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHR1aUNvbWJpbmVDeXByZXNzRmFpbGVkU2NyZWVuc2hvdHMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVwb3J0U3VtbWFyeSA9IHJlYWRKU09OPFJlcG9ydD4oYCR7VEVTVF9SRVNVTFRTX1BBVEh9L3JlcG9ydC1zdW1tYXJ5Lmpzb25gKTtcblxuICAgIGlmICghcmVwb3J0U3VtbWFyeSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmFpbGVkVGVzdFNuYXBzaG90cyA9IHJlcG9ydFN1bW1hcnkuc3VpdGVzXG4gICAgICAgIC5tYXAoKHgpID0+IHgudGVzdHMpXG4gICAgICAgIC5mbGF0KClcbiAgICAgICAgLmZpbHRlcigoeCkgPT4geC5zdGF0dXMgPT09ICdmYWlsJyAmJiB4LmRpZmZQYXRoKTtcblxuICAgIGZvciAoY29uc3Qge2Jhc2VsaW5lUGF0aCwgZGlmZlBhdGgsIGNvbXBhcmlzb25QYXRoLCBuYW1lfSBvZiBmYWlsZWRUZXN0U25hcHNob3RzKSB7XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHR1aUNvbWJpbmVTbmFwc2hvdHMoXG4gICAgICAgICAgICBbYmFzZWxpbmVQYXRoLCBkaWZmUGF0aCwgY29tcGFyaXNvblBhdGhdLm1hcCgoeCkgPT4gYCR7Uk9PVF9QQVRIfS8ke3h9YCksXG4gICAgICAgICk7XG5cbiAgICAgICAgd3JpdGVGaWxlU3luYyhgJHtURVNUX1JFU1VMVFNfUEFUSH0vJHtuYW1lfS5kaWZmLnBuZ2AsIGJ1ZmZlcik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiByZWFkSlNPTjxUPihwYXRoOiBzdHJpbmcpOiBUIHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhdGgsICd1dGYtOCcpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIl19
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { readdirSync, writeFileSync } from 'node:fs';
|
2
2
|
import { tuiCombineSnapshots } from './combine-snapshots';
|
3
|
-
const FAILED_SCREENSHOTS_PATH = 'projects/demo-playwright/tests-results';
|
4
|
-
const DIFF_IMAGE_POSTFIX = '-diff.png';
|
5
|
-
const OUTPUT_DIFF_IMAGE_POSTFIX = '.diff.png';
|
3
|
+
const FAILED_SCREENSHOTS_PATH = process.env.FAILED_SCREENSHOTS_PATH ?? 'projects/demo-playwright/tests-results';
|
4
|
+
const DIFF_IMAGE_POSTFIX = process.env.DIFF_IMAGE_POSTFIX ?? '-diff.png';
|
5
|
+
const OUTPUT_DIFF_IMAGE_POSTFIX = process.env.OUTPUT_DIFF_IMAGE_POSTFIX ?? '.diff.png';
|
6
6
|
const RETRY_COUNT = Number(process.env.RETRY_COUNT ?? 2);
|
7
7
|
const REG_EXP = new RegExp(`retry${RETRY_COUNT}$|retry${RETRY_COUNT}/`);
|
8
8
|
export async function tuiCombinePlaywrightFailedScreenshots(rootPath = FAILED_SCREENSHOTS_PATH) {
|
@@ -28,4 +28,4 @@ export async function tuiCombinePlaywrightFailedScreenshots(rootPath = FAILED_SC
|
|
28
28
|
console.info(`Write new diff: ${path}`);
|
29
29
|
}
|
30
30
|
}
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZS1wbGF5d3JpZ2h0LWZhaWxlZC1zY3JlZW5zaG90cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlc3RpbmcvdmlzdWFsLXRlc3RpbmcvY29tYmluZS1wbGF5d3JpZ2h0LWZhaWxlZC1zY3JlZW5zaG90cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFFLGFBQWEsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVuRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxNQUFNLHVCQUF1QixHQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLHdDQUF3QyxDQUFDO0FBRXBGLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLENBQUM7QUFFekUsTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixJQUFJLFdBQVcsQ0FBQztBQUV2RixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxXQUFXLFVBQVUsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUV4RSxNQUFNLENBQUMsS0FBSyxVQUFVLHFDQUFxQyxDQUN2RCxRQUFRLEdBQUcsdUJBQXVCO0lBRWxDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUU7UUFDdEMsYUFBYSxFQUFFLElBQUk7S0FDdEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1osQ0FBQyxDQUFDLFdBQVcsRUFBRTtRQUNYLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDcEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUNuQyxDQUFDO0lBRUYsS0FBSyxNQUFNLEVBQUMsSUFBSSxFQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7UUFDN0QsTUFBTSxxQ0FBcUMsQ0FBQyxHQUFHLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3RFO0lBRUQsTUFBTSxXQUFXLEdBQWEsV0FBVztTQUNwQyxNQUFNLENBQ0gsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNGLENBQUMsQ0FBQyxNQUFNLEVBQUU7UUFDVixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUNsRDtTQUNBLEdBQUcsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFFOUUsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLEVBQUU7UUFDM0IsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEYsTUFBTSxJQUFJLEdBQUcsR0FBRyxRQUFRLElBQUksYUFBYSxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQkFBbUIsQ0FDcEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUM3RCxDQUNKLENBQUM7UUFFRixhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7S0FDM0M7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtyZWFkZGlyU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnbm9kZTpmcyc7XG5cbmltcG9ydCB7dHVpQ29tYmluZVNuYXBzaG90c30gZnJvbSAnLi9jb21iaW5lLXNuYXBzaG90cyc7XG5cbmNvbnN0IEZBSUxFRF9TQ1JFRU5TSE9UU19QQVRIID1cbiAgICBwcm9jZXNzLmVudi5GQUlMRURfU0NSRUVOU0hPVFNfUEFUSCA/PyAncHJvamVjdHMvZGVtby1wbGF5d3JpZ2h0L3Rlc3RzLXJlc3VsdHMnO1xuXG5jb25zdCBESUZGX0lNQUdFX1BPU1RGSVggPSBwcm9jZXNzLmVudi5ESUZGX0lNQUdFX1BPU1RGSVggPz8gJy1kaWZmLnBuZyc7XG5cbmNvbnN0IE9VVFBVVF9ESUZGX0lNQUdFX1BPU1RGSVggPSBwcm9jZXNzLmVudi5PVVRQVVRfRElGRl9JTUFHRV9QT1NURklYID8/ICcuZGlmZi5wbmcnO1xuXG5jb25zdCBSRVRSWV9DT1VOVCA9IE51bWJlcihwcm9jZXNzLmVudi5SRVRSWV9DT1VOVCA/PyAyKTtcblxuY29uc3QgUkVHX0VYUCA9IG5ldyBSZWdFeHAoYHJldHJ5JHtSRVRSWV9DT1VOVH0kfHJldHJ5JHtSRVRSWV9DT1VOVH0vYCk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0dWlDb21iaW5lUGxheXdyaWdodEZhaWxlZFNjcmVlbnNob3RzKFxuICAgIHJvb3RQYXRoID0gRkFJTEVEX1NDUkVFTlNIT1RTX1BBVEgsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWxlc09yRGlycyA9IHJlYWRkaXJTeW5jKHJvb3RQYXRoLCB7XG4gICAgICAgIHdpdGhGaWxlVHlwZXM6IHRydWUsXG4gICAgfSkuZmlsdGVyKCh4KSA9PlxuICAgICAgICB4LmlzRGlyZWN0b3J5KClcbiAgICAgICAgICAgID8gUkVHX0VYUC5leGVjKHgubmFtZSkgfHwgUkVHX0VYUC5leGVjKHgucGFyZW50UGF0aClcbiAgICAgICAgICAgIDogUkVHX0VYUC5leGVjKHgucGFyZW50UGF0aCksXG4gICAgKTtcblxuICAgIGZvciAoY29uc3Qge25hbWV9IG9mIGZpbGVzT3JEaXJzLmZpbHRlcigoeCkgPT4geC5pc0RpcmVjdG9yeSgpKSkge1xuICAgICAgICBhd2FpdCB0dWlDb21iaW5lUGxheXdyaWdodEZhaWxlZFNjcmVlbnNob3RzKGAke3Jvb3RQYXRofS8ke25hbWV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgaW1hZ2VzUGF0aHM6IHN0cmluZ1tdID0gZmlsZXNPckRpcnNcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICh4KSA9PlxuICAgICAgICAgICAgICAgIHguaXNGaWxlKCkgJiZcbiAgICAgICAgICAgICAgICB4Lm5hbWUuZW5kc1dpdGgoJy5wbmcnKSAmJlxuICAgICAgICAgICAgICAgICF4Lm5hbWUuZW5kc1dpdGgoT1VUUFVUX0RJRkZfSU1BR0VfUE9TVEZJWCksXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgoe25hbWV9KSA9PiBgJHtyb290UGF0aH0vJHtuYW1lfWApO1xuICAgIGNvbnN0IGRpZmZzID0gaW1hZ2VzUGF0aHMuZmlsdGVyKChwYXRoKSA9PiBwYXRoLmVuZHNXaXRoKERJRkZfSU1BR0VfUE9TVEZJWCkpO1xuXG4gICAgZm9yIChjb25zdCBkaWZmSW1hZ2Ugb2YgZGlmZnMpIHtcbiAgICAgICAgY29uc3QgZGlmZkltYWdlTmFtZSA9IGRpZmZJbWFnZS5zcGxpdCgnLycpLnBvcCgpIS5yZXBsYWNlKERJRkZfSU1BR0VfUE9TVEZJWCwgJycpO1xuICAgICAgICBjb25zdCBwYXRoID0gYCR7cm9vdFBhdGh9LyR7ZGlmZkltYWdlTmFtZX0ke09VVFBVVF9ESUZGX0lNQUdFX1BPU1RGSVh9YDtcbiAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdHVpQ29tYmluZVNuYXBzaG90cyhcbiAgICAgICAgICAgIGltYWdlc1BhdGhzLmZpbHRlcigocGF0aCkgPT5cbiAgICAgICAgICAgICAgICBwYXRoLnN0YXJ0c1dpdGgoZGlmZkltYWdlLnJlcGxhY2UoRElGRl9JTUFHRV9QT1NURklYLCAnJykpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcblxuICAgICAgICB3cml0ZUZpbGVTeW5jKHBhdGgsIGJ1ZmZlcik7XG5cbiAgICAgICAgY29uc29sZS5pbmZvKGBXcml0ZSBuZXcgZGlmZjogJHtwYXRofWApO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -21,8 +21,8 @@ async function tuiCombineSnapshots(imagesPaths) {
|
|
21
21
|
return canvas.toBuffer('image/png');
|
22
22
|
}
|
23
23
|
|
24
|
-
const ROOT_PATH = 'projects/demo-cypress';
|
25
|
-
const TEST_RESULTS_PATH = `${ROOT_PATH}/tests-results`;
|
24
|
+
const ROOT_PATH = process.env.ROOT_PATH ?? 'projects/demo-cypress';
|
25
|
+
const TEST_RESULTS_PATH = process.env.TEST_RESULTS_PATH ?? `${ROOT_PATH}/tests-results`;
|
26
26
|
async function tuiCombineCypressFailedScreenshots() {
|
27
27
|
const reportSummary = readJSON(`${TEST_RESULTS_PATH}/report-summary.json`);
|
28
28
|
if (!reportSummary) {
|
@@ -46,9 +46,9 @@ function readJSON(path) {
|
|
46
46
|
}
|
47
47
|
}
|
48
48
|
|
49
|
-
const FAILED_SCREENSHOTS_PATH = 'projects/demo-playwright/tests-results';
|
50
|
-
const DIFF_IMAGE_POSTFIX = '-diff.png';
|
51
|
-
const OUTPUT_DIFF_IMAGE_POSTFIX = '.diff.png';
|
49
|
+
const FAILED_SCREENSHOTS_PATH = process.env.FAILED_SCREENSHOTS_PATH ?? 'projects/demo-playwright/tests-results';
|
50
|
+
const DIFF_IMAGE_POSTFIX = process.env.DIFF_IMAGE_POSTFIX ?? '-diff.png';
|
51
|
+
const OUTPUT_DIFF_IMAGE_POSTFIX = process.env.OUTPUT_DIFF_IMAGE_POSTFIX ?? '.diff.png';
|
52
52
|
const RETRY_COUNT = Number(process.env.RETRY_COUNT ?? 2);
|
53
53
|
const REG_EXP = new RegExp(`retry${RETRY_COUNT}$|retry${RETRY_COUNT}/`);
|
54
54
|
async function tuiCombinePlaywrightFailedScreenshots(rootPath = FAILED_SCREENSHOTS_PATH) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-testing-visual-testing.mjs","sources":["../../../projects/testing/visual-testing/combine-snapshots.ts","../../../projects/testing/visual-testing/combine-cypress-failed-screenshots.ts","../../../projects/testing/visual-testing/combine-playwright-failed-screenshots.ts","../../../projects/testing/visual-testing/taiga-ui-testing-visual-testing.ts"],"sourcesContent":["// @ts-nocheck It is used in CI only!\n/**\n * Canvas has difficult installation guide for ARM CPU, including an Apple M1 or M2\n * (not friendly for our external contributors).\n * https://github.com/Automattic/node-canvas/issues/1511\n */\nimport {createCanvas, loadImage} from 'canvas';\n\nexport async function tuiCombineSnapshots(\n imagesPaths: string[],\n): Promise<NodeJS.ArrayBufferView> {\n const images = await Promise.all(imagesPaths.map(loadImage));\n const totalWidth = images.reduce((acc: number, {width}) => acc + width, 0);\n const maxHeight = Math.max(...images.map(({height}) => height));\n const canvas = createCanvas(totalWidth, maxHeight);\n const ctx = canvas.getContext('2d');\n\n let prevWidth = 0;\n\n images.forEach((image) => {\n ctx.drawImage(image, prevWidth, 0);\n prevWidth += image.width;\n });\n\n return canvas.toBuffer('image/png');\n}\n","import {readFileSync, writeFileSync} from 'node:fs';\n\nimport {tuiCombineSnapshots} from './combine-snapshots';\n\nconst ROOT_PATH = 'projects/demo-cypress';\nconst TEST_RESULTS_PATH = `${ROOT_PATH}/tests-results`;\n\ninterface TestResult {\n status: 'fail' | 'pass';\n name: string;\n baselinePath: string;\n diffPath: string;\n comparisonPath: string;\n}\n\ninterface Report {\n suites: Array<{tests: TestResult[]}>;\n}\n\nexport async function tuiCombineCypressFailedScreenshots(): Promise<void> {\n const reportSummary = readJSON<Report>(`${TEST_RESULTS_PATH}/report-summary.json`);\n\n if (!reportSummary) {\n return;\n }\n\n const failedTestSnapshots = reportSummary.suites\n .map((x) => x.tests)\n .flat()\n .filter((x) => x.status === 'fail' && x.diffPath);\n\n for (const {baselinePath, diffPath, comparisonPath, name} of failedTestSnapshots) {\n const buffer = await tuiCombineSnapshots(\n [baselinePath, diffPath, comparisonPath].map((x) => `${ROOT_PATH}/${x}`),\n );\n\n writeFileSync(`${TEST_RESULTS_PATH}/${name}.diff.png`, buffer);\n }\n}\n\nfunction readJSON<T>(path: string): T | null {\n try {\n return JSON.parse(readFileSync(path, 'utf-8'));\n } catch {\n return null;\n }\n}\n","import {readdirSync, writeFileSync} from 'node:fs';\n\nimport {tuiCombineSnapshots} from './combine-snapshots';\n\nconst FAILED_SCREENSHOTS_PATH
|
1
|
+
{"version":3,"file":"taiga-ui-testing-visual-testing.mjs","sources":["../../../projects/testing/visual-testing/combine-snapshots.ts","../../../projects/testing/visual-testing/combine-cypress-failed-screenshots.ts","../../../projects/testing/visual-testing/combine-playwright-failed-screenshots.ts","../../../projects/testing/visual-testing/taiga-ui-testing-visual-testing.ts"],"sourcesContent":["// @ts-nocheck It is used in CI only!\n/**\n * Canvas has difficult installation guide for ARM CPU, including an Apple M1 or M2\n * (not friendly for our external contributors).\n * https://github.com/Automattic/node-canvas/issues/1511\n */\nimport {createCanvas, loadImage} from 'canvas';\n\nexport async function tuiCombineSnapshots(\n imagesPaths: string[],\n): Promise<NodeJS.ArrayBufferView> {\n const images = await Promise.all(imagesPaths.map(loadImage));\n const totalWidth = images.reduce((acc: number, {width}) => acc + width, 0);\n const maxHeight = Math.max(...images.map(({height}) => height));\n const canvas = createCanvas(totalWidth, maxHeight);\n const ctx = canvas.getContext('2d');\n\n let prevWidth = 0;\n\n images.forEach((image) => {\n ctx.drawImage(image, prevWidth, 0);\n prevWidth += image.width;\n });\n\n return canvas.toBuffer('image/png');\n}\n","import {readFileSync, writeFileSync} from 'node:fs';\n\nimport {tuiCombineSnapshots} from './combine-snapshots';\n\nconst ROOT_PATH = process.env.ROOT_PATH ?? 'projects/demo-cypress';\nconst TEST_RESULTS_PATH = process.env.TEST_RESULTS_PATH ?? `${ROOT_PATH}/tests-results`;\n\ninterface TestResult {\n status: 'fail' | 'pass';\n name: string;\n baselinePath: string;\n diffPath: string;\n comparisonPath: string;\n}\n\ninterface Report {\n suites: Array<{tests: TestResult[]}>;\n}\n\nexport async function tuiCombineCypressFailedScreenshots(): Promise<void> {\n const reportSummary = readJSON<Report>(`${TEST_RESULTS_PATH}/report-summary.json`);\n\n if (!reportSummary) {\n return;\n }\n\n const failedTestSnapshots = reportSummary.suites\n .map((x) => x.tests)\n .flat()\n .filter((x) => x.status === 'fail' && x.diffPath);\n\n for (const {baselinePath, diffPath, comparisonPath, name} of failedTestSnapshots) {\n const buffer = await tuiCombineSnapshots(\n [baselinePath, diffPath, comparisonPath].map((x) => `${ROOT_PATH}/${x}`),\n );\n\n writeFileSync(`${TEST_RESULTS_PATH}/${name}.diff.png`, buffer);\n }\n}\n\nfunction readJSON<T>(path: string): T | null {\n try {\n return JSON.parse(readFileSync(path, 'utf-8'));\n } catch {\n return null;\n }\n}\n","import {readdirSync, writeFileSync} from 'node:fs';\n\nimport {tuiCombineSnapshots} from './combine-snapshots';\n\nconst FAILED_SCREENSHOTS_PATH =\n process.env.FAILED_SCREENSHOTS_PATH ?? 'projects/demo-playwright/tests-results';\n\nconst DIFF_IMAGE_POSTFIX = process.env.DIFF_IMAGE_POSTFIX ?? '-diff.png';\n\nconst OUTPUT_DIFF_IMAGE_POSTFIX = process.env.OUTPUT_DIFF_IMAGE_POSTFIX ?? '.diff.png';\n\nconst RETRY_COUNT = Number(process.env.RETRY_COUNT ?? 2);\n\nconst REG_EXP = new RegExp(`retry${RETRY_COUNT}$|retry${RETRY_COUNT}/`);\n\nexport async function tuiCombinePlaywrightFailedScreenshots(\n rootPath = FAILED_SCREENSHOTS_PATH,\n): Promise<void> {\n const filesOrDirs = readdirSync(rootPath, {\n withFileTypes: true,\n }).filter((x) =>\n x.isDirectory()\n ? REG_EXP.exec(x.name) || REG_EXP.exec(x.parentPath)\n : REG_EXP.exec(x.parentPath),\n );\n\n for (const {name} of filesOrDirs.filter((x) => x.isDirectory())) {\n await tuiCombinePlaywrightFailedScreenshots(`${rootPath}/${name}`);\n }\n\n const imagesPaths: string[] = filesOrDirs\n .filter(\n (x) =>\n x.isFile() &&\n x.name.endsWith('.png') &&\n !x.name.endsWith(OUTPUT_DIFF_IMAGE_POSTFIX),\n )\n .map(({name}) => `${rootPath}/${name}`);\n const diffs = imagesPaths.filter((path) => path.endsWith(DIFF_IMAGE_POSTFIX));\n\n for (const diffImage of diffs) {\n const diffImageName = diffImage.split('/').pop()!.replace(DIFF_IMAGE_POSTFIX, '');\n const path = `${rootPath}/${diffImageName}${OUTPUT_DIFF_IMAGE_POSTFIX}`;\n const buffer = await tuiCombineSnapshots(\n imagesPaths.filter((path) =>\n path.startsWith(diffImage.replace(DIFF_IMAGE_POSTFIX, '')),\n ),\n );\n\n writeFileSync(path, buffer);\n\n console.info(`Write new diff: ${path}`);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|