vitest-plugin-vis 4.1.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-BMRtKmod.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-DUOTpF2N.mjs → auto_snapshots/auto_snapshot_options.mjs} +6 -40
- 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--tTmHoRA.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 -44
- package/dist/client-api.mjs +10 -13
- package/dist/{types-DJYCbyT8.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 -101
- 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/{commands.types-BVhcnnHw.d.mts → shared/commands.types.d.mts} +6 -6
- 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-DBThLerp.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-CEmjj-A9.d.mts → shared/types.d.mts} +6 -21
- 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/task → auto_snapshots}/_ctx.ts +1 -1
- package/src/auto_snapshots/_extract_auto_snapshot_options.ts +26 -0
- package/src/{client/task → auto_snapshots}/auto_snapshot_options.mdx +1 -2
- package/src/{client/task → auto_snapshots}/auto_snapshot_options.ts +3 -25
- package/src/{client/task → auto_snapshots}/snapshot_meta.ts +1 -1
- package/src/client/actions/match_image_snapshot_action.ts +0 -2
- package/src/client/snapshot/compare_image_snapshot.logic.ts +1 -1
- package/src/client/snapshot/compare_image_snapshot.ts +15 -1
- package/src/client/snapshot/should_take_snapshot.ts +1 -1
- package/src/client/suite/auto_snapshot_matcher.ts +2 -3
- package/src/client-api.ts +1 -1
- 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/prepare_image_snapshot_comparison.ts +8 -8
- package/src/server/commands/prepare_page_image_snapshot_comparison.ts +1 -6
- package/src/server/snapshot_path.ts +3 -1
- package/src/{setup.create_vis.mdx → setup/create_vis.mdx} +4 -5
- package/src/setup/create_vis.ts +12 -7
- package/src/setup/overview.mdx +17 -0
- package/src/setup/readme.md +3 -1
- package/src/{setup.vis.mdx → setup/vis.mdx} +15 -18
- package/src/setup-api.ts +5 -0
- package/src/setup.ts +8 -4
- package/src/shared/commands.types.ts +2 -2
- package/src/shared/types.ts +3 -2
- package/dist/asserts--HSSlgPD.mjs.map +0 -1
- package/dist/augment-C1tjdh5B.d.mts +0 -33
- package/dist/augment-C1tjdh5B.d.mts.map +0 -1
- package/dist/auto_snapshot_matcher-C0y6mAeS.mjs +0 -381
- package/dist/auto_snapshot_matcher-C0y6mAeS.mjs.map +0 -1
- package/dist/auto_snapshot_options-BMRtKmod.d.mts.map +0 -1
- package/dist/auto_snapshot_options-DUOTpF2N.mjs.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/commands.types-BVhcnnHw.d.mts.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-DCytWz48.mjs +0 -124
- package/dist/setup-DCytWz48.mjs.map +0 -1
- package/dist/snapshot_path-7GliOSH_.mjs.map +0 -1
- package/dist/src-CSQnlFa9.mjs +0 -1
- package/dist/testing.d.mts.map +0 -1
- package/dist/to_match_image_snapshot.types--tTmHoRA.d.mts.map +0 -1
- package/dist/trim_common_folder-DBThLerp.d.mts.map +0 -1
- package/dist/types-CEmjj-A9.d.mts.map +0 -1
- package/dist/types-DJYCbyT8.d.mts.map +0 -1
- package/src/config.vis.mdx +0 -76
|
@@ -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,44 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./types
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region src/client/actions/has_image_snapshot_action.d.ts
|
|
16
|
-
declare function hasImageSnapshotAction(commands: ImageSnapshotNextIndexCommand & HasImageSnapshotCommand, taskId: string, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>;
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region src/client/actions/load_image_snapshot_results_action.d.ts
|
|
19
|
-
declare function loadImageSnapshotResultsAction(commands: LoadImageSnapshotResultsCommand, taskId: string): Promise<ImageSnapshotResult[]>;
|
|
20
|
-
//#endregion
|
|
21
|
-
//#region src/client/actions/match_image_snapshot_action.d.ts
|
|
22
|
-
declare function matchImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, subject: any, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
|
|
23
|
-
//#endregion
|
|
24
|
-
//#region src/client/actions/match_page_image_snapshot_action.d.ts
|
|
25
|
-
declare function matchPageImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
|
|
26
|
-
//#endregion
|
|
27
|
-
//#region src/client/expect/expectation_result.d.ts
|
|
28
|
-
declare const success: SyncExpectationResult;
|
|
29
|
-
//#endregion
|
|
30
|
-
//#region src/client/suite/auto_snapshot_matcher.d.ts
|
|
31
|
-
declare function autoSnapshotMatcher<GM extends Record<string, any> | unknown = unknown>(commands: SetupVisSuiteCommand, expect: any): {
|
|
32
|
-
setup(): Promise<void>;
|
|
33
|
-
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>;
|
|
34
|
-
};
|
|
35
|
-
//#endregion
|
|
36
|
-
//#region src/client/task/task_id.d.ts
|
|
37
|
-
type Task = {
|
|
38
|
-
name: string;
|
|
39
|
-
suite?: Task | undefined;
|
|
40
|
-
};
|
|
41
|
-
declare function toTaskId(task: Task): string;
|
|
42
|
-
//#endregion
|
|
43
|
-
export { Awaitable, BASELINE_DIR, ComparisonMethod, DIFF_DIR, FailureThresholdOptions, ImageSnapshotCompareOptions, ImageSnapshotComparisonInfo, ImageSnapshotKeyOptions, ImageSnapshotMatcher, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, MatchImageSnapshotOptions, type MetaTask, NAME, PageImageSnapshotOptions, PixelComparisonOptions, PixelDiffOptions, RESULT_DIR, SNAPSHOT_ROOT_DIR, SetupVisOptions, SnapshotTestMeta, SsimComparisonOptions, SsimDiffOptions, ToMatchImageSnapshotOptions, ToMatchPageImageSnapshotOptions, autoSnapshotMatcher, hasImageSnapshotAction, loadImageSnapshotResultsAction, matchImageSnapshotAction, matchPageImageSnapshotAction, setAutoSnapshotOptions, success, toTaskId };
|
|
44
|
-
//# 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, autoSnapshotMatcher, 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 };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComparisonMethod, FailureThresholdOptions, ImageSnapshotKeyOptions, ImageSnapshotSubjectOptions, ImageSnapshotTimeoutOptions, PixelComparisonOptions, PixelDiffOptions, SsimComparisonOptions, SsimDiffOptions } from "../shared/types.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/config/types.d.ts
|
|
4
4
|
type VisOptions<M extends ComparisonMethod = 'pixel'> = (M extends 'ssim' ? {
|
|
@@ -17,21 +17,20 @@ type VisOptions<M extends ComparisonMethod = 'pixel'> = (M extends 'ssim' ? {
|
|
|
17
17
|
/**
|
|
18
18
|
* Loads the `test.setupFiles` of the specified preset.
|
|
19
19
|
*
|
|
20
|
-
* Note:
|
|
21
|
-
* - 'enable` is deprecated. Use `manual` for the same effect.
|
|
22
|
-
* - 'none` is deprecated. Use `custom` for the same effect.
|
|
23
|
-
*
|
|
24
20
|
* @default 'auto'
|
|
25
|
-
*
|
|
21
|
+
* @deprecated 'enable' is deprecated. Use `manual` for the same effect.
|
|
22
|
+
* @deprecated 'none' is deprecated. Use `custom` for the same effect.
|
|
26
23
|
*/
|
|
27
24
|
preset?: 'enable' | 'manual' | 'auto' | 'custom' | 'none' | undefined;
|
|
28
25
|
/**
|
|
29
26
|
* The snapshot folder relative to the root of the project.
|
|
30
27
|
*
|
|
31
|
-
*
|
|
28
|
+
* @default "({ ci, platform }) => `__vis__/${ci ? platform : 'local'}`"
|
|
32
29
|
*/
|
|
33
30
|
snapshotRootDir?: string | ((context: {
|
|
34
31
|
ci: boolean;
|
|
32
|
+
rootDir: string;
|
|
33
|
+
projectName?: string | undefined;
|
|
35
34
|
browserName?: string | undefined;
|
|
36
35
|
providerName: string;
|
|
37
36
|
platform: string;
|
|
@@ -59,5 +58,5 @@ type VisOptions<M extends ComparisonMethod = 'pixel'> = (M extends 'ssim' ? {
|
|
|
59
58
|
}) => string) | undefined;
|
|
60
59
|
};
|
|
61
60
|
//#endregion
|
|
62
|
-
export { VisOptions
|
|
63
|
-
//# sourceMappingURL=types
|
|
61
|
+
export { VisOptions };
|
|
62
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/config/types.ts"],"sourcesContent":[],"mappings":";;;KAcY,qBAAqB,+BAA+B;EAApD,gBAAU,EAED,CAFC;EAAW;;;EAMR,WAAA,CAAA,EAAR,OAAQ,CAAA,eAAA,CAAA,GAAA,SAAA;CAAR,GAAA;EAGK,gBAAA,CAAA,EAAA,CAAA,GAAA,SAAA;EAIL;;;EAIhB,WAAA,CAAA,EAJgB,gBAIhB,GAAA,SAAA;CACA,CAAA,GAHA,uBAGA,GAFA,2BAEA,GADA,uBACA,GAAA,2BAAA,GAAA;EAA2B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ComparisonMethod } from "../shared/types.mjs";
|
|
2
|
+
import { VisOptions } from "./types.mjs";
|
|
3
|
+
import * as vite0 from "vite";
|
|
4
|
+
|
|
5
|
+
//#region src/config/vis.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Create a Vite plugin for visual testing.
|
|
9
|
+
*
|
|
10
|
+
* If options are not provided, the plugin will use the default options,
|
|
11
|
+
* which enables the `auto` preset.
|
|
12
|
+
*/
|
|
13
|
+
declare function vis<M extends ComparisonMethod = 'pixel'>(options?: VisOptions<M>): {
|
|
14
|
+
name: string;
|
|
15
|
+
config(this: unknown, userConfig: vite0.UserConfig): {
|
|
16
|
+
test: {
|
|
17
|
+
browser: {
|
|
18
|
+
name: undefined;
|
|
19
|
+
commands: any;
|
|
20
|
+
};
|
|
21
|
+
setupFiles: string[];
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//#endregion
|
|
26
|
+
export { vis };
|
|
27
|
+
//# sourceMappingURL=vis.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vis.d.mts","names":[],"sources":["../../src/config/vis.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAaA;;;AAAmE,iBAAnD,GAAmD,CAAA,UAArC,gBAAqC,GAAA,OAAA,CAAA,CAAA,OAAA,CAAA,EAAA,UAAA,CAAW,CAAX,CAAA,CAAA,EAAA;EAAU,IAGvD,EAAA,MAAA;EAAA,MAAA,CAAA,IAAA,EAAA,OAAA,EAAA,UAAA,EAHuD,KAAA,CAGvD,UAAA,CAAA,EAAA"}
|