vitest-plugin-vis 4.0.0 → 4.2.0
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/dist/auto_snapshots/_ctx.mjs +15 -0
- package/dist/auto_snapshots/_ctx.mjs.map +1 -0
- package/dist/auto_snapshots/_extract_auto_snapshot_options.mjs +23 -0
- package/dist/auto_snapshots/_extract_auto_snapshot_options.mjs.map +1 -0
- package/dist/{auto_snapshot_options-CaQCXDdi.d.mts → auto_snapshots/auto_snapshot_options.d.mts} +5 -4
- package/dist/auto_snapshots/auto_snapshot_options.d.mts.map +1 -0
- package/dist/{auto_snapshot_options-CAD43Zkp.mjs → auto_snapshots/auto_snapshot_options.mjs} +6 -42
- package/dist/auto_snapshots/auto_snapshot_options.mjs.map +1 -0
- package/dist/auto_snapshots/snapshot_meta.d.mts +15 -0
- package/dist/auto_snapshots/snapshot_meta.d.mts.map +1 -0
- package/dist/client/actions/has_image_snapshot_action.d.mts +8 -0
- package/dist/client/actions/has_image_snapshot_action.d.mts.map +1 -0
- package/dist/client/actions/has_image_snapshot_action.mjs +9 -0
- package/dist/client/actions/has_image_snapshot_action.mjs.map +1 -0
- package/dist/client/actions/load_image_snapshot_results_action.d.mts +7 -0
- package/dist/client/actions/load_image_snapshot_results_action.d.mts.map +1 -0
- package/dist/client/actions/load_image_snapshot_results_action.mjs +8 -0
- package/dist/client/actions/load_image_snapshot_results_action.mjs.map +1 -0
- package/dist/client/actions/match_image_snapshot_action.d.mts +9 -0
- package/dist/client/actions/match_image_snapshot_action.d.mts.map +1 -0
- package/dist/client/actions/match_image_snapshot_action.mjs +20 -0
- package/dist/client/actions/match_image_snapshot_action.mjs.map +1 -0
- package/dist/client/actions/match_page_image_snapshot_action.d.mts +9 -0
- package/dist/client/actions/match_page_image_snapshot_action.d.mts.map +1 -0
- package/dist/client/actions/match_page_image_snapshot_action.mjs +14 -0
- package/dist/client/actions/match_page_image_snapshot_action.mjs.map +1 -0
- package/dist/client/expect/_ctx.mjs +15 -0
- package/dist/client/expect/_ctx.mjs.map +1 -0
- package/dist/client/expect/augment.d.mts +10 -0
- package/dist/client/expect/augment.d.mts.map +1 -0
- package/dist/client/expect/expectation_result.d.mts +7 -0
- package/dist/client/expect/expectation_result.d.mts.map +1 -0
- package/dist/client/expect/expectation_result.mjs +9 -0
- package/dist/client/expect/expectation_result.mjs.map +1 -0
- package/dist/client/expect/extend.d.mts +1 -0
- package/dist/client/expect/extend.mjs +9 -0
- package/dist/client/expect/extend.mjs.map +1 -0
- package/dist/client/expect/to_match_image_snapshot.mjs +16 -0
- package/dist/client/expect/to_match_image_snapshot.mjs.map +1 -0
- package/dist/{to_match_image_snapshot.types-p-zilA_M.d.mts → client/expect/to_match_image_snapshot.types.d.mts} +3 -3
- package/dist/client/expect/to_match_image_snapshot.types.d.mts.map +1 -0
- package/dist/client/external/browser/has_render_content.mjs +8 -0
- package/dist/client/external/browser/has_render_content.mjs.map +1 -0
- package/dist/client/external/browser/image_data.mjs +37 -0
- package/dist/client/external/browser/image_data.mjs.map +1 -0
- package/dist/client/external/browser/image_resizer.mjs +32 -0
- package/dist/client/external/browser/image_resizer.mjs.map +1 -0
- package/dist/client/external/browser/selector.mjs +57 -0
- package/dist/client/external/browser/selector.mjs.map +1 -0
- package/dist/client/external/vitest/vitest_browser_context_proxy.mjs +12 -0
- package/dist/client/external/vitest/vitest_browser_context_proxy.mjs.map +1 -0
- package/dist/client/external/vitest/vitest_suite_proxy.d.mts +3 -0
- package/dist/client/external/vitest/vitest_suite_proxy.mjs +11 -0
- package/dist/client/external/vitest/vitest_suite_proxy.mjs.map +1 -0
- package/dist/client/image/align_images.mjs +14 -0
- package/dist/client/image/align_images.mjs.map +1 -0
- package/dist/client/page/_ctx.d.mts +3 -0
- package/dist/client/page/_ctx.mjs +15 -0
- package/dist/client/page/_ctx.mjs.map +1 -0
- package/dist/client/page/augment.d.mts +9 -0
- package/dist/client/page/augment.d.mts.map +1 -0
- package/dist/client/page/extend.d.mts +1 -0
- package/dist/client/page/extend.mjs +13 -0
- package/dist/client/page/extend.mjs.map +1 -0
- package/dist/client/page/has_image_snapshot.d.mts +13 -0
- package/dist/client/page/has_image_snapshot.d.mts.map +1 -0
- package/dist/client/page/has_image_snapshot.mjs +15 -0
- package/dist/client/page/has_image_snapshot.mjs.map +1 -0
- package/dist/client/page/to_match_image_snapshot.d.mts +9 -0
- package/dist/client/page/to_match_image_snapshot.d.mts.map +1 -0
- package/dist/client/page/to_match_image_snapshot.mjs +15 -0
- package/dist/client/page/to_match_image_snapshot.mjs.map +1 -0
- package/dist/client/snapshot/compare_image_snapshot.logic.mjs +14 -0
- package/dist/client/snapshot/compare_image_snapshot.logic.mjs.map +1 -0
- package/dist/client/snapshot/compare_image_snapshot.mjs +63 -0
- package/dist/client/snapshot/compare_image_snapshot.mjs.map +1 -0
- package/dist/client/snapshot/should_take_snapshot.mjs +10 -0
- package/dist/client/snapshot/should_take_snapshot.mjs.map +1 -0
- package/dist/client/suite/_ctx.mjs +13 -0
- package/dist/client/suite/_ctx.mjs.map +1 -0
- package/dist/client/suite/auto_snapshot_matcher.d.mts +12 -0
- package/dist/client/suite/auto_snapshot_matcher.d.mts.map +1 -0
- package/dist/client/suite/auto_snapshot_matcher.mjs +50 -0
- package/dist/client/suite/auto_snapshot_matcher.mjs.map +1 -0
- package/dist/client/task/task_id.d.mts +9 -0
- package/dist/client/task/task_id.d.mts.map +1 -0
- package/dist/client/task/task_id.mjs +15 -0
- package/dist/client/task/task_id.mjs.map +1 -0
- package/dist/client-api.d.mts +13 -141
- package/dist/client-api.mjs +10 -13
- package/dist/{types-Do1N7g4c.d.mts → config/types.d.mts} +8 -9
- package/dist/config/types.d.mts.map +1 -0
- package/dist/config/vis.d.mts +27 -0
- package/dist/config/vis.d.mts.map +1 -0
- package/dist/config/vis.mjs +31 -0
- package/dist/config/vis.mjs.map +1 -0
- package/dist/config.d.mts +5 -28
- package/dist/config.mjs +3 -411
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +1 -4
- package/dist/presets/auto.mjs +4 -7
- package/dist/presets/auto.mjs.map +1 -1
- package/dist/presets/enable.mjs +2 -6
- package/dist/presets/enable.mjs.map +1 -1
- package/dist/presets/manual.mjs +2 -6
- package/dist/presets/manual.mjs.map +1 -1
- package/dist/server/browser_provider/browser_api.mjs +13 -0
- package/dist/server/browser_provider/browser_api.mjs.map +1 -0
- package/dist/server/browser_provider/playwright.mjs +24 -0
- package/dist/server/browser_provider/playwright.mjs.map +1 -0
- package/dist/server/browser_provider/webdriverio.mjs +16 -0
- package/dist/server/browser_provider/webdriverio.mjs.map +1 -0
- package/dist/server/commands/_assertions.mjs +10 -0
- package/dist/server/commands/_assertions.mjs.map +1 -0
- package/dist/server/commands/augment.d.mts +8 -0
- package/dist/server/commands/augment.d.mts.map +1 -0
- package/dist/server/commands/commands.mjs +20 -0
- package/dist/server/commands/commands.mjs.map +1 -0
- package/dist/server/commands/has_image_snapshot.mjs +12 -0
- package/dist/server/commands/has_image_snapshot.mjs.map +1 -0
- package/dist/server/commands/image_snapshot_next_index.mjs +12 -0
- package/dist/server/commands/image_snapshot_next_index.mjs.map +1 -0
- package/dist/server/commands/load_image_snapshot_results.mjs +12 -0
- package/dist/server/commands/load_image_snapshot_results.mjs.map +1 -0
- package/dist/server/commands/prepare_image_snapshot_comparison.mjs +37 -0
- package/dist/server/commands/prepare_image_snapshot_comparison.mjs.map +1 -0
- package/dist/server/commands/prepare_page_image_snapshot_comparison.mjs +27 -0
- package/dist/server/commands/prepare_page_image_snapshot_comparison.mjs.map +1 -0
- package/dist/server/commands/setup_vis_suite.mjs +12 -0
- package/dist/server/commands/setup_vis_suite.mjs.map +1 -0
- package/dist/server/externals/file.mjs +23 -0
- package/dist/server/externals/file.mjs.map +1 -0
- package/dist/server/project.mjs +13 -0
- package/dist/server/project.mjs.map +1 -0
- package/dist/server/snapshot.mjs +29 -0
- package/dist/server/snapshot.mjs.map +1 -0
- package/dist/server/snapshot_path.d.mts +17 -0
- package/dist/server/snapshot_path.d.mts.map +1 -0
- package/dist/{snapshot_path-7GliOSH_.mjs → server/snapshot_path.mjs} +7 -25
- package/dist/server/snapshot_path.mjs.map +1 -0
- package/dist/server/snapshot_writer.mjs +21 -0
- package/dist/server/snapshot_writer.mjs.map +1 -0
- package/dist/server/suite.mjs +82 -0
- package/dist/server/suite.mjs.map +1 -0
- package/dist/server/vis_options.mjs +19 -0
- package/dist/server/vis_options.mjs.map +1 -0
- package/dist/server/vis_server_context.deps.mjs +16 -0
- package/dist/server/vis_server_context.deps.mjs.map +1 -0
- package/dist/server/vis_server_context.logic.mjs +82 -0
- package/dist/server/vis_server_context.logic.mjs.map +1 -0
- package/dist/server/vis_server_context.mjs +8 -0
- package/dist/server/vis_server_context.mjs.map +1 -0
- package/dist/server/vis_server_context.types.d.mts +2 -0
- package/dist/server-utils.d.mts +4 -19
- package/dist/server-utils.mjs +3 -2
- package/dist/setup/create_vis.d.mts +108 -0
- package/dist/setup/create_vis.d.mts.map +1 -0
- package/dist/setup/create_vis.mjs +58 -0
- package/dist/setup/create_vis.mjs.map +1 -0
- package/dist/setup/vis.d.mts +10 -0
- package/dist/setup/vis.d.mts.map +1 -0
- package/dist/setup/vis.mjs +12 -0
- package/dist/setup/vis.mjs.map +1 -0
- package/dist/setup-api.d.mts +4 -0
- package/dist/setup-api.mjs +5 -0
- package/dist/setup.d.mts +8 -105
- package/dist/setup.d.mts.map +1 -1
- package/dist/setup.mjs +12 -7
- package/dist/setup.mjs.map +1 -0
- package/dist/{asserts--HSSlgPD.mjs → shared/asserts.mjs} +2 -2
- package/dist/shared/asserts.mjs.map +1 -0
- package/dist/{base64-CHSENEAO.mjs → shared/base64.mjs} +2 -2
- package/dist/shared/base64.mjs.map +1 -0
- package/dist/shared/commands.types.d.mts +51 -0
- package/dist/shared/commands.types.d.mts.map +1 -0
- package/dist/shared/compare_image.mjs +46 -0
- package/dist/shared/compare_image.mjs.map +1 -0
- package/dist/shared/constants.d.mts +9 -0
- package/dist/shared/constants.d.mts.map +1 -0
- package/dist/{constants-CTBaz8Ml.mjs → shared/constants.mjs} +2 -2
- package/dist/shared/constants.mjs.map +1 -0
- package/dist/shared/convert_threshold_unit.mjs +12 -0
- package/dist/shared/convert_threshold_unit.mjs.map +1 -0
- package/dist/shared/get_max_size.mjs +11 -0
- package/dist/shared/get_max_size.mjs.map +1 -0
- package/dist/shared/is_same_size.mjs +8 -0
- package/dist/shared/is_same_size.mjs.map +1 -0
- package/dist/{trim_common_folder-ModiubEJ.d.mts → shared/trim_common_folder.d.mts} +2 -2
- package/dist/shared/trim_common_folder.d.mts.map +1 -0
- package/dist/shared/trim_common_folder.mjs +23 -0
- package/dist/shared/trim_common_folder.mjs.map +1 -0
- package/dist/{types-DFb23VE1.d.mts → shared/types.d.mts} +39 -20
- package/dist/shared/types.d.mts.map +1 -0
- package/dist/testing/constants.d.mts +12 -0
- package/dist/testing/constants.d.mts.map +1 -0
- package/dist/testing/constants.mjs +65550 -0
- package/dist/{testing.mjs.map → testing/constants.mjs.map} +1 -1
- package/dist/testing.d.mts +2 -12
- package/dist/testing.mjs +2 -65549
- package/package.json +24 -17
- package/readme.md +48 -3
- package/src/{client/ctx.ts → auto_snapshots/_ctx.ts} +1 -3
- package/src/auto_snapshots/_extract_auto_snapshot_options.ts +26 -0
- package/src/{client → auto_snapshots}/auto_snapshot_options.mdx +1 -2
- package/src/{client → auto_snapshots}/auto_snapshot_options.ts +1 -23
- package/src/client/actions/has_image_snapshot_action.ts +1 -1
- package/src/client/actions/load_image_snapshot_results_action.ts +1 -1
- package/src/client/actions/match_image_snapshot_action.ts +6 -6
- package/src/client/actions/match_page_image_snapshot_action.ts +5 -3
- package/src/client/expect/_ctx.ts +10 -0
- package/src/client/expect/to_match_image_snapshot.ts +3 -4
- package/src/client/external/browser/has_render_content.ts +3 -0
- package/src/client/{image_resizer.ts → external/browser/image_resizer.ts} +1 -1
- package/src/client/{vitest_suite_proxy.ts → external/vitest/vitest_suite_proxy.ts} +1 -1
- package/src/client/{align_images.ts → image/align_images.ts} +3 -3
- package/src/client/page/_ctx.ts +12 -0
- package/src/client/page/has_image_snapshot.ts +4 -4
- package/src/client/page/to_match_image_snapshot.ts +3 -4
- package/src/client/{compare_image_snapshot.logic.ts → snapshot/compare_image_snapshot.logic.ts} +2 -2
- package/src/client/{compare_image_snapshot.ts → snapshot/compare_image_snapshot.ts} +23 -10
- package/src/client/snapshot/should_take_snapshot.ts +6 -0
- package/src/client/suite/_ctx.ts +8 -0
- package/src/client/suite/auto_snapshot_matcher.ts +67 -0
- package/src/client-api.ts +3 -2
- package/src/config/overview.mdx +145 -0
- package/src/{shared → config}/trim_common_folder.mdx +1 -1
- package/src/config/types.ts +5 -6
- package/src/config/vis.mdx +313 -0
- package/src/index.ts +1 -1
- package/src/overview.mdx +66 -28
- package/src/server/commands/augment.ts +8 -6
- package/src/server/commands/has_image_snapshot.ts +1 -4
- package/src/server/commands/image_snapshot_next_index.ts +1 -7
- package/src/server/commands/load_image_snapshot_results.ts +1 -20
- package/src/server/commands/prepare_image_snapshot_comparison.ts +10 -56
- package/src/server/commands/prepare_page_image_snapshot_comparison.ts +2 -49
- package/src/server/commands/setup_vis_suite.ts +0 -24
- package/src/server/snapshot_path.ts +3 -1
- package/src/server/vis_server_context.logic.ts +1 -1
- package/src/{setup.create_vis.mdx → setup/create_vis.mdx} +4 -5
- package/src/{client/setup → setup}/create_vis.ts +31 -83
- package/src/setup/overview.mdx +17 -0
- package/src/setup/readme.md +7 -0
- package/src/{setup.vis.mdx → setup/vis.mdx} +15 -18
- package/src/setup-api.ts +5 -0
- package/src/setup.ts +9 -5
- package/src/shared/commands.types.ts +71 -0
- package/src/shared/types.ts +54 -1
- package/dist/asserts--HSSlgPD.mjs.map +0 -1
- package/dist/augment-BJmy1S7i.d.mts +0 -31
- package/dist/augment-BJmy1S7i.d.mts.map +0 -1
- package/dist/auto_snapshot_options-CAD43Zkp.mjs.map +0 -1
- package/dist/auto_snapshot_options-CaQCXDdi.d.mts.map +0 -1
- package/dist/base64-CHSENEAO.mjs.map +0 -1
- package/dist/client-api.d.mts.map +0 -1
- package/dist/client-api.mjs.map +0 -1
- package/dist/config.d.mts.map +0 -1
- package/dist/config.mjs.map +0 -1
- package/dist/constants-CTBaz8Ml.mjs.map +0 -1
- package/dist/server-utils.d.mts.map +0 -1
- package/dist/setup-BWgIDtv-.mjs +0 -141
- package/dist/setup-BWgIDtv-.mjs.map +0 -1
- package/dist/setup_vis_suite-C6JGGT7B.d.mts +0 -17
- package/dist/setup_vis_suite-C6JGGT7B.d.mts.map +0 -1
- package/dist/snapshot_path-7GliOSH_.mjs.map +0 -1
- package/dist/src-CSQnlFa9.mjs +0 -1
- package/dist/task_id-DnS9_4Ub.mjs +0 -316
- package/dist/task_id-DnS9_4Ub.mjs.map +0 -1
- package/dist/testing.d.mts.map +0 -1
- package/dist/to_match_image_snapshot.types-p-zilA_M.d.mts.map +0 -1
- package/dist/trim_common_folder-ModiubEJ.d.mts.map +0 -1
- package/dist/types-DFb23VE1.d.mts.map +0 -1
- package/dist/types-Do1N7g4c.d.mts.map +0 -1
- package/dist/vis_server_context.types-Ce1f9vOO.d.mts +0 -1
- package/src/client/image_snapshot_options.ts +0 -6
- package/src/client/setup/vis.ctx.ts +0 -34
- package/src/client/should_take_snapshot.ts +0 -5
- package/src/config.vis.mdx +0 -76
- package/src/server/commands/types.ts +0 -9
- /package/src/{client → auto_snapshots}/snapshot_meta.ts +0 -0
- /package/src/client/{image_data.ts → external/browser/image_data.ts} +0 -0
- /package/src/client/{selector.ts → external/browser/selector.ts} +0 -0
- /package/src/client/{vitest_browser_context_proxy.ts → external/vitest/vitest_browser_context_proxy.ts} +0 -0
- /package/src/client/{task_id.ts → task/task_id.ts} +0 -0
- /package/src/{client/setup → setup}/vis.ts +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/client/external/vitest/vitest_suite_proxy.ts
|
|
2
|
+
let vitestSuite;
|
|
3
|
+
if (globalThis.__vitest_browser__) import("vitest/suite").then((m) => {
|
|
4
|
+
vitestSuite = m;
|
|
5
|
+
});
|
|
6
|
+
const getCurrentTest = () => vitestSuite?.getCurrentTest();
|
|
7
|
+
const getCurrentSuite = () => vitestSuite?.getCurrentSuite();
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { getCurrentSuite, getCurrentTest };
|
|
11
|
+
//# sourceMappingURL=vitest_suite_proxy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest_suite_proxy.mjs","names":[],"sources":["../../../../src/client/external/vitest/vitest_suite_proxy.ts"],"sourcesContent":["import type { SnapshotTestMeta } from '../../../shared/types.ts'\n\nlet vitestSuite: Awaited<typeof import('vitest/suite')>\n\nif ((globalThis as any).__vitest_browser__) {\n\timport('vitest/suite').then((m) => {\n\t\tvitestSuite = m\n\t})\n}\n\nexport type CurrentTest = ReturnType<typeof vitestSuite.getCurrentTest> & SnapshotTestMeta\n\nexport const getCurrentTest = () => vitestSuite?.getCurrentTest() as CurrentTest\nexport const getCurrentSuite = () => vitestSuite?.getCurrentSuite()\n"],"mappings":";AAEA,IAAI;AAEJ,IAAK,WAAmB,mBACvB,QAAO,gBAAgB,MAAM,MAAM;AAClC,eAAc;EACb;AAKH,MAAa,uBAAuB,aAAa,gBAAgB;AACjE,MAAa,wBAAwB,aAAa,iBAAiB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { getMaxSize } from "../../shared/get_max_size.mjs";
|
|
2
|
+
import { isSameSize } from "../../shared/is_same_size.mjs";
|
|
3
|
+
import { createImageResizer } from "../external/browser/image_resizer.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/client/image/align_images.ts
|
|
6
|
+
function alignImagesToSameSize(image1, image2) {
|
|
7
|
+
if (isSameSize(image1, image2)) return [image1, image2];
|
|
8
|
+
const resize = createImageResizer(getMaxSize(image1, image2));
|
|
9
|
+
return [resize(image1), resize(image2)];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { alignImagesToSameSize };
|
|
14
|
+
//# sourceMappingURL=align_images.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align_images.mjs","names":[],"sources":["../../../src/client/image/align_images.ts"],"sourcesContent":["import { getMaxSize } from '../../shared/get_max_size.ts'\nimport { isSameSize } from '../../shared/is_same_size.ts'\nimport { createImageResizer } from '../external/browser/image_resizer.ts'\n\nexport function alignImagesToSameSize(image1: ImageData, image2: ImageData): [image1: ImageData, image2: ImageData] {\n\tif (isSameSize(image1, image2)) return [image1, image2] as const\n\n\tconst size = getMaxSize(image1, image2)\n\tconst resize = createImageResizer(size)\n\treturn [resize(image1), resize(image2)] as const\n}\n"],"mappings":";;;;;AAIA,SAAgB,sBAAsB,QAAmB,QAA2D;AACnH,KAAI,WAAW,QAAQ,OAAO,CAAE,QAAO,CAAC,QAAQ,OAAO;CAGvD,MAAM,SAAS,mBADF,WAAW,QAAQ,OAAO,CACA;AACvC,QAAO,CAAC,OAAO,OAAO,EAAE,OAAO,OAAO,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getCurrentTest } from "../external/vitest/vitest_suite_proxy.mjs";
|
|
2
|
+
import { commands } from "vitest/browser";
|
|
3
|
+
|
|
4
|
+
//#region src/client/page/_ctx.ts
|
|
5
|
+
const ctx = {
|
|
6
|
+
commands,
|
|
7
|
+
getCurrentTest,
|
|
8
|
+
__test__reset() {
|
|
9
|
+
ctx.getCurrentTest = getCurrentTest;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { ctx };
|
|
15
|
+
//# sourceMappingURL=_ctx.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_ctx.mjs","names":[],"sources":["../../../src/client/page/_ctx.ts"],"sourcesContent":["import { type BrowserPage, commands } from 'vitest/browser'\nimport { getCurrentTest } from '../external/vitest/vitest_suite_proxy.ts'\n\nexport type { BrowserPage }\n\nexport const ctx = {\n\tcommands,\n\tgetCurrentTest,\n\t__test__reset() {\n\t\tctx.getCurrentTest = getCurrentTest\n\t},\n}\n"],"mappings":";;;;AAKA,MAAa,MAAM;CAClB;CACA;CACA,gBAAgB;AACf,MAAI,iBAAiB;;CAEtB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HasImageSnapshotAction } from "./has_image_snapshot.mjs";
|
|
2
|
+
import { ToMatchImageSnapshotAction } from "./to_match_image_snapshot.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/client/page/augment.d.ts
|
|
5
|
+
declare module '@vitest/browser/context' {
|
|
6
|
+
interface BrowserPage extends HasImageSnapshotAction, ToMatchImageSnapshotAction {}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=augment.d.ts.map
|
|
9
|
+
//# sourceMappingURL=augment.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augment.d.mts","names":[],"sources":["../../../src/client/page/augment.ts"],"sourcesContent":[],"mappings":";;;;;gCAI+B,wBAAwB,4BAHuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./augment.mjs";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { hasImageSnapshot } from "./has_image_snapshot.mjs";
|
|
2
|
+
import { toMatchImageSnapshot } from "./to_match_image_snapshot.mjs";
|
|
3
|
+
import { page } from "vitest/browser";
|
|
4
|
+
|
|
5
|
+
//#region src/client/page/extend.ts
|
|
6
|
+
page.extend({
|
|
7
|
+
hasImageSnapshot,
|
|
8
|
+
toMatchImageSnapshot
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { };
|
|
13
|
+
//# sourceMappingURL=extend.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend.mjs","names":[],"sources":["../../../src/client/page/extend.ts"],"sourcesContent":["import { page } from 'vitest/browser'\nimport './augment.ts'\nimport { hasImageSnapshot } from './has_image_snapshot.ts'\nimport { toMatchImageSnapshot } from './to_match_image_snapshot.ts'\n\npage.extend({ hasImageSnapshot, toMatchImageSnapshot })\n"],"mappings":";;;;;AAKA,KAAK,OAAO;CAAE;CAAkB;CAAsB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ImageSnapshotKeyOptions } from "../../shared/types.mjs";
|
|
2
|
+
import { BrowserPage } from "./_ctx.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/client/page/has_image_snapshot.d.ts
|
|
5
|
+
interface HasImageSnapshotAction {
|
|
6
|
+
/**
|
|
7
|
+
* Check if the snapshot image exists.
|
|
8
|
+
*/
|
|
9
|
+
hasImageSnapshot(this: BrowserPage, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { HasImageSnapshotAction };
|
|
13
|
+
//# sourceMappingURL=has_image_snapshot.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has_image_snapshot.d.mts","names":[],"sources":["../../../src/client/page/has_image_snapshot.ts"],"sourcesContent":[],"mappings":";;;;UAMiB,sBAAA;;AAAjB;;EAI+C,gBAAA,CAAA,IAAA,EAAvB,WAAuB,EAAA,OAAA,CAAA,EAAA,uBAAA,GAAA,SAAA,CAAA,EAAsC,OAAtC,CAAA,OAAA,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { hasImageSnapshotAction } from "../actions/has_image_snapshot_action.mjs";
|
|
2
|
+
import { toTaskId } from "../task/task_id.mjs";
|
|
3
|
+
import { ctx } from "./_ctx.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/client/page/has_image_snapshot.ts
|
|
6
|
+
function hasImageSnapshot(options) {
|
|
7
|
+
const test = ctx.getCurrentTest();
|
|
8
|
+
if (!test) throw new Error("`hasImageSnapshot()` must be called in a test.");
|
|
9
|
+
if (test.concurrent) throw new Error("`hasImageSnapshot()` cannot be called in a concurrent test because concurrent tests run at the same time in the same iframe and affect each other's environment. ");
|
|
10
|
+
return hasImageSnapshotAction(ctx.commands, toTaskId(test), options);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { hasImageSnapshot };
|
|
15
|
+
//# sourceMappingURL=has_image_snapshot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has_image_snapshot.mjs","names":[],"sources":["../../../src/client/page/has_image_snapshot.ts"],"sourcesContent":["import type { ImageSnapshotKeyOptions } from '../../shared/types.ts'\nimport { hasImageSnapshotAction } from '../actions/has_image_snapshot_action.ts'\nimport { toTaskId } from '../task/task_id.ts'\nimport type { BrowserPage } from './_ctx.ts'\nimport { ctx } from './_ctx.ts'\n\nexport interface HasImageSnapshotAction {\n\t/**\n\t * Check if the snapshot image exists.\n\t */\n\thasImageSnapshot(this: BrowserPage, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>\n}\n\nexport function hasImageSnapshot(this: BrowserPage, options?: ImageSnapshotKeyOptions | undefined) {\n\tconst test = ctx.getCurrentTest()\n\tif (!test) {\n\t\tthrow new Error('`hasImageSnapshot()` must be called in a test.')\n\t}\n\n\tif (test.concurrent) {\n\t\tthrow new Error(\n\t\t\t'`hasImageSnapshot()` cannot be called in a concurrent test because ' +\n\t\t\t\t\"concurrent tests run at the same time in the same iframe and affect each other's environment. \",\n\t\t)\n\t}\n\treturn hasImageSnapshotAction(ctx.commands, toTaskId(test), options)\n}\n"],"mappings":";;;;;AAaA,SAAgB,iBAAoC,SAA+C;CAClG,MAAM,OAAO,IAAI,gBAAgB;AACjC,KAAI,CAAC,KACJ,OAAM,IAAI,MAAM,iDAAiD;AAGlE,KAAI,KAAK,WACR,OAAM,IAAI,MACT,oKAEA;AAEF,QAAO,uBAAuB,IAAI,UAAU,SAAS,KAAK,EAAE,QAAQ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ComparisonMethod, ToMatchPageImageSnapshotOptions } from "../../shared/types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client/page/to_match_image_snapshot.d.ts
|
|
4
|
+
interface ToMatchImageSnapshotAction {
|
|
5
|
+
toMatchImageSnapshot<M extends ComparisonMethod = 'pixel'>(options?: ToMatchPageImageSnapshotOptions<M> | undefined): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { ToMatchImageSnapshotAction };
|
|
9
|
+
//# sourceMappingURL=to_match_image_snapshot.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_match_image_snapshot.d.mts","names":[],"sources":["../../../src/client/page/to_match_image_snapshot.ts"],"sourcesContent":[],"mappings":";;;UAKiB,0BAAA;iCACe,sCACpB,gCAAgC,iBACxC;AAHJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { matchPageImageSnapshotAction } from "../actions/match_page_image_snapshot_action.mjs";
|
|
2
|
+
import { toTaskId } from "../task/task_id.mjs";
|
|
3
|
+
import { ctx } from "./_ctx.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/client/page/to_match_image_snapshot.ts
|
|
6
|
+
function toMatchImageSnapshot(options) {
|
|
7
|
+
const test = ctx.getCurrentTest();
|
|
8
|
+
if (!test) throw new Error("`toMatchImageSnapshot()` must be called in a test.");
|
|
9
|
+
if (test.concurrent) throw new Error("`toMatchImageSnapshot()` cannot be called in a concurrent test because concurrent tests run at the same time in the same iframe and affect each other's environment.");
|
|
10
|
+
return matchPageImageSnapshotAction(ctx.commands, toTaskId(test), options);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { toMatchImageSnapshot };
|
|
15
|
+
//# sourceMappingURL=to_match_image_snapshot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_match_image_snapshot.mjs","names":[],"sources":["../../../src/client/page/to_match_image_snapshot.ts"],"sourcesContent":["import type { ComparisonMethod, ToMatchPageImageSnapshotOptions } from '../../shared/types.ts'\nimport { matchPageImageSnapshotAction } from '../actions/match_page_image_snapshot_action.ts'\nimport { toTaskId } from '../task/task_id.ts'\nimport { ctx } from './_ctx.ts'\n\nexport interface ToMatchImageSnapshotAction {\n\ttoMatchImageSnapshot<M extends ComparisonMethod = 'pixel'>(\n\t\toptions?: ToMatchPageImageSnapshotOptions<M> | undefined,\n\t): Promise<void>\n}\n\nexport function toMatchImageSnapshot<M extends ComparisonMethod = 'pixel'>(\n\toptions?: ToMatchPageImageSnapshotOptions<M> | undefined,\n) {\n\tconst test = ctx.getCurrentTest()\n\tif (!test) {\n\t\tthrow new Error('`toMatchImageSnapshot()` must be called in a test.')\n\t}\n\n\tif (test.concurrent) {\n\t\tthrow new Error(\n\t\t\t'`toMatchImageSnapshot()` cannot be called in a concurrent test because ' +\n\t\t\t\t\"concurrent tests run at the same time in the same iframe and affect each other's environment.\",\n\t\t)\n\t}\n\n\treturn matchPageImageSnapshotAction(ctx.commands, toTaskId(test), options)\n}\n"],"mappings":";;;;;AAWA,SAAgB,qBACf,SACC;CACD,MAAM,OAAO,IAAI,gBAAgB;AACjC,KAAI,CAAC,KACJ,OAAM,IAAI,MAAM,qDAAqD;AAGtE,KAAI,KAAK,WACR,OAAM,IAAI,MACT,uKAEA;AAGF,QAAO,6BAA6B,IAAI,UAAU,SAAS,KAAK,EAAE,QAAQ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/client/snapshot/compare_image_snapshot.logic.ts
|
|
2
|
+
function prettifyOptions(options) {
|
|
3
|
+
if (!options) return "none";
|
|
4
|
+
return [
|
|
5
|
+
`failureThreshold: ${options.failureThreshold ?? 0} ${options.failureThresholdType ?? "pixels"}`,
|
|
6
|
+
options.timeout ? `timeout: ${options.timeout} ms` : "",
|
|
7
|
+
`comparisonMethod: ${options.comparisonMethod ?? "pixel"}`,
|
|
8
|
+
options.diffOptions ? `diffOptions: ${JSON.stringify(options.diffOptions)}` : ""
|
|
9
|
+
].filter(Boolean).join("\n ");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { prettifyOptions };
|
|
14
|
+
//# sourceMappingURL=compare_image_snapshot.logic.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare_image_snapshot.logic.mjs","names":[],"sources":["../../../src/client/snapshot/compare_image_snapshot.logic.ts"],"sourcesContent":["import type { ToMatchImageSnapshotOptions } from '../../shared/types.ts'\n\nexport function prettifyOptions(options: ToMatchImageSnapshotOptions<any> | undefined) {\n\tif (!options) return 'none'\n\n\treturn [\n\t\t`failureThreshold: ${options.failureThreshold ?? 0} ${options.failureThresholdType ?? 'pixels'}`,\n\t\toptions.timeout ? `timeout: ${options.timeout} ms` : '',\n\t\t`comparisonMethod: ${options.comparisonMethod ?? 'pixel'}`,\n\t\toptions.diffOptions ? `diffOptions: ${JSON.stringify(options.diffOptions)}` : '',\n\t]\n\t\t.filter(Boolean)\n\t\t.join('\\n ')\n}\n"],"mappings":";AAEA,SAAgB,gBAAgB,SAAuD;AACtF,KAAI,CAAC,QAAS,QAAO;AAErB,QAAO;EACN,qBAAqB,QAAQ,oBAAoB,EAAE,GAAG,QAAQ,wBAAwB;EACtF,QAAQ,UAAU,YAAY,QAAQ,QAAQ,OAAO;EACrD,qBAAqB,QAAQ,oBAAoB;EACjD,QAAQ,cAAc,gBAAgB,KAAK,UAAU,QAAQ,YAAY,KAAK;EAC9E,CACC,OAAO,QAAQ,CACf,KAAK,qBAAqB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { compareImage } from "../../shared/compare_image.mjs";
|
|
2
|
+
import { toDataURL, toImageData } from "../external/browser/image_data.mjs";
|
|
3
|
+
import { server } from "../external/vitest/vitest_browser_context_proxy.mjs";
|
|
4
|
+
import { alignImagesToSameSize } from "../image/align_images.mjs";
|
|
5
|
+
import { prettifyOptions } from "./compare_image_snapshot.logic.mjs";
|
|
6
|
+
import { resolve } from "pathe";
|
|
7
|
+
import dedent from "dedent";
|
|
8
|
+
|
|
9
|
+
//#region src/client/snapshot/compare_image_snapshot.ts
|
|
10
|
+
async function compareImageSnapshot(commands, taskId, info, options) {
|
|
11
|
+
options = {
|
|
12
|
+
...info,
|
|
13
|
+
...options
|
|
14
|
+
};
|
|
15
|
+
const resultImage = await toImageData(info.result);
|
|
16
|
+
if (!info.baseline) {
|
|
17
|
+
if (server.config.snapshotOptions.updateSnapshot === "all") {
|
|
18
|
+
await writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
throw new Error(dedent`Snapshot \`${taskId}\` has no baseline image. Please review the new snapshot and update the baseline image.
|
|
22
|
+
|
|
23
|
+
Options: ${prettifyOptions(options)}
|
|
24
|
+
Actual: ${resolve(info.projectRoot, info.resultPath)}`);
|
|
25
|
+
}
|
|
26
|
+
const baselineImage = await toImageData(info.baseline);
|
|
27
|
+
const [baselineAlignedImage, resultAlignedImage] = alignImagesToSameSize(baselineImage, resultImage);
|
|
28
|
+
const { width, height } = baselineAlignedImage;
|
|
29
|
+
const diffImage = new ImageData(width, height);
|
|
30
|
+
const { pass, diffAmount } = compareImage(baselineAlignedImage.data, resultAlignedImage.data, diffImage.data, width, height, options);
|
|
31
|
+
if (pass) {
|
|
32
|
+
if (options?.expectToFail) throw new Error(dedent`Snapshot \`${taskId}\` matched but expected to fail.
|
|
33
|
+
|
|
34
|
+
Options: ${prettifyOptions(options)}
|
|
35
|
+
Diff: ${options.failureThresholdType === "percent" ? `${diffAmount}%` : `${diffAmount} pixels`}
|
|
36
|
+
|
|
37
|
+
Expected: ${resolve(info.projectRoot, info.baselinePath)}
|
|
38
|
+
Actual: ${resolve(info.projectRoot, info.resultPath)}`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (server.config.snapshotOptions.updateSnapshot === "all" && !options?.expectToFail) {
|
|
42
|
+
await writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
await writeSnapshot(commands, resolve(info.projectRoot, info.diffPath), diffImage);
|
|
46
|
+
throw new Error(dedent`Snapshot \`${taskId}\` mismatched
|
|
47
|
+
|
|
48
|
+
${options?.failureThreshold ? options?.failureThresholdType === "percent" ? `Expected image to match within ${options.failureThreshold}% but was differ by ${diffAmount}%.` : `Expected image to match within ${options.failureThreshold} pixels but was differ by ${diffAmount} pixels.` : `Expected image to match but was differ by ${options?.failureThresholdType === "percent" ? `${diffAmount}%` : `${diffAmount} pixels`}.`}${baselineImage.width !== resultImage.width || baselineImage.height !== resultImage.height ? `\nThe image size changed from ${baselineImage.width}x${baselineImage.height} to ${resultImage.width}x${resultImage.height}.` : ""}
|
|
49
|
+
|
|
50
|
+
Options: ${prettifyOptions(options)}
|
|
51
|
+
|
|
52
|
+
Expected: ${resolve(info.projectRoot, info.baselinePath)}
|
|
53
|
+
Actual: ${resolve(info.projectRoot, info.resultPath)}
|
|
54
|
+
Difference: ${resolve(info.projectRoot, info.diffPath)}`);
|
|
55
|
+
}
|
|
56
|
+
async function writeSnapshot(commands, path, image) {
|
|
57
|
+
const content = (await toDataURL(image)).split(",")[1];
|
|
58
|
+
return commands.writeFile(path, content, { encoding: "base64" });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//#endregion
|
|
62
|
+
export { compareImageSnapshot };
|
|
63
|
+
//# sourceMappingURL=compare_image_snapshot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare_image_snapshot.mjs","names":[],"sources":["../../../src/client/snapshot/compare_image_snapshot.ts"],"sourcesContent":["import dedent from 'dedent'\nimport { resolve } from 'pathe'\nimport type { BrowserCommands } from 'vitest/browser'\nimport type {\n\tImageSnapshotNextIndexCommand,\n\tPrepareImageSnapshotComparisonCommand,\n} from '../../shared/commands.types.ts'\nimport { compareImage } from '../../shared/compare_image.ts'\nimport type { ImageSnapshotComparisonInfo, ToMatchImageSnapshotOptions } from '../../shared/types.ts'\nimport { toDataURL, toImageData } from '../external/browser/image_data.ts'\nimport { server } from '../external/vitest/vitest_browser_context_proxy.ts'\nimport { alignImagesToSameSize } from '../image/align_images.ts'\nimport { prettifyOptions } from './compare_image_snapshot.logic.ts'\n\nexport async function compareImageSnapshot(\n\tcommands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand,\n\ttaskId: string,\n\tinfo: ImageSnapshotComparisonInfo,\n\toptions?: ToMatchImageSnapshotOptions<any>,\n) {\n\toptions = { ...info, ...options } as any\n\n\tconst resultImage = await toImageData(info.result)\n\n\tif (!info.baseline) {\n\t\tif (server.config.snapshotOptions.updateSnapshot === 'all') {\n\t\t\tawait writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage)\n\t\t\treturn\n\t\t}\n\t\tthrow new Error(\n\t\t\tdedent`Snapshot \\`${taskId}\\` has no baseline image. Please review the new snapshot and update the baseline image.\n\n\t\t\t\tOptions: ${prettifyOptions(options)}\n\t\t\t\tActual: ${resolve(info.projectRoot, info.resultPath)}`,\n\t\t)\n\t}\n\n\tconst baselineImage = await toImageData(info.baseline)\n\tconst [baselineAlignedImage, resultAlignedImage] = alignImagesToSameSize(baselineImage, resultImage)\n\tconst { width, height } = baselineAlignedImage\n\tconst diffImage = new ImageData(width, height)\n\tconst { pass, diffAmount } = compareImage(\n\t\tbaselineAlignedImage.data,\n\t\tresultAlignedImage.data,\n\t\tdiffImage.data,\n\t\twidth,\n\t\theight,\n\t\toptions,\n\t)\n\tif (pass) {\n\t\tif (options?.expectToFail) {\n\t\t\tthrow new Error(\n\t\t\t\tdedent`Snapshot \\`${taskId}\\` matched but expected to fail.\n\n\t\t\t\t\t\t\tOptions: ${prettifyOptions(options)}\n\t\t\t\t\t\t\tDiff: ${options.failureThresholdType === 'percent' ? `${diffAmount}%` : `${diffAmount} pixels`}\n\n\t\t\t\t\t\t\tExpected: ${resolve(info.projectRoot, info.baselinePath)}\n\t\t\t\t\t\t\tActual: ${resolve(info.projectRoot, info.resultPath)}`,\n\t\t\t)\n\t\t}\n\t\treturn\n\t}\n\tif (server.config.snapshotOptions.updateSnapshot === 'all' && !options?.expectToFail) {\n\t\tawait writeSnapshot(commands, resolve(info.projectRoot, info.baselinePath), resultImage)\n\t\treturn\n\t}\n\n\tawait writeSnapshot(commands, resolve(info.projectRoot, info.diffPath), diffImage)\n\n\tthrow new Error(\n\t\tdedent`Snapshot \\`${taskId}\\` mismatched\n\n\t\t\t\t\t${\n\t\t\t\t\t\toptions?.failureThreshold\n\t\t\t\t\t\t\t? options?.failureThresholdType === 'percent'\n\t\t\t\t\t\t\t\t? `Expected image to match within ${options.failureThreshold}% but was differ by ${diffAmount}%.`\n\t\t\t\t\t\t\t\t: `Expected image to match within ${options.failureThreshold} pixels but was differ by ${diffAmount} pixels.`\n\t\t\t\t\t\t\t: `Expected image to match but was differ by ${options?.failureThresholdType === 'percent' ? `${diffAmount}%` : `${diffAmount} pixels`}.`\n\t\t\t\t\t}${\n\t\t\t\t\t\tbaselineImage.width !== resultImage.width || baselineImage.height !== resultImage.height\n\t\t\t\t\t\t\t? `\\nThe image size changed from ${baselineImage.width}x${baselineImage.height} to ${resultImage.width}x${resultImage.height}.`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\n\t\t\t\t\tOptions: ${prettifyOptions(options)}\n\n\t\t\t\t\tExpected: ${resolve(info.projectRoot, info.baselinePath)}\n\t\t\t\t\tActual: ${resolve(info.projectRoot, info.resultPath)}\n\t\t\t\t\tDifference: ${resolve(info.projectRoot, info.diffPath)}`,\n\t)\n}\n\nasync function writeSnapshot(commands: BrowserCommands, path: string, image: ImageData) {\n\tconst content = (await toDataURL(image)).split(',')[1]!\n\treturn commands.writeFile(path, content, { encoding: 'base64' })\n}\n"],"mappings":";;;;;;;;;AAcA,eAAsB,qBACrB,UACA,QACA,MACA,SACC;AACD,WAAU;EAAE,GAAG;EAAM,GAAG;EAAS;CAEjC,MAAM,cAAc,MAAM,YAAY,KAAK,OAAO;AAElD,KAAI,CAAC,KAAK,UAAU;AACnB,MAAI,OAAO,OAAO,gBAAgB,mBAAmB,OAAO;AAC3D,SAAM,cAAc,UAAU,QAAQ,KAAK,aAAa,KAAK,aAAa,EAAE,YAAY;AACxF;;AAED,QAAM,IAAI,MACT,MAAM,cAAc,OAAO;;kBAEZ,gBAAgB,QAAQ,CAAC;kBACzB,QAAQ,KAAK,aAAa,KAAK,WAAW,GACzD;;CAGF,MAAM,gBAAgB,MAAM,YAAY,KAAK,SAAS;CACtD,MAAM,CAAC,sBAAsB,sBAAsB,sBAAsB,eAAe,YAAY;CACpG,MAAM,EAAE,OAAO,WAAW;CAC1B,MAAM,YAAY,IAAI,UAAU,OAAO,OAAO;CAC9C,MAAM,EAAE,MAAM,eAAe,aAC5B,qBAAqB,MACrB,mBAAmB,MACnB,UAAU,MACV,OACA,QACA,QACA;AACD,KAAI,MAAM;AACT,MAAI,SAAS,aACZ,OAAM,IAAI,MACT,MAAM,cAAc,OAAO;;qBAEV,gBAAgB,QAAQ,CAAC;qBACzB,QAAQ,yBAAyB,YAAY,GAAG,WAAW,KAAK,GAAG,WAAW,SAAS;;qBAEvF,QAAQ,KAAK,aAAa,KAAK,aAAa,CAAC;qBAC7C,QAAQ,KAAK,aAAa,KAAK,WAAW,GAC3D;AAEF;;AAED,KAAI,OAAO,OAAO,gBAAgB,mBAAmB,SAAS,CAAC,SAAS,cAAc;AACrF,QAAM,cAAc,UAAU,QAAQ,KAAK,aAAa,KAAK,aAAa,EAAE,YAAY;AACxF;;AAGD,OAAM,cAAc,UAAU,QAAQ,KAAK,aAAa,KAAK,SAAS,EAAE,UAAU;AAElF,OAAM,IAAI,MACT,MAAM,cAAc,OAAO;;OAGvB,SAAS,mBACN,SAAS,yBAAyB,YACjC,kCAAkC,QAAQ,iBAAiB,sBAAsB,WAAW,MAC5F,kCAAkC,QAAQ,iBAAiB,4BAA4B,WAAW,YACnG,6CAA6C,SAAS,yBAAyB,YAAY,GAAG,WAAW,KAAK,GAAG,WAAW,SAAS,KAExI,cAAc,UAAU,YAAY,SAAS,cAAc,WAAW,YAAY,SAC/E,iCAAiC,cAAc,MAAM,GAAG,cAAc,OAAO,MAAM,YAAY,MAAM,GAAG,YAAY,OAAO,KAC3H,GACH;;mBAEa,gBAAgB,QAAQ,CAAC;;mBAEzB,QAAQ,KAAK,aAAa,KAAK,aAAa,CAAC;mBAC7C,QAAQ,KAAK,aAAa,KAAK,WAAW,CAAC;mBAC3C,QAAQ,KAAK,aAAa,KAAK,SAAS,GACzD;;AAGF,eAAe,cAAc,UAA2B,MAAc,OAAkB;CACvF,MAAM,WAAW,MAAM,UAAU,MAAM,EAAE,MAAM,IAAI,CAAC;AACpD,QAAO,SAAS,UAAU,MAAM,SAAS,EAAE,UAAU,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { hasRenderContent } from "../external/browser/has_render_content.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client/snapshot/should_take_snapshot.ts
|
|
4
|
+
function shouldTakeSnapshot(meta) {
|
|
5
|
+
return hasRenderContent() && meta?.enable;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { shouldTakeSnapshot };
|
|
10
|
+
//# sourceMappingURL=should_take_snapshot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"should_take_snapshot.mjs","names":[],"sources":["../../../src/client/snapshot/should_take_snapshot.ts"],"sourcesContent":["import type { SnapshotMeta } from '../../auto_snapshots/snapshot_meta.ts'\nimport { hasRenderContent } from '../external/browser/has_render_content.ts'\n\nexport function shouldTakeSnapshot(meta: SnapshotMeta<any> | undefined) {\n\treturn hasRenderContent() && meta?.enable\n}\n"],"mappings":";;;AAGA,SAAgB,mBAAmB,MAAqC;AACvE,QAAO,kBAAkB,IAAI,MAAM"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getCurrentTest } from "../external/vitest/vitest_suite_proxy.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client/suite/_ctx.ts
|
|
4
|
+
const ctx = {
|
|
5
|
+
getCurrentTest,
|
|
6
|
+
__test__reset() {
|
|
7
|
+
ctx.getCurrentTest = getCurrentTest;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { ctx };
|
|
13
|
+
//# sourceMappingURL=_ctx.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_ctx.mjs","names":[],"sources":["../../../src/client/suite/_ctx.ts"],"sourcesContent":["import { getCurrentTest } from '../external/vitest/vitest_suite_proxy.ts'\n\nexport const ctx = {\n\tgetCurrentTest,\n\t__test__reset() {\n\t\tctx.getCurrentTest = getCurrentTest\n\t},\n}\n"],"mappings":";;;AAEA,MAAa,MAAM;CAClB;CACA,gBAAgB;AACf,MAAI,iBAAiB;;CAEtB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SnapshotMeta } from "../../auto_snapshots/snapshot_meta.mjs";
|
|
2
|
+
import { ComparisonMethod } from "../../shared/types.mjs";
|
|
3
|
+
import { SetupVisSuiteCommand } from "../../shared/commands.types.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/client/suite/auto_snapshot_matcher.d.ts
|
|
6
|
+
declare function autoSnapshotMatcher<GM extends Record<string, any> | unknown = unknown>(commands: SetupVisSuiteCommand, expect: any): {
|
|
7
|
+
setup(): Promise<void>;
|
|
8
|
+
createMatcher<C extends ComparisonMethod, M extends Record<string, any> | unknown = unknown>(themes: Record<string, boolean | ((options: SnapshotMeta<C> & M & GM) => Promise<boolean> | Promise<void> | boolean | void)>): () => Promise<void>;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { autoSnapshotMatcher };
|
|
12
|
+
//# sourceMappingURL=auto_snapshot_matcher.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto_snapshot_matcher.d.mts","names":[],"sources":["../../../src/client/suite/auto_snapshot_matcher.ts"],"sourcesContent":[],"mappings":";;;;;iBASgB,+BAA+B,mDACpC;;EADK,aAAA,CAAA,UAUU,gBAVS,EAAA,UAUmB,MAVnB,CAAA,MAAA,EAAA,GAAA,CAAA,GAAA,OAAA,GAAA,OAAA,CAAA,CAAA,MAAA,EAWxB,MAXwB,CAAA,MAAA,EAAA,OAAA,GAAA,CAAA,CAAA,OAAA,EAaV,YAbU,CAaG,CAbH,CAAA,GAaQ,CAbR,GAaY,EAbZ,EAAA,GAamB,OAbnB,CAAA,OAAA,CAAA,GAasC,OAbtC,CAAA,IAAA,CAAA,GAAA,OAAA,GAAA,IAAA,CAAA,CAAA,CAAA,EAAA,GAAA,GAc/B,OAd+B,CAAA,IAAA,CAAA;CAAY"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { extractAutoSnapshotOptions } from "../../auto_snapshots/_extract_auto_snapshot_options.mjs";
|
|
2
|
+
import { shouldTakeSnapshot } from "../snapshot/should_take_snapshot.mjs";
|
|
3
|
+
import { toTaskId } from "../task/task_id.mjs";
|
|
4
|
+
import { ctx } from "./_ctx.mjs";
|
|
5
|
+
import dedent from "dedent";
|
|
6
|
+
|
|
7
|
+
//#region src/client/suite/auto_snapshot_matcher.ts
|
|
8
|
+
function autoSnapshotMatcher(commands, expect) {
|
|
9
|
+
let subject;
|
|
10
|
+
return {
|
|
11
|
+
async setup() {
|
|
12
|
+
subject = (await commands.setupVisSuite()).subject;
|
|
13
|
+
},
|
|
14
|
+
createMatcher(themes) {
|
|
15
|
+
return async function matchImageSnapshot() {
|
|
16
|
+
const test = ctx.getCurrentTest();
|
|
17
|
+
const meta = extractAutoSnapshotOptions(test);
|
|
18
|
+
if (!shouldTakeSnapshot(meta)) return;
|
|
19
|
+
const errors = [];
|
|
20
|
+
for (const themeId in themes) try {
|
|
21
|
+
await new Promise((a) => setTimeout(a, 10));
|
|
22
|
+
const theme = themes[themeId];
|
|
23
|
+
if ((typeof theme === "function" ? await theme(meta) : theme) === false) continue;
|
|
24
|
+
await expect(getSubject(meta?.subject ?? subject)).toMatchImageSnapshot({
|
|
25
|
+
...meta,
|
|
26
|
+
snapshotKey: meta?.snapshotKey ?? themeId
|
|
27
|
+
});
|
|
28
|
+
} catch (error) {
|
|
29
|
+
errors.push([themeId, error]);
|
|
30
|
+
}
|
|
31
|
+
if (errors.length > 0) {
|
|
32
|
+
if (errors.length === 1) throw errors[0][1];
|
|
33
|
+
const taskId = toTaskId(test);
|
|
34
|
+
throw new AggregateError(errors, dedent`Snapshot \`${taskId}\` mismatched
|
|
35
|
+
|
|
36
|
+
${errors.map(([themeId, error]) => {
|
|
37
|
+
return `Theme \`${themeId}\` failed: ${error.message}`;
|
|
38
|
+
}).join("\n\n")}`);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function getSubject(selectors) {
|
|
45
|
+
return selectors ? document.querySelector(selectors) ?? document.body : document.body;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { autoSnapshotMatcher };
|
|
50
|
+
//# sourceMappingURL=auto_snapshot_matcher.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto_snapshot_matcher.mjs","names":[],"sources":["../../../src/client/suite/auto_snapshot_matcher.ts"],"sourcesContent":["import dedent from 'dedent'\nimport { extractAutoSnapshotOptions } from '../../auto_snapshots/_extract_auto_snapshot_options.ts'\nimport type { SnapshotMeta } from '../../auto_snapshots/snapshot_meta.ts'\nimport type { SetupVisSuiteCommand } from '../../shared/commands.types.ts'\nimport type { ComparisonMethod } from '../../shared/types.ts'\nimport { shouldTakeSnapshot } from '../snapshot/should_take_snapshot.ts'\nimport { toTaskId } from '../task/task_id.ts'\nimport { ctx } from './_ctx.ts'\n\nexport function autoSnapshotMatcher<GM extends Record<string, any> | unknown = unknown>(\n\tcommands: SetupVisSuiteCommand,\n\texpect: any,\n) {\n\tlet subject: string | undefined\n\n\treturn {\n\t\tasync setup() {\n\t\t\tsubject = (await commands.setupVisSuite()).subject\n\t\t},\n\t\tcreateMatcher<C extends ComparisonMethod, M extends Record<string, any> | unknown = unknown>(\n\t\t\tthemes: Record<\n\t\t\t\tstring,\n\t\t\t\tboolean | ((options: SnapshotMeta<C> & M & GM) => Promise<boolean> | Promise<void> | boolean | void)\n\t\t\t>,\n\t\t) {\n\t\t\treturn async function matchImageSnapshot() {\n\t\t\t\tconst test = ctx.getCurrentTest()\n\n\t\t\t\tconst meta = extractAutoSnapshotOptions(test)\n\t\t\t\tif (!shouldTakeSnapshot(meta)) return\n\t\t\t\tconst errors: Array<[string, Error]> = []\n\t\t\t\tfor (const themeId in themes) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait new Promise((a) => setTimeout(a, 10))\n\t\t\t\t\t\tconst theme = themes[themeId]\n\t\t\t\t\t\tconst r = typeof theme === 'function' ? await theme(meta! as any) : theme\n\t\t\t\t\t\tif (r === false) continue\n\t\t\t\t\t\tawait expect(getSubject(meta?.subject ?? subject)).toMatchImageSnapshot({\n\t\t\t\t\t\t\t...meta,\n\t\t\t\t\t\t\tsnapshotKey: meta?.snapshotKey ?? themeId,\n\t\t\t\t\t\t})\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\terrors.push([themeId, error as Error])\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\tif (errors.length === 1) throw errors[0]![1]\n\t\t\t\t\tconst taskId = toTaskId(test!)\n\t\t\t\t\tthrow new AggregateError(\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\tdedent`Snapshot \\`${taskId}\\` mismatched\n\n\t\t\t\t\t${errors\n\t\t\t\t\t\t.map(([themeId, error]) => {\n\t\t\t\t\t\t\treturn `Theme \\`${themeId}\\` failed: ${error.message}`\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join('\\n\\n')}`,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}\n}\n\nfunction getSubject(selectors: string | undefined) {\n\treturn selectors ? (document.querySelector(selectors) ?? document.body) : document.body\n}\n"],"mappings":";;;;;;;AASA,SAAgB,oBACf,UACA,QACC;CACD,IAAI;AAEJ,QAAO;EACN,MAAM,QAAQ;AACb,cAAW,MAAM,SAAS,eAAe,EAAE;;EAE5C,cACC,QAIC;AACD,UAAO,eAAe,qBAAqB;IAC1C,MAAM,OAAO,IAAI,gBAAgB;IAEjC,MAAM,OAAO,2BAA2B,KAAK;AAC7C,QAAI,CAAC,mBAAmB,KAAK,CAAE;IAC/B,MAAM,SAAiC,EAAE;AACzC,SAAK,MAAM,WAAW,OACrB,KAAI;AACH,WAAM,IAAI,SAAS,MAAM,WAAW,GAAG,GAAG,CAAC;KAC3C,MAAM,QAAQ,OAAO;AAErB,UADU,OAAO,UAAU,aAAa,MAAM,MAAM,KAAa,GAAG,WAC1D,MAAO;AACjB,WAAM,OAAO,WAAW,MAAM,WAAW,QAAQ,CAAC,CAAC,qBAAqB;MACvE,GAAG;MACH,aAAa,MAAM,eAAe;MAClC,CAAC;aACM,OAAO;AACf,YAAO,KAAK,CAAC,SAAS,MAAe,CAAC;;AAGxC,QAAI,OAAO,SAAS,GAAG;AACtB,SAAI,OAAO,WAAW,EAAG,OAAM,OAAO,GAAI;KAC1C,MAAM,SAAS,SAAS,KAAM;AAC9B,WAAM,IAAI,eACT,QACA,MAAM,cAAc,OAAO;;OAE1B,OACA,KAAK,CAAC,SAAS,WAAW;AAC1B,aAAO,WAAW,QAAQ,aAAa,MAAM;OAC5C,CACD,KAAK,OAAO,GACb;;;;EAIJ;;AAGF,SAAS,WAAW,WAA+B;AAClD,QAAO,YAAa,SAAS,cAAc,UAAU,IAAI,SAAS,OAAQ,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task_id.d.mts","names":[],"sources":["../../../src/client/task/task_id.ts"],"sourcesContent":[],"mappings":";KAAK,IAAA;EAAA,IAAA,EAAA,MAAI;EAKO,KAAA,CAAA,EAHP,IAGe,GAAA,SAAO;;iBAAf,QAAA,OAAe"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/client/task/task_id.ts
|
|
2
|
+
function toTaskId(task) {
|
|
3
|
+
const l = [];
|
|
4
|
+
let t = task;
|
|
5
|
+
while (t?.suite) {
|
|
6
|
+
l.unshift(t.suite.name.replace(/[^a-z0-9]/gi, "-").toLowerCase());
|
|
7
|
+
t = t.suite;
|
|
8
|
+
}
|
|
9
|
+
l.push(task.name.replace(/[^a-z0-9]/gi, "-").toLowerCase());
|
|
10
|
+
return l.join("/");
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { toTaskId };
|
|
15
|
+
//# sourceMappingURL=task_id.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task_id.mjs","names":[],"sources":["../../../src/client/task/task_id.ts"],"sourcesContent":["type Task = {\n\tname: string\n\tsuite?: Task | undefined\n}\n\nexport function toTaskId(task: Task) {\n\tconst l: any[] = []\n\tlet t = task\n\twhile (t?.suite) {\n\t\tl.unshift(t.suite.name.replace(/[^a-z0-9]/gi, '-').toLowerCase())\n\t\tt = t.suite\n\t}\n\n\tl.push(task.name.replace(/[^a-z0-9]/gi, '-').toLowerCase())\n\treturn l.join('/')\n}\n"],"mappings":";AAKA,SAAgB,SAAS,MAAY;CACpC,MAAM,IAAW,EAAE;CACnB,IAAI,IAAI;AACR,QAAO,GAAG,OAAO;AAChB,IAAE,QAAQ,EAAE,MAAM,KAAK,QAAQ,eAAe,IAAI,CAAC,aAAa,CAAC;AACjE,MAAI,EAAE;;AAGP,GAAE,KAAK,KAAK,KAAK,QAAQ,eAAe,IAAI,CAAC,aAAa,CAAC;AAC3D,QAAO,EAAE,KAAK,IAAI"}
|
package/dist/client-api.d.mts
CHANGED
|
@@ -1,141 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./
|
|
3
|
-
import "./
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region src/server/commands/image_snapshot_next_index.d.ts
|
|
16
|
-
interface ImageSnapshotNextIndexCommand {
|
|
17
|
-
/**
|
|
18
|
-
* Get the index of the snapshot image to be created.
|
|
19
|
-
*/
|
|
20
|
-
imageSnapshotNextIndex(taskId: string): Promise<number>;
|
|
21
|
-
}
|
|
22
|
-
//#endregion
|
|
23
|
-
//#region src/server/commands/load_image_snapshot_results.d.ts
|
|
24
|
-
interface ImageSnapshotResult {
|
|
25
|
-
filename: string;
|
|
26
|
-
/**
|
|
27
|
-
* The base64 encoded image of the baseline snapshot.
|
|
28
|
-
*/
|
|
29
|
-
baseline?: string | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* The base64 encoded image of the result snapshot.
|
|
32
|
-
*/
|
|
33
|
-
result?: string | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* The base64 encoded image of the diff snapshot.
|
|
36
|
-
*/
|
|
37
|
-
diff?: string | undefined;
|
|
38
|
-
}
|
|
39
|
-
interface LoadImageSnapshotResultsCommand {
|
|
40
|
-
loadImageSnapshotResults(taskId: string): Promise<ImageSnapshotResult[]>;
|
|
41
|
-
}
|
|
42
|
-
//#endregion
|
|
43
|
-
//#region src/server/commands/types.d.ts
|
|
44
|
-
type MatchImageSnapshotOptions = ImageSnapshotTimeoutOptions & ImageSnapshotCompareOptions<any> & ImageSnapshotKeyOptions;
|
|
45
|
-
//#endregion
|
|
46
|
-
//#region src/server/commands/prepare_image_snapshot_comparison.d.ts
|
|
47
|
-
type ImageSnapshotComparisonInfo$1 = {
|
|
48
|
-
/**
|
|
49
|
-
* Path to the project root.
|
|
50
|
-
*/
|
|
51
|
-
projectRoot: string;
|
|
52
|
-
/**
|
|
53
|
-
* Path to the baseline image relative to the project root.
|
|
54
|
-
*/
|
|
55
|
-
baselinePath: string;
|
|
56
|
-
/**
|
|
57
|
-
* Path to the result image relative to the project root.
|
|
58
|
-
*/
|
|
59
|
-
resultPath: string;
|
|
60
|
-
/**
|
|
61
|
-
* Path to the diff image relative to the project root.
|
|
62
|
-
*/
|
|
63
|
-
diffPath: string;
|
|
64
|
-
/**
|
|
65
|
-
* Base64 encoded baseline image.
|
|
66
|
-
*/
|
|
67
|
-
baseline: string;
|
|
68
|
-
/**
|
|
69
|
-
* Base64 encoded result image.
|
|
70
|
-
*/
|
|
71
|
-
result: string;
|
|
72
|
-
/**
|
|
73
|
-
* Base64 encoded diff image.
|
|
74
|
-
*/
|
|
75
|
-
diff?: string | undefined;
|
|
76
|
-
} & ImageSnapshotTimeoutOptions & FailureThresholdOptions & (SsimComparisonOptions | PixelComparisonOptions);
|
|
77
|
-
interface PrepareImageSnapshotComparisonCommand {
|
|
78
|
-
prepareImageSnapshotComparison: (taskId: string, subject: string, options?: MatchImageSnapshotOptions | undefined) => Promise<ImageSnapshotComparisonInfo$1 | undefined>;
|
|
79
|
-
}
|
|
80
|
-
//#endregion
|
|
81
|
-
//#region src/server/commands/prepare_page_image_snapshot_comparison.d.ts
|
|
82
|
-
type ImageSnapshotComparisonInfo = {
|
|
83
|
-
/**
|
|
84
|
-
* Path to the project root.
|
|
85
|
-
*/
|
|
86
|
-
projectRoot: string;
|
|
87
|
-
/**
|
|
88
|
-
* Path to the baseline image relative to the project root.
|
|
89
|
-
*/
|
|
90
|
-
baselinePath: string;
|
|
91
|
-
/**
|
|
92
|
-
* Path to the result image relative to the project root.
|
|
93
|
-
*/
|
|
94
|
-
resultPath: string;
|
|
95
|
-
/**
|
|
96
|
-
* Path to the diff image relative to the project root.
|
|
97
|
-
*/
|
|
98
|
-
diffPath: string;
|
|
99
|
-
/**
|
|
100
|
-
* Base64 encoded baseline image.
|
|
101
|
-
*/
|
|
102
|
-
baseline: string;
|
|
103
|
-
/**
|
|
104
|
-
* Base64 encoded result image.
|
|
105
|
-
*/
|
|
106
|
-
result: string;
|
|
107
|
-
} & ImageSnapshotTimeoutOptions & FailureThresholdOptions & (SsimComparisonOptions | PixelComparisonOptions);
|
|
108
|
-
interface PreparePageImageSnapshotComparisonCommand {
|
|
109
|
-
preparePageImageSnapshotComparison: (taskId: string, options?: MatchImageSnapshotOptions | undefined) => Promise<ImageSnapshotComparisonInfo | undefined>;
|
|
110
|
-
}
|
|
111
|
-
//#endregion
|
|
112
|
-
//#region src/server/commands/augment.d.ts
|
|
113
|
-
declare module 'vitest/browser' {
|
|
114
|
-
interface BrowserCommands extends SetupVisSuiteCommand, ImageSnapshotNextIndexCommand, HasImageSnapshotCommand, PreparePageImageSnapshotComparisonCommand, PrepareImageSnapshotComparisonCommand, LoadImageSnapshotResultsCommand {}
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=augment.d.ts.map
|
|
117
|
-
//#endregion
|
|
118
|
-
//#region src/client/actions/has_image_snapshot_action.d.ts
|
|
119
|
-
declare function hasImageSnapshotAction(commands: ImageSnapshotNextIndexCommand & HasImageSnapshotCommand, taskId: string, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>;
|
|
120
|
-
//#endregion
|
|
121
|
-
//#region src/client/actions/load_image_snapshot_results_action.d.ts
|
|
122
|
-
declare function loadImageSnapshotResultsAction(commands: LoadImageSnapshotResultsCommand, taskId: string): Promise<ImageSnapshotResult[]>;
|
|
123
|
-
//#endregion
|
|
124
|
-
//#region src/client/actions/match_image_snapshot_action.d.ts
|
|
125
|
-
declare function matchImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, subject: any, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
|
|
126
|
-
//#endregion
|
|
127
|
-
//#region src/client/actions/match_page_image_snapshot_action.d.ts
|
|
128
|
-
declare function matchPageImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
|
|
129
|
-
//#endregion
|
|
130
|
-
//#region src/client/expect/expectation_result.d.ts
|
|
131
|
-
declare const success: SyncExpectationResult;
|
|
132
|
-
//#endregion
|
|
133
|
-
//#region src/client/task_id.d.ts
|
|
134
|
-
type Task = {
|
|
135
|
-
name: string;
|
|
136
|
-
suite?: Task | undefined;
|
|
137
|
-
};
|
|
138
|
-
declare function toTaskId(task: Task): string;
|
|
139
|
-
//#endregion
|
|
140
|
-
export { Awaitable, BASELINE_DIR, ComparisonMethod, DIFF_DIR, FailureThresholdOptions, ImageSnapshotCompareOptions, ImageSnapshotKeyOptions, ImageSnapshotMatcher, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, type MetaTask, NAME, PageImageSnapshotOptions, PixelComparisonOptions, PixelDiffOptions, RESULT_DIR, SNAPSHOT_ROOT_DIR, SnapshotTestMeta, SsimComparisonOptions, SsimDiffOptions, ToMatchImageSnapshotOptions, ToMatchPageImageSnapshotOptions, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
|
|
141
|
-
//# sourceMappingURL=client-api.d.mts.map
|
|
1
|
+
import { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR } from "./shared/constants.mjs";
|
|
2
|
+
import { Awaitable, ComparisonMethod, FailureThresholdOptions, ImageSnapshotCompareOptions, ImageSnapshotComparisonInfo, ImageSnapshotKeyOptions, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, MatchImageSnapshotOptions, PageImageSnapshotOptions, PixelComparisonOptions, PixelDiffOptions, SetupVisOptions, SnapshotTestMeta, SsimComparisonOptions, SsimDiffOptions, ToMatchImageSnapshotOptions, ToMatchPageImageSnapshotOptions } from "./shared/types.mjs";
|
|
3
|
+
import "./server/commands/augment.mjs";
|
|
4
|
+
import { MetaTask, setAutoSnapshotOptions } from "./auto_snapshots/auto_snapshot_options.mjs";
|
|
5
|
+
import { hasImageSnapshotAction } from "./client/actions/has_image_snapshot_action.mjs";
|
|
6
|
+
import { loadImageSnapshotResultsAction } from "./client/actions/load_image_snapshot_results_action.mjs";
|
|
7
|
+
import { matchImageSnapshotAction } from "./client/actions/match_image_snapshot_action.mjs";
|
|
8
|
+
import { matchPageImageSnapshotAction } from "./client/actions/match_page_image_snapshot_action.mjs";
|
|
9
|
+
import { success } from "./client/expect/expectation_result.mjs";
|
|
10
|
+
import { ImageSnapshotMatcher } from "./client/expect/to_match_image_snapshot.types.mjs";
|
|
11
|
+
import { autoSnapshotMatcher } from "./client/suite/auto_snapshot_matcher.mjs";
|
|
12
|
+
import { toTaskId } from "./client/task/task_id.mjs";
|
|
13
|
+
export { Awaitable, BASELINE_DIR, ComparisonMethod, DIFF_DIR, FailureThresholdOptions, ImageSnapshotCompareOptions, ImageSnapshotComparisonInfo, ImageSnapshotKeyOptions, ImageSnapshotMatcher, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, MatchImageSnapshotOptions, MetaTask, NAME, PageImageSnapshotOptions, PixelComparisonOptions, PixelDiffOptions, RESULT_DIR, SNAPSHOT_ROOT_DIR, SetupVisOptions, SnapshotTestMeta, SsimComparisonOptions, SsimDiffOptions, ToMatchImageSnapshotOptions, ToMatchPageImageSnapshotOptions, autoSnapshotMatcher, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
|
package/dist/client-api.mjs
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import "./
|
|
5
|
-
import {
|
|
1
|
+
import { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR } from "./shared/constants.mjs";
|
|
2
|
+
import { setAutoSnapshotOptions } from "./auto_snapshots/auto_snapshot_options.mjs";
|
|
3
|
+
import { hasImageSnapshotAction } from "./client/actions/has_image_snapshot_action.mjs";
|
|
4
|
+
import { loadImageSnapshotResultsAction } from "./client/actions/load_image_snapshot_results_action.mjs";
|
|
5
|
+
import { matchImageSnapshotAction } from "./client/actions/match_image_snapshot_action.mjs";
|
|
6
|
+
import { matchPageImageSnapshotAction } from "./client/actions/match_page_image_snapshot_action.mjs";
|
|
7
|
+
import { success } from "./client/expect/expectation_result.mjs";
|
|
8
|
+
import { toTaskId } from "./client/task/task_id.mjs";
|
|
9
|
+
import { autoSnapshotMatcher } from "./client/suite/auto_snapshot_matcher.mjs";
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
function loadImageSnapshotResultsAction(commands, taskId) {
|
|
9
|
-
return commands.loadImageSnapshotResults(taskId);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
//#endregion
|
|
13
|
-
export { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
|
|
14
|
-
//# sourceMappingURL=client-api.mjs.map
|
|
11
|
+
export { BASELINE_DIR, DIFF_DIR, NAME, RESULT_DIR, SNAPSHOT_ROOT_DIR, autoSnapshotMatcher, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
|