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,15 @@
|
|
|
1
|
+
import { getCurrentSuite, getCurrentTest } from "../client/external/vitest/vitest_suite_proxy.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/auto_snapshots/_ctx.ts
|
|
4
|
+
const ctx = {
|
|
5
|
+
getCurrentTest,
|
|
6
|
+
getCurrentSuite,
|
|
7
|
+
__test__reset() {
|
|
8
|
+
ctx.getCurrentTest = getCurrentTest;
|
|
9
|
+
ctx.getCurrentSuite = getCurrentSuite;
|
|
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/auto_snapshots/_ctx.ts"],"sourcesContent":["import { getCurrentSuite, getCurrentTest } from '../client/external/vitest/vitest_suite_proxy.ts'\n\nexport const ctx = {\n\tgetCurrentTest,\n\tgetCurrentSuite,\n\t__test__reset() {\n\t\tctx.getCurrentTest = getCurrentTest\n\t\tctx.getCurrentSuite = getCurrentSuite\n\t},\n}\n"],"mappings":";;;AAEA,MAAa,MAAM;CAClB;CACA;CACA,gBAAgB;AACf,MAAI,iBAAiB;AACrB,MAAI,kBAAkB;;CAEvB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NAME } from "../shared/constants.mjs";
|
|
2
|
+
import "../client-api.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/auto_snapshots/_extract_auto_snapshot_options.ts
|
|
5
|
+
function extractAutoSnapshotOptions(task) {
|
|
6
|
+
if (!task) return;
|
|
7
|
+
const list = [];
|
|
8
|
+
let current = task;
|
|
9
|
+
while (current?.suite) {
|
|
10
|
+
list.unshift(current.suite.meta);
|
|
11
|
+
current = current.suite;
|
|
12
|
+
}
|
|
13
|
+
list.unshift(task.file?.meta);
|
|
14
|
+
list.push(task.meta);
|
|
15
|
+
return list.reduce((acc, cur) => {
|
|
16
|
+
const meta = cur?.[NAME];
|
|
17
|
+
return meta ? Object.assign({}, acc, meta) : acc;
|
|
18
|
+
}, { enable: false });
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
22
|
+
export { extractAutoSnapshotOptions };
|
|
23
|
+
//# sourceMappingURL=_extract_auto_snapshot_options.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_extract_auto_snapshot_options.mjs","names":[],"sources":["../../src/auto_snapshots/_extract_auto_snapshot_options.ts"],"sourcesContent":["import { NAME } from '../client-api.ts'\nimport type { MetaTask } from './auto_snapshot_options.ts'\nimport type { SnapshotMeta } from './snapshot_meta.ts'\n\nexport function extractAutoSnapshotOptions<M extends SnapshotMeta<any> = SnapshotMeta<any>>(\n\ttask: MetaTask,\n): M | undefined {\n\tif (!task) return\n\n\tconst list: any[] = []\n\tlet current = task\n\twhile (current?.suite) {\n\t\tlist.unshift(current.suite.meta)\n\t\tcurrent = current.suite\n\t}\n\tlist.unshift(task.file?.meta)\n\tlist.push(task.meta)\n\treturn list.reduce(\n\t\t(acc, cur) => {\n\t\t\tconst meta = cur?.[NAME]\n\t\t\t// biome-ignore lint/performance/noAccumulatingSpread: I think this is needed\n\t\t\treturn meta ? Object.assign({}, acc, meta) : acc\n\t\t},\n\t\t{ enable: false },\n\t)\n}\n"],"mappings":";;;;AAIA,SAAgB,2BACf,MACgB;AAChB,KAAI,CAAC,KAAM;CAEX,MAAM,OAAc,EAAE;CACtB,IAAI,UAAU;AACd,QAAO,SAAS,OAAO;AACtB,OAAK,QAAQ,QAAQ,MAAM,KAAK;AAChC,YAAU,QAAQ;;AAEnB,MAAK,QAAQ,KAAK,MAAM,KAAK;AAC7B,MAAK,KAAK,KAAK,KAAK;AACpB,QAAO,KAAK,QACV,KAAK,QAAQ;EACb,MAAM,OAAO,MAAM;AAEnB,SAAO,OAAO,OAAO,OAAO,EAAE,EAAE,KAAK,KAAK,GAAG;IAE9C,EAAE,QAAQ,OAAO,CACjB"}
|
package/dist/{auto_snapshot_options-BMRtKmod.d.mts → auto_snapshots/auto_snapshot_options.d.mts}
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SnapshotMeta } from "./snapshot_meta.mjs";
|
|
2
|
+
import { ComparisonMethod } from "../shared/types.mjs";
|
|
2
3
|
|
|
3
|
-
//#region src/
|
|
4
|
+
//#region src/auto_snapshots/auto_snapshot_options.d.ts
|
|
4
5
|
type Suite = {
|
|
5
6
|
meta: Record<string, any>;
|
|
6
7
|
suite?: Suite | undefined;
|
|
@@ -41,5 +42,5 @@ type MetaTask = {
|
|
|
41
42
|
*/
|
|
42
43
|
declare function setAutoSnapshotOptions<M extends ComparisonMethod>(meta: boolean | SnapshotMeta<M>): void;
|
|
43
44
|
//#endregion
|
|
44
|
-
export {
|
|
45
|
-
//# sourceMappingURL=auto_snapshot_options
|
|
45
|
+
export { MetaTask, setAutoSnapshotOptions };
|
|
46
|
+
//# sourceMappingURL=auto_snapshot_options.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto_snapshot_options.d.mts","names":[],"sources":["../../src/auto_snapshots/auto_snapshot_options.ts"],"sourcesContent":[],"mappings":";;;;KAMK,KAAA;QAAgB;EAAhB,KAAA,CAAA,EAA6C,KAAxC,GAAA,SAAW;AAErB,CAAA;AAEkB,KAFN,QAAA,GAEM;EACP,IAAA,CAAA,EAAA;IACF,IAAA,EAFS,MAET,CAAA,MAAA,EAAA,GAAA,CAAA;EAAM,CAAA,GAAA,SAAA;EA+BC,KAAA,CAAA,EAhCL,KAgCK,GAAA,SAAsB;EAAW,IAAA,EA/BxC,MA+BwC,CAAA,MAAA,EAAA,GAAA,CAAA;CAA+C,GAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAhF,iCAAiC,kCAAkC,aAAa"}
|
package/dist/{auto_snapshot_options-DUOTpF2N.mjs → auto_snapshots/auto_snapshot_options.mjs}
RENAMED
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { assertSnapshotKeyWithoutDash } from "../shared/asserts.mjs";
|
|
2
|
+
import { NAME } from "../shared/constants.mjs";
|
|
3
|
+
import { ctx } from "./_ctx.mjs";
|
|
3
4
|
|
|
4
|
-
//#region src/
|
|
5
|
-
let vitestSuite;
|
|
6
|
-
if (globalThis.__vitest_browser__) import("vitest/suite").then((m) => {
|
|
7
|
-
vitestSuite = m;
|
|
8
|
-
});
|
|
9
|
-
const getCurrentTest = () => vitestSuite?.getCurrentTest();
|
|
10
|
-
const getCurrentSuite = () => vitestSuite?.getCurrentSuite();
|
|
11
|
-
|
|
12
|
-
//#endregion
|
|
13
|
-
//#region src/client/task/_ctx.ts
|
|
14
|
-
const ctx = {
|
|
15
|
-
getCurrentTest,
|
|
16
|
-
getCurrentSuite,
|
|
17
|
-
__test__reset() {
|
|
18
|
-
ctx.getCurrentTest = getCurrentTest;
|
|
19
|
-
ctx.getCurrentSuite = getCurrentSuite;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
//#region src/client/task/auto_snapshot_options.ts
|
|
5
|
+
//#region src/auto_snapshots/auto_snapshot_options.ts
|
|
25
6
|
/**
|
|
26
7
|
* Set the snapshot options for auto snapshot.
|
|
27
8
|
*
|
|
@@ -67,22 +48,7 @@ function parseMeta(meta) {
|
|
|
67
48
|
...meta
|
|
68
49
|
};
|
|
69
50
|
}
|
|
70
|
-
function extractAutoSnapshotOptions(task) {
|
|
71
|
-
if (!task) return;
|
|
72
|
-
const list = [];
|
|
73
|
-
let current = task;
|
|
74
|
-
while (current?.suite) {
|
|
75
|
-
list.unshift(current.suite.meta);
|
|
76
|
-
current = current.suite;
|
|
77
|
-
}
|
|
78
|
-
list.unshift(task.file?.meta);
|
|
79
|
-
list.push(task.meta);
|
|
80
|
-
return list.reduce((acc, cur) => {
|
|
81
|
-
const meta = cur?.[NAME];
|
|
82
|
-
return meta ? Object.assign({}, acc, meta) : acc;
|
|
83
|
-
}, { enable: false });
|
|
84
|
-
}
|
|
85
51
|
|
|
86
52
|
//#endregion
|
|
87
|
-
export { setAutoSnapshotOptions
|
|
88
|
-
//# sourceMappingURL=auto_snapshot_options
|
|
53
|
+
export { setAutoSnapshotOptions };
|
|
54
|
+
//# sourceMappingURL=auto_snapshot_options.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto_snapshot_options.mjs","names":[],"sources":["../../src/auto_snapshots/auto_snapshot_options.ts"],"sourcesContent":["import { assertSnapshotKeyWithoutDash } from '../shared/asserts.ts'\nimport { NAME } from '../shared/constants.ts'\nimport type { ComparisonMethod } from '../shared/types.ts'\nimport { ctx } from './_ctx.ts'\nimport type { SnapshotMeta } from './snapshot_meta.ts'\n\ntype Suite = { meta: Record<string, any>; suite?: Suite | undefined }\n\nexport type MetaTask =\n\t| {\n\t\t\tfile?: { meta: Record<string, any> } | undefined\n\t\t\tsuite?: Suite | undefined\n\t\t\tmeta: Record<string, any>\n\t }\n\t| undefined\n\n/**\n * Set the snapshot options for auto snapshot.\n *\n * You can use it in beforeAll, beforeEach, or individual test cases.\n *\n * @param meta - The snapshot options to set.\n * You can pass a boolean to enable/disable the snapshot, or an object with the snapshot options.\n * When passing an object, the `enable` property will be set to `true` by default unless you explicitly set it to `false`.\n * @param meta.enable - Whether to enable the snapshot.\n * @param meta.snapshotKey - The key to use for the snapshot.\n * @param meta.comparisonMethod - The comparison method to use for the snapshot.\n * @param meta.diffOptions - The diff options to use for the snapshot.\n * @param meta.failureThreshold - The failure threshold to use for the snapshot.\n * @param meta.failureThresholdType - The failure threshold type to use for the snapshot.\n * @param meta.timeout - The timeout to use for the snapshot.\n *\n * @example\n *\n * ```ts\n * beforeAll(() => setAutoSnapshotOptions(...))\n * beforeEach(() => setAutoSnapshotOptions(...))\n *\n * it('...', () => {\n * setAutoSnapshotOptions(...)\n * })\n * ```\n */\nexport function setAutoSnapshotOptions<M extends ComparisonMethod>(meta: boolean | SnapshotMeta<M>): void {\n\tif (typeof meta === 'object') {\n\t\tassertSnapshotKeyWithoutDash(meta.snapshotKey)\n\t}\n\n\tconst task = getTask()\n\tif (!task) return\n\n\ttask.meta[NAME] = {\n\t\t...task.meta[NAME],\n\t\t...parseMeta(meta),\n\t}\n}\n\nfunction getTask(): MetaTask | undefined {\n\treturn ctx.getCurrentTest() ?? (ctx.getCurrentSuite()?.tasks?.[0] as any)?.file\n}\n\nfunction parseMeta<M extends ComparisonMethod>(meta: boolean | SnapshotMeta<M>): SnapshotMeta<M> {\n\treturn typeof meta === 'boolean' ? ({ enable: meta } as any) : { enable: true, ...meta }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,SAAgB,uBAAmD,MAAuC;AACzG,KAAI,OAAO,SAAS,SACnB,8BAA6B,KAAK,YAAY;CAG/C,MAAM,OAAO,SAAS;AACtB,KAAI,CAAC,KAAM;AAEX,MAAK,KAAK,QAAQ;EACjB,GAAG,KAAK,KAAK;EACb,GAAG,UAAU,KAAK;EAClB;;AAGF,SAAS,UAAgC;AACxC,QAAO,IAAI,gBAAgB,KAAK,IAAI,iBAAiB,EAAE,QAAQ,KAAY;;AAG5E,SAAS,UAAsC,MAAkD;AAChG,QAAO,OAAO,SAAS,YAAa,EAAE,QAAQ,MAAM,GAAW;EAAE,QAAQ;EAAM,GAAG;EAAM"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ComparisonMethod, ImageSnapshotSubjectOptions, ToMatchImageSnapshotOptions } from "../shared/types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/auto_snapshots/snapshot_meta.d.ts
|
|
4
|
+
type SnapshotMeta<M extends ComparisonMethod> = ToMatchImageSnapshotOptions<M> & ImageSnapshotSubjectOptions & {
|
|
5
|
+
/**
|
|
6
|
+
* Whether to enable the snapshot.
|
|
7
|
+
*
|
|
8
|
+
* Default: `true`
|
|
9
|
+
*/
|
|
10
|
+
enable?: boolean | undefined;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { SnapshotMeta };
|
|
15
|
+
//# sourceMappingURL=snapshot_meta.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot_meta.d.mts","names":[],"sources":["../../src/auto_snapshots/snapshot_meta.ts"],"sourcesContent":[],"mappings":";;;KAEY,uBAAuB,oBAAoB,4BAA4B,KAClF;;AADD;;;;EACC,MAAA,CAAA,EAAA,OAAA,GAAA,SAAA;EAA2B,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ImageSnapshotKeyOptions } from "../../shared/types.mjs";
|
|
2
|
+
import { HasImageSnapshotCommand, ImageSnapshotNextIndexCommand } from "../../shared/commands.types.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/client/actions/has_image_snapshot_action.d.ts
|
|
5
|
+
declare function hasImageSnapshotAction(commands: ImageSnapshotNextIndexCommand & HasImageSnapshotCommand, taskId: string, options?: ImageSnapshotKeyOptions | undefined): Promise<boolean>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { hasImageSnapshotAction };
|
|
8
|
+
//# sourceMappingURL=has_image_snapshot_action.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has_image_snapshot_action.d.mts","names":[],"sources":["../../../src/client/actions/has_image_snapshot_action.ts"],"sourcesContent":[],"mappings":";;;;iBAGgB,sBAAA,WACL,gCAAgC,mDAEhC,sCAAmC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/client/actions/has_image_snapshot_action.ts
|
|
2
|
+
function hasImageSnapshotAction(commands, taskId, options) {
|
|
3
|
+
if (options?.snapshotKey?.includes("-")) throw new Error("Snapshot key cannot contain dash");
|
|
4
|
+
return commands.hasImageSnapshot(taskId, options?.snapshotKey);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { hasImageSnapshotAction };
|
|
9
|
+
//# sourceMappingURL=has_image_snapshot_action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has_image_snapshot_action.mjs","names":[],"sources":["../../../src/client/actions/has_image_snapshot_action.ts"],"sourcesContent":["import type { HasImageSnapshotCommand, ImageSnapshotNextIndexCommand } from '../../shared/commands.types.ts'\nimport type { ImageSnapshotKeyOptions } from '../../shared/types.ts'\n\nexport function hasImageSnapshotAction(\n\tcommands: ImageSnapshotNextIndexCommand & HasImageSnapshotCommand,\n\ttaskId: string,\n\toptions?: ImageSnapshotKeyOptions | undefined,\n) {\n\tif (options?.snapshotKey?.includes('-')) {\n\t\tthrow new Error('Snapshot key cannot contain dash')\n\t}\n\n\treturn commands.hasImageSnapshot(taskId, options?.snapshotKey)\n}\n"],"mappings":";AAGA,SAAgB,uBACf,UACA,QACA,SACC;AACD,KAAI,SAAS,aAAa,SAAS,IAAI,CACtC,OAAM,IAAI,MAAM,mCAAmC;AAGpD,QAAO,SAAS,iBAAiB,QAAQ,SAAS,YAAY"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ImageSnapshotResult, LoadImageSnapshotResultsCommand } from "../../shared/commands.types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client/actions/load_image_snapshot_results_action.d.ts
|
|
4
|
+
declare function loadImageSnapshotResultsAction(commands: LoadImageSnapshotResultsCommand, taskId: string): Promise<ImageSnapshotResult[]>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { loadImageSnapshotResultsAction };
|
|
7
|
+
//# sourceMappingURL=load_image_snapshot_results_action.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load_image_snapshot_results_action.d.mts","names":[],"sources":["../../../src/client/actions/load_image_snapshot_results_action.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,8BAAA,WAAyC,kDAA+C,QAAhB,mBAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/client/actions/load_image_snapshot_results_action.ts
|
|
2
|
+
function loadImageSnapshotResultsAction(commands, taskId) {
|
|
3
|
+
return commands.loadImageSnapshotResults(taskId);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
export { loadImageSnapshotResultsAction };
|
|
8
|
+
//# sourceMappingURL=load_image_snapshot_results_action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load_image_snapshot_results_action.mjs","names":[],"sources":["../../../src/client/actions/load_image_snapshot_results_action.ts"],"sourcesContent":["import type { LoadImageSnapshotResultsCommand } from '../../shared/commands.types.ts'\n\nexport function loadImageSnapshotResultsAction(commands: LoadImageSnapshotResultsCommand, taskId: string) {\n\treturn commands.loadImageSnapshotResults(taskId)\n}\n"],"mappings":";AAEA,SAAgB,+BAA+B,UAA2C,QAAgB;AACzG,QAAO,SAAS,yBAAyB,OAAO"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ToMatchImageSnapshotOptions } from "../../shared/types.mjs";
|
|
2
|
+
import { ImageSnapshotNextIndexCommand, PrepareImageSnapshotComparisonCommand } from "../../shared/commands.types.mjs";
|
|
3
|
+
import { BrowserCommands } from "vitest/browser";
|
|
4
|
+
|
|
5
|
+
//#region src/client/actions/match_image_snapshot_action.d.ts
|
|
6
|
+
declare function matchImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, subject: any, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { matchImageSnapshotAction };
|
|
9
|
+
//# sourceMappingURL=match_image_snapshot_action.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match_image_snapshot_action.d.mts","names":[],"sources":["../../../src/client/actions/match_image_snapshot_action.ts"],"sourcesContent":[],"mappings":";;;;;iBAWsB,wBAAA,WACX,kBAAkB,wCAAwC,uEAG1D,mCAAgC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { assertSnapshotKeyWithoutDash } from "../../shared/asserts.mjs";
|
|
2
|
+
import { isBase64String } from "../../shared/base64.mjs";
|
|
3
|
+
import { convertElementToCssSelector } from "../external/browser/selector.mjs";
|
|
4
|
+
import { compareImageSnapshot } from "../snapshot/compare_image_snapshot.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/client/actions/match_image_snapshot_action.ts
|
|
7
|
+
async function matchImageSnapshotAction(commands, taskId, subject, options) {
|
|
8
|
+
assertSnapshotKeyWithoutDash(options?.snapshotKey);
|
|
9
|
+
return compareImageSnapshot(commands, taskId, await commands.prepareImageSnapshotComparison(taskId, parseImageSnapshotSubject(subject), options), options);
|
|
10
|
+
}
|
|
11
|
+
function parseImageSnapshotSubject(subject) {
|
|
12
|
+
if (subject instanceof Element) return convertElementToCssSelector(subject);
|
|
13
|
+
if (subject?.["selector"]) return subject["selector"];
|
|
14
|
+
if (isBase64String(subject)) return subject;
|
|
15
|
+
throw new Error(`'toMatchImageSnapshot()' expects the subject to be an element, locator, or image encoded in base64 string, but got: ${subject}`);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { matchImageSnapshotAction };
|
|
20
|
+
//# sourceMappingURL=match_image_snapshot_action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match_image_snapshot_action.mjs","names":[],"sources":["../../../src/client/actions/match_image_snapshot_action.ts"],"sourcesContent":["import type { BrowserCommands } from 'vitest/browser'\nimport { assertSnapshotKeyWithoutDash } from '../../shared/asserts.ts'\nimport { isBase64String } from '../../shared/base64.ts'\nimport type {\n\tImageSnapshotNextIndexCommand,\n\tPrepareImageSnapshotComparisonCommand,\n} from '../../shared/commands.types.ts'\nimport type { ToMatchImageSnapshotOptions } from '../../shared/types.ts'\nimport { convertElementToCssSelector } from '../external/browser/selector.ts'\nimport { compareImageSnapshot } from '../snapshot/compare_image_snapshot.ts'\n\nexport async function matchImageSnapshotAction(\n\tcommands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand,\n\ttaskId: string,\n\tsubject: any,\n\toptions?: ToMatchImageSnapshotOptions<any>,\n) {\n\tassertSnapshotKeyWithoutDash(options?.snapshotKey)\n\n\tconst info = await commands.prepareImageSnapshotComparison(taskId, parseImageSnapshotSubject(subject), options)\n\n\treturn compareImageSnapshot(commands, taskId, info, options)\n}\n\nfunction parseImageSnapshotSubject(subject: any) {\n\tif (subject instanceof Element) return convertElementToCssSelector(subject)\n\tif (subject?.['selector']) return subject['selector']\n\tif (isBase64String(subject)) return subject\n\tthrow new Error(\n\t\t`'toMatchImageSnapshot()' expects the subject to be an element, locator, or image encoded in base64 string, but got: ${subject}`,\n\t)\n}\n"],"mappings":";;;;;;AAWA,eAAsB,yBACrB,UACA,QACA,SACA,SACC;AACD,8BAA6B,SAAS,YAAY;AAIlD,QAAO,qBAAqB,UAAU,QAFzB,MAAM,SAAS,+BAA+B,QAAQ,0BAA0B,QAAQ,EAAE,QAAQ,EAE3D,QAAQ;;AAG7D,SAAS,0BAA0B,SAAc;AAChD,KAAI,mBAAmB,QAAS,QAAO,4BAA4B,QAAQ;AAC3E,KAAI,UAAU,YAAa,QAAO,QAAQ;AAC1C,KAAI,eAAe,QAAQ,CAAE,QAAO;AACpC,OAAM,IAAI,MACT,uHAAuH,UACvH"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ToMatchImageSnapshotOptions } from "../../shared/types.mjs";
|
|
2
|
+
import { ImageSnapshotNextIndexCommand, PrepareImageSnapshotComparisonCommand } from "../../shared/commands.types.mjs";
|
|
3
|
+
import { BrowserCommands } from "vitest/browser";
|
|
4
|
+
|
|
5
|
+
//#region src/client/actions/match_page_image_snapshot_action.d.ts
|
|
6
|
+
declare function matchPageImageSnapshotAction(commands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand, taskId: string, options?: ToMatchImageSnapshotOptions<any>): Promise<void>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { matchPageImageSnapshotAction };
|
|
9
|
+
//# sourceMappingURL=match_page_image_snapshot_action.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match_page_image_snapshot_action.d.mts","names":[],"sources":["../../../src/client/actions/match_page_image_snapshot_action.ts"],"sourcesContent":[],"mappings":";;;;;iBASsB,4BAAA,WACX,kBAAkB,wCAAwC,yDAE1D,mCAAgC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { assertSnapshotKeyWithoutDash } from "../../shared/asserts.mjs";
|
|
2
|
+
import { compareImageSnapshot } from "../snapshot/compare_image_snapshot.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/client/actions/match_page_image_snapshot_action.ts
|
|
5
|
+
async function matchPageImageSnapshotAction(commands, taskId, options) {
|
|
6
|
+
assertSnapshotKeyWithoutDash(options?.snapshotKey);
|
|
7
|
+
const info = await commands.preparePageImageSnapshotComparison(taskId, options);
|
|
8
|
+
if (!info) return;
|
|
9
|
+
return compareImageSnapshot(commands, taskId, info, options);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { matchPageImageSnapshotAction };
|
|
14
|
+
//# sourceMappingURL=match_page_image_snapshot_action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match_page_image_snapshot_action.mjs","names":[],"sources":["../../../src/client/actions/match_page_image_snapshot_action.ts"],"sourcesContent":["import type { BrowserCommands } from 'vitest/browser'\nimport { assertSnapshotKeyWithoutDash } from '../../shared/asserts.ts'\nimport type {\n\tImageSnapshotNextIndexCommand,\n\tPrepareImageSnapshotComparisonCommand,\n} from '../../shared/commands.types.ts'\nimport type { ToMatchImageSnapshotOptions } from '../../shared/types.ts'\nimport { compareImageSnapshot } from '../snapshot/compare_image_snapshot.ts'\n\nexport async function matchPageImageSnapshotAction(\n\tcommands: BrowserCommands & PrepareImageSnapshotComparisonCommand & ImageSnapshotNextIndexCommand,\n\ttaskId: string,\n\toptions?: ToMatchImageSnapshotOptions<any>,\n) {\n\tassertSnapshotKeyWithoutDash(options?.snapshotKey)\n\n\tconst info = await commands.preparePageImageSnapshotComparison(taskId, options)\n\n\tif (!info) return\n\n\treturn compareImageSnapshot(commands, taskId, info, options)\n}\n"],"mappings":";;;;AASA,eAAsB,6BACrB,UACA,QACA,SACC;AACD,8BAA6B,SAAS,YAAY;CAElD,MAAM,OAAO,MAAM,SAAS,mCAAmC,QAAQ,QAAQ;AAE/E,KAAI,CAAC,KAAM;AAEX,QAAO,qBAAqB,UAAU,QAAQ,MAAM,QAAQ"}
|
|
@@ -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/expect/_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/expect/_ctx.ts"],"sourcesContent":["import { commands } from 'vitest/browser'\nimport { getCurrentTest } from '../external/vitest/vitest_suite_proxy.ts'\n\nexport const ctx = {\n\tcommands,\n\tgetCurrentTest,\n\t__test__reset() {\n\t\tctx.getCurrentTest = getCurrentTest\n\t},\n}\n"],"mappings":";;;;AAGA,MAAa,MAAM;CAClB;CACA;CACA,gBAAgB;AACf,MAAI,iBAAiB;;CAEtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ImageSnapshotMatcher } from "./to_match_image_snapshot.types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client/expect/augment.d.ts
|
|
4
|
+
declare global {
|
|
5
|
+
namespace jest {
|
|
6
|
+
interface Matchers<R, T> extends ImageSnapshotMatcher {}
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=augment.d.ts.map
|
|
10
|
+
//# sourceMappingURL=augment.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augment.d.mts","names":[],"sources":["../../../src/client/expect/augment.ts"],"sourcesContent":[],"mappings":";;;;;IAA8E,UAAA,QAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAK3C,oBAL2C,CAAA,CAAA;EAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expectation_result.d.mts","names":[],"sources":["../../../src/client/expect/expectation_result.ts"],"sourcesContent":[],"mappings":";;;cAEa,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expectation_result.mjs","names":[],"sources":["../../../src/client/expect/expectation_result.ts"],"sourcesContent":["import type { SyncExpectationResult } from '@vitest/expect'\n\nexport const success: SyncExpectationResult = {\n\tpass: true,\n\t/* v8 ignore next */\n\tmessage: () => '',\n}\n"],"mappings":";AAEA,MAAa,UAAiC;CAC7C,MAAM;CAEN,eAAe;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./augment.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend.mjs","names":[],"sources":["../../../src/client/expect/extend.ts"],"sourcesContent":["import { expect } from 'vitest'\nimport { toMatchImageSnapshot } from './to_match_image_snapshot.ts'\nimport './augment.ts'\n\nexpect.extend({ toMatchImageSnapshot })\n"],"mappings":";;;;AAIA,OAAO,OAAO,EAAE,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { matchImageSnapshotAction } from "../actions/match_image_snapshot_action.mjs";
|
|
2
|
+
import { success } from "./expectation_result.mjs";
|
|
3
|
+
import { toTaskId } from "../task/task_id.mjs";
|
|
4
|
+
import { ctx } from "./_ctx.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/client/expect/to_match_image_snapshot.ts
|
|
7
|
+
function toMatchImageSnapshot(subject, options) {
|
|
8
|
+
const test = ctx.getCurrentTest();
|
|
9
|
+
if (!test) throw new Error("`toMatchImageSnapshot()` must be called in a test.");
|
|
10
|
+
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.");
|
|
11
|
+
return matchImageSnapshotAction(ctx.commands, toTaskId(test), subject, options).then(() => success);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { toMatchImageSnapshot };
|
|
16
|
+
//# sourceMappingURL=to_match_image_snapshot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_match_image_snapshot.mjs","names":[],"sources":["../../../src/client/expect/to_match_image_snapshot.ts"],"sourcesContent":["import type { AsyncExpectationResult } from '@vitest/expect'\nimport type { ToMatchImageSnapshotOptions } from '../../shared/types.ts'\nimport { matchImageSnapshotAction } from '../actions/match_image_snapshot_action.ts'\nimport { toTaskId } from '../task/task_id.ts'\nimport { ctx } from './_ctx.ts'\nimport { success } from './expectation_result.ts'\n\nexport function toMatchImageSnapshot(\n\t/**\n\t * The element or locator to take the snapshot of,\n\t * or the base64 value of the image to compare against.\n\t */\n\tsubject: any,\n\toptions?: ToMatchImageSnapshotOptions | undefined,\n): AsyncExpectationResult {\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 matchImageSnapshotAction(ctx.commands, toTaskId(test), subject, options).then(() => success)\n}\n"],"mappings":";;;;;;AAOA,SAAgB,qBAKf,SACA,SACyB;CACzB,MAAM,OAAO,IAAI,gBAAgB;AACjC,KAAI,CAAC,KACJ,OAAM,IAAI,MAAM,qDAAqD;AAGtE,KAAI,KAAK,WACR,OAAM,IAAI,MACT,uKAEA;AAGF,QAAO,yBAAyB,IAAI,UAAU,SAAS,KAAK,EAAE,SAAS,QAAQ,CAAC,WAAW,QAAQ"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComparisonMethod, ToMatchImageSnapshotOptions } from "../../shared/types.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/client/expect/to_match_image_snapshot.types.d.ts
|
|
4
4
|
interface ImageSnapshotMatcher {
|
|
5
5
|
toMatchImageSnapshot<M extends ComparisonMethod>(options?: ToMatchImageSnapshotOptions<M> | undefined): Promise<void>;
|
|
6
6
|
}
|
|
7
7
|
//#endregion
|
|
8
|
-
export { ImageSnapshotMatcher
|
|
9
|
-
//# sourceMappingURL=to_match_image_snapshot.types
|
|
8
|
+
export { ImageSnapshotMatcher };
|
|
9
|
+
//# sourceMappingURL=to_match_image_snapshot.types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_match_image_snapshot.types.d.mts","names":[],"sources":["../../../src/client/expect/to_match_image_snapshot.types.ts"],"sourcesContent":[],"mappings":";;;UAEiB,oBAAA;iCACe,4BAA4B,4BAA4B,iBAAiB;AADzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has_render_content.mjs","names":[],"sources":["../../../../src/client/external/browser/has_render_content.ts"],"sourcesContent":["export function hasRenderContent() {\n\treturn document.body.childElementCount > 0\n}\n"],"mappings":";AAAA,SAAgB,mBAAmB;AAClC,QAAO,SAAS,KAAK,oBAAoB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/client/external/browser/image_data.ts
|
|
2
|
+
function toImageData(base64) {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
const img = new Image();
|
|
5
|
+
img.src = `data:image/png;base64,${base64}`;
|
|
6
|
+
img.onload = () => {
|
|
7
|
+
const canvas = document.createElement("canvas");
|
|
8
|
+
canvas.width = img.width;
|
|
9
|
+
canvas.height = img.height;
|
|
10
|
+
const ctx = canvas.getContext("2d");
|
|
11
|
+
ctx.drawImage(img, 0, 0);
|
|
12
|
+
resolve(ctx.getImageData(0, 0, canvas.width, canvas.height));
|
|
13
|
+
};
|
|
14
|
+
img.onerror = () => {
|
|
15
|
+
reject(/* @__PURE__ */ new Error("Failed to load image"));
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async function toDataURL(imageData) {
|
|
20
|
+
const canvas = document.createElement("canvas");
|
|
21
|
+
canvas.width = imageData.width;
|
|
22
|
+
canvas.height = imageData.height;
|
|
23
|
+
canvas.getContext("2d").putImageData(imageData, 0, 0);
|
|
24
|
+
return new Promise((resolve) => {
|
|
25
|
+
canvas.toBlob((blob) => {
|
|
26
|
+
const reader = new FileReader();
|
|
27
|
+
reader.onload = () => {
|
|
28
|
+
resolve(reader.result);
|
|
29
|
+
};
|
|
30
|
+
reader.readAsDataURL(blob);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { toDataURL, toImageData };
|
|
37
|
+
//# sourceMappingURL=image_data.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image_data.mjs","names":[],"sources":["../../../../src/client/external/browser/image_data.ts"],"sourcesContent":["export function toImageData(base64: string) {\n\treturn new Promise<ImageData>((resolve, reject) => {\n\t\tconst img = new Image()\n\t\timg.src = `data:image/png;base64,${base64}`\n\n\t\timg.onload = () => {\n\t\t\tconst canvas = document.createElement('canvas')\n\t\t\tcanvas.width = img.width\n\t\t\tcanvas.height = img.height\n\t\t\tconst ctx = canvas.getContext('2d')!\n\t\t\tctx.drawImage(img, 0, 0)\n\t\t\tresolve(ctx.getImageData(0, 0, canvas.width, canvas.height))\n\t\t}\n\n\t\timg.onerror = () => {\n\t\t\treject(new Error('Failed to load image'))\n\t\t}\n\t})\n}\n\nexport async function toDataURL(imageData: ImageData) {\n\tconst canvas = document.createElement('canvas')\n\tcanvas.width = imageData.width\n\tcanvas.height = imageData.height\n\tconst ctx = canvas.getContext('2d')!\n\tctx.putImageData(imageData, 0, 0)\n\treturn new Promise<string>((resolve) => {\n\t\tcanvas.toBlob((blob) => {\n\t\t\tconst reader = new FileReader()\n\t\t\treader.onload = () => {\n\t\t\t\tresolve(reader.result as string)\n\t\t\t}\n\t\t\treader.readAsDataURL(blob!)\n\t\t})\n\t})\n}\n"],"mappings":";AAAA,SAAgB,YAAY,QAAgB;AAC3C,QAAO,IAAI,SAAoB,SAAS,WAAW;EAClD,MAAM,MAAM,IAAI,OAAO;AACvB,MAAI,MAAM,yBAAyB;AAEnC,MAAI,eAAe;GAClB,MAAM,SAAS,SAAS,cAAc,SAAS;AAC/C,UAAO,QAAQ,IAAI;AACnB,UAAO,SAAS,IAAI;GACpB,MAAM,MAAM,OAAO,WAAW,KAAK;AACnC,OAAI,UAAU,KAAK,GAAG,EAAE;AACxB,WAAQ,IAAI,aAAa,GAAG,GAAG,OAAO,OAAO,OAAO,OAAO,CAAC;;AAG7D,MAAI,gBAAgB;AACnB,0BAAO,IAAI,MAAM,uBAAuB,CAAC;;GAEzC;;AAGH,eAAsB,UAAU,WAAsB;CACrD,MAAM,SAAS,SAAS,cAAc,SAAS;AAC/C,QAAO,QAAQ,UAAU;AACzB,QAAO,SAAS,UAAU;AAE1B,CADY,OAAO,WAAW,KAAK,CAC/B,aAAa,WAAW,GAAG,EAAE;AACjC,QAAO,IAAI,SAAiB,YAAY;AACvC,SAAO,QAAQ,SAAS;GACvB,MAAM,SAAS,IAAI,YAAY;AAC/B,UAAO,eAAe;AACrB,YAAQ,OAAO,OAAiB;;AAEjC,UAAO,cAAc,KAAM;IAC1B;GACD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { isSameSize } from "../../../shared/is_same_size.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/client/external/browser/image_resizer.ts
|
|
4
|
+
const createImageResizer = ({ width, height }) => (image) => {
|
|
5
|
+
if (isSameSize(image, {
|
|
6
|
+
width,
|
|
7
|
+
height
|
|
8
|
+
})) return image;
|
|
9
|
+
const inArea = (x, y) => y <= image.height && x <= image.width;
|
|
10
|
+
const data = new Uint8ClampedArray(width * height * 4);
|
|
11
|
+
const result = new ImageData(data, width, height, { colorSpace: image.colorSpace });
|
|
12
|
+
for (let y = 0; y < height; y++) for (let x = 0; x < width; x++) {
|
|
13
|
+
const idx = width * y + x << 2;
|
|
14
|
+
if (inArea(x, y)) {
|
|
15
|
+
const old = image.width * y + x << 2;
|
|
16
|
+
result.data[idx] = image.data[old];
|
|
17
|
+
result.data[idx + 1] = image.data[old + 1];
|
|
18
|
+
result.data[idx + 2] = image.data[old + 2];
|
|
19
|
+
result.data[idx + 3] = image.data[old + 3];
|
|
20
|
+
} else {
|
|
21
|
+
result.data[idx] = 0;
|
|
22
|
+
result.data[idx + 1] = 0;
|
|
23
|
+
result.data[idx + 2] = 0;
|
|
24
|
+
result.data[idx + 3] = 64;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { createImageResizer };
|
|
32
|
+
//# sourceMappingURL=image_resizer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image_resizer.mjs","names":[],"sources":["../../../../src/client/external/browser/image_resizer.ts"],"sourcesContent":["import { isSameSize } from '../../../shared/is_same_size.ts'\n\nexport const createImageResizer =\n\t({ width, height }: { width: number; height: number }) =>\n\t(image: ImageData) => {\n\t\tif (isSameSize(image, { width, height })) return image\n\n\t\tconst inArea = (x: number, y: number) => y <= image.height && x <= image.width\n\n\t\tconst data = new Uint8ClampedArray(width * height * 4)\n\t\tconst result = new ImageData(data, width, height, { colorSpace: image.colorSpace })\n\n\t\tfor (let y = 0; y < height; y++) {\n\t\t\tfor (let x = 0; x < width; x++) {\n\t\t\t\tconst idx = (width * y + x) << 2\n\t\t\t\tif (inArea(x, y)) {\n\t\t\t\t\tconst old = (image.width * y + x) << 2\n\t\t\t\t\tresult.data[idx] = image.data[old]!\n\t\t\t\t\tresult.data[idx + 1] = image.data[old + 1]!\n\t\t\t\t\tresult.data[idx + 2] = image.data[old + 2]!\n\t\t\t\t\tresult.data[idx + 3] = image.data[old + 3]!\n\t\t\t\t} else {\n\t\t\t\t\tresult.data[idx] = 0\n\t\t\t\t\tresult.data[idx + 1] = 0\n\t\t\t\t\tresult.data[idx + 2] = 0\n\t\t\t\t\tresult.data[idx + 3] = 64\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n\n// slower\nexport const createImageResizer2 =\n\t({ width, height }: { width: number; height: number }) =>\n\t(image: ImageData) => {\n\t\tif (isSameSize(image, { width, height })) return image\n\n\t\tconst inArea = (x: number, y: number) => y <= image.height && x <= image.width\n\n\t\tconst data = new Uint8ClampedArray(width * height * 4)\n\t\tconst result = new ImageData(data, width, height, { colorSpace: image.colorSpace })\n\n\t\tconst copyBytes = image.width * 4\n\t\tfor (let y = 0; y < height; y++) {\n\t\t\tresult.data.set(image.data.slice(y * image.width, copyBytes), y * width * 4)\n\t\t\tfor (let x = image.width; x < width; x++) {\n\t\t\t\tconst idx = (width * y + x) << 2\n\t\t\t\tif (!inArea(x, y)) {\n\t\t\t\t\tresult.data[idx] = 0\n\t\t\t\t\tresult.data[idx + 1] = 0\n\t\t\t\t\tresult.data[idx + 2] = 0\n\t\t\t\t\tresult.data[idx + 3] = 64\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n"],"mappings":";;;AAEA,MAAa,sBACX,EAAE,OAAO,cACT,UAAqB;AACrB,KAAI,WAAW,OAAO;EAAE;EAAO;EAAQ,CAAC,CAAE,QAAO;CAEjD,MAAM,UAAU,GAAW,MAAc,KAAK,MAAM,UAAU,KAAK,MAAM;CAEzE,MAAM,OAAO,IAAI,kBAAkB,QAAQ,SAAS,EAAE;CACtD,MAAM,SAAS,IAAI,UAAU,MAAM,OAAO,QAAQ,EAAE,YAAY,MAAM,YAAY,CAAC;AAEnF,MAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,IAC3B,MAAK,IAAI,IAAI,GAAG,IAAI,OAAO,KAAK;EAC/B,MAAM,MAAO,QAAQ,IAAI,KAAM;AAC/B,MAAI,OAAO,GAAG,EAAE,EAAE;GACjB,MAAM,MAAO,MAAM,QAAQ,IAAI,KAAM;AACrC,UAAO,KAAK,OAAO,MAAM,KAAK;AAC9B,UAAO,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AACxC,UAAO,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AACxC,UAAO,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;SAClC;AACN,UAAO,KAAK,OAAO;AACnB,UAAO,KAAK,MAAM,KAAK;AACvB,UAAO,KAAK,MAAM,KAAK;AACvB,UAAO,KAAK,MAAM,KAAK;;;AAK1B,QAAO"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
//#region src/client/external/browser/selector.ts
|
|
2
|
+
/**
|
|
3
|
+
* Most of the code in this file is copied from Vitest.
|
|
4
|
+
*
|
|
5
|
+
* @see https://github.com/vitest-dev/vitest/blob/main/packages/browser/src/client/utils.ts
|
|
6
|
+
*/
|
|
7
|
+
function convertElementToCssSelector(element) {
|
|
8
|
+
if (!element || !(element instanceof Element)) throw new Error(`Expected DOM element to be an instance of Element, received ${typeof element}`);
|
|
9
|
+
return getUniqueCssSelector(element);
|
|
10
|
+
}
|
|
11
|
+
function escapeIdForCSSSelector(id) {
|
|
12
|
+
return id.split("").map((char) => {
|
|
13
|
+
const code = char.charCodeAt(0);
|
|
14
|
+
if (char === " " || char === "#" || char === "." || char === ":" || char === "[" || char === "]" || char === ">" || char === "+" || char === "~" || char === "\\") return `\\${char}`;
|
|
15
|
+
if (code >= 65536) return `\\${code.toString(16).toUpperCase().padStart(6, "0")} `;
|
|
16
|
+
if (code < 32 || code === 127) return `\\${code.toString(16).toUpperCase().padStart(2, "0")} `;
|
|
17
|
+
if (code >= 128) return `\\${code.toString(16).toUpperCase().padStart(2, "0")} `;
|
|
18
|
+
return char;
|
|
19
|
+
}).join("");
|
|
20
|
+
}
|
|
21
|
+
function getUniqueCssSelector(el) {
|
|
22
|
+
const path = [];
|
|
23
|
+
let parent;
|
|
24
|
+
let hasShadowRoot = false;
|
|
25
|
+
while (parent = getParent(el)) {
|
|
26
|
+
if (parent.shadowRoot) hasShadowRoot = true;
|
|
27
|
+
const tag = el.tagName;
|
|
28
|
+
if (el.id) path.push(`#${escapeIdForCSSSelector(el.id)}`);
|
|
29
|
+
else if (!el.nextElementSibling && !el.previousElementSibling) path.push(tag.toLowerCase());
|
|
30
|
+
else {
|
|
31
|
+
let index = 0;
|
|
32
|
+
let sameTagSiblings = 0;
|
|
33
|
+
let elementIndex = 0;
|
|
34
|
+
for (const sibling of parent.children) {
|
|
35
|
+
index++;
|
|
36
|
+
if (sibling.tagName === tag) sameTagSiblings++;
|
|
37
|
+
if (sibling === el) elementIndex = index;
|
|
38
|
+
}
|
|
39
|
+
if (sameTagSiblings > 1) path.push(`${tag.toLowerCase()}:nth-child(${elementIndex})`);
|
|
40
|
+
else path.push(tag.toLowerCase());
|
|
41
|
+
}
|
|
42
|
+
el = parent;
|
|
43
|
+
}
|
|
44
|
+
return `${getBrowserState().provider === "webdriverio" && hasShadowRoot ? ">>>" : ""}${path.reverse().join(" > ")}`;
|
|
45
|
+
}
|
|
46
|
+
function getParent(el) {
|
|
47
|
+
const parent = el.parentNode;
|
|
48
|
+
if (parent instanceof ShadowRoot) return parent.host;
|
|
49
|
+
return parent;
|
|
50
|
+
}
|
|
51
|
+
function getBrowserState() {
|
|
52
|
+
return window.__vitest_browser_runner__;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { convertElementToCssSelector };
|
|
57
|
+
//# sourceMappingURL=selector.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector.mjs","names":[],"sources":["../../../../src/client/external/browser/selector.ts"],"sourcesContent":["/**\n * Most of the code in this file is copied from Vitest.\n *\n * @see https://github.com/vitest-dev/vitest/blob/main/packages/browser/src/client/utils.ts\n */\n\nexport function convertElementToCssSelector(element: Element) {\n\tif (!element || !(element instanceof Element)) {\n\t\tthrow new Error(`Expected DOM element to be an instance of Element, received ${typeof element}`)\n\t}\n\n\treturn getUniqueCssSelector(element)\n}\n\nfunction escapeIdForCSSSelector(id: string) {\n\treturn id\n\t\t.split('')\n\t\t.map((char) => {\n\t\t\tconst code = char.charCodeAt(0)\n\n\t\t\tif (\n\t\t\t\tchar === ' ' ||\n\t\t\t\tchar === '#' ||\n\t\t\t\tchar === '.' ||\n\t\t\t\tchar === ':' ||\n\t\t\t\tchar === '[' ||\n\t\t\t\tchar === ']' ||\n\t\t\t\tchar === '>' ||\n\t\t\t\tchar === '+' ||\n\t\t\t\tchar === '~' ||\n\t\t\t\tchar === '\\\\'\n\t\t\t) {\n\t\t\t\t// Escape common special characters with backslashes\n\t\t\t\treturn `\\\\${char}`\n\t\t\t}\n\t\t\tif (code >= 0x10000) {\n\t\t\t\t// Unicode escape for characters outside the BMP\n\t\t\t\treturn `\\\\${code.toString(16).toUpperCase().padStart(6, '0')} `\n\t\t\t}\n\t\t\tif (code < 0x20 || code === 0x7f) {\n\t\t\t\t// Non-printable ASCII characters (0x00-0x1F and 0x7F) are escaped\n\t\t\t\treturn `\\\\${code.toString(16).toUpperCase().padStart(2, '0')} `\n\t\t\t}\n\t\t\tif (code >= 0x80) {\n\t\t\t\t// Non-ASCII characters (0x80 and above) are escaped\n\t\t\t\treturn `\\\\${code.toString(16).toUpperCase().padStart(2, '0')} `\n\t\t\t}\n\t\t\t// Allowable characters are used directly\n\t\t\treturn char\n\t\t})\n\t\t.join('')\n}\n\nfunction getUniqueCssSelector(el: Element) {\n\tconst path = []\n\tlet parent: null | ParentNode\n\tlet hasShadowRoot = false\n\t// eslint-disable-next-line no-cond-assign\n\twhile ((parent = getParent(el))) {\n\t\tif ((parent as Element).shadowRoot) {\n\t\t\thasShadowRoot = true\n\t\t}\n\n\t\tconst tag = el.tagName\n\t\tif (el.id) {\n\t\t\tpath.push(`#${escapeIdForCSSSelector(el.id)}`)\n\t\t} else if (!el.nextElementSibling && !el.previousElementSibling) {\n\t\t\tpath.push(tag.toLowerCase())\n\t\t} else {\n\t\t\tlet index = 0\n\t\t\tlet sameTagSiblings = 0\n\t\t\tlet elementIndex = 0\n\n\t\t\tfor (const sibling of parent.children) {\n\t\t\t\tindex++\n\t\t\t\tif (sibling.tagName === tag) {\n\t\t\t\t\tsameTagSiblings++\n\t\t\t\t}\n\t\t\t\tif (sibling === el) {\n\t\t\t\t\telementIndex = index\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (sameTagSiblings > 1) {\n\t\t\t\tpath.push(`${tag.toLowerCase()}:nth-child(${elementIndex})`)\n\t\t\t} else {\n\t\t\t\tpath.push(tag.toLowerCase())\n\t\t\t}\n\t\t}\n\t\tel = parent as Element\n\t}\n\treturn `${getBrowserState().provider === 'webdriverio' && hasShadowRoot ? '>>>' : ''}${path.reverse().join(' > ')}`\n}\n\nfunction getParent(el: Element) {\n\tconst parent = el.parentNode\n\tif (parent instanceof ShadowRoot) {\n\t\treturn parent.host\n\t}\n\treturn parent\n}\nfunction getBrowserState(): { provider: 'webdriverio' | 'playwright' } {\n\t// @ts-expect-error not typed global\n\treturn window.__vitest_browser_runner__\n}\n"],"mappings":";;;;;;AAMA,SAAgB,4BAA4B,SAAkB;AAC7D,KAAI,CAAC,WAAW,EAAE,mBAAmB,SACpC,OAAM,IAAI,MAAM,+DAA+D,OAAO,UAAU;AAGjG,QAAO,qBAAqB,QAAQ;;AAGrC,SAAS,uBAAuB,IAAY;AAC3C,QAAO,GACL,MAAM,GAAG,CACT,KAAK,SAAS;EACd,MAAM,OAAO,KAAK,WAAW,EAAE;AAE/B,MACC,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,OACT,SAAS,KAGT,QAAO,KAAK;AAEb,MAAI,QAAQ,MAEX,QAAO,KAAK,KAAK,SAAS,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;AAE9D,MAAI,OAAO,MAAQ,SAAS,IAE3B,QAAO,KAAK,KAAK,SAAS,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;AAE9D,MAAI,QAAQ,IAEX,QAAO,KAAK,KAAK,SAAS,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;AAG9D,SAAO;GACN,CACD,KAAK,GAAG;;AAGX,SAAS,qBAAqB,IAAa;CAC1C,MAAM,OAAO,EAAE;CACf,IAAI;CACJ,IAAI,gBAAgB;AAEpB,QAAQ,SAAS,UAAU,GAAG,EAAG;AAChC,MAAK,OAAmB,WACvB,iBAAgB;EAGjB,MAAM,MAAM,GAAG;AACf,MAAI,GAAG,GACN,MAAK,KAAK,IAAI,uBAAuB,GAAG,GAAG,GAAG;WACpC,CAAC,GAAG,sBAAsB,CAAC,GAAG,uBACxC,MAAK,KAAK,IAAI,aAAa,CAAC;OACtB;GACN,IAAI,QAAQ;GACZ,IAAI,kBAAkB;GACtB,IAAI,eAAe;AAEnB,QAAK,MAAM,WAAW,OAAO,UAAU;AACtC;AACA,QAAI,QAAQ,YAAY,IACvB;AAED,QAAI,YAAY,GACf,gBAAe;;AAIjB,OAAI,kBAAkB,EACrB,MAAK,KAAK,GAAG,IAAI,aAAa,CAAC,aAAa,aAAa,GAAG;OAE5D,MAAK,KAAK,IAAI,aAAa,CAAC;;AAG9B,OAAK;;AAEN,QAAO,GAAG,iBAAiB,CAAC,aAAa,iBAAiB,gBAAgB,QAAQ,KAAK,KAAK,SAAS,CAAC,KAAK,MAAM;;AAGlH,SAAS,UAAU,IAAa;CAC/B,MAAM,SAAS,GAAG;AAClB,KAAI,kBAAkB,WACrB,QAAO,OAAO;AAEf,QAAO;;AAER,SAAS,kBAA8D;AAEtE,QAAO,OAAO"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/client/external/vitest/vitest_browser_context_proxy.ts
|
|
2
|
+
let ctx;
|
|
3
|
+
if (globalThis.__vitest_browser__) import("vitest/browser").then((m) => {
|
|
4
|
+
ctx = m;
|
|
5
|
+
});
|
|
6
|
+
const server = new Proxy({}, { get(target, prop) {
|
|
7
|
+
return target[prop] ?? (ctx?.server)[prop];
|
|
8
|
+
} });
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { server };
|
|
12
|
+
//# sourceMappingURL=vitest_browser_context_proxy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest_browser_context_proxy.mjs","names":[],"sources":["../../../../src/client/external/vitest/vitest_browser_context_proxy.ts"],"sourcesContent":["import type { SerializedConfig } from 'vitest'\nimport type { BrowserCommands, Platform } from 'vitest/browser'\n\nlet ctx: Awaited<typeof import('vitest/browser')>\n\nif ((globalThis as any).__vitest_browser__) {\n\timport('vitest/browser').then((m) => {\n\t\tctx = m\n\t})\n}\n\nexport const server = new Proxy<{\n\t/**\n\t * Platform the Vitest server is running on.\n\t * The same as calling `process.platform` on the server.\n\t */\n\tplatform: Platform\n\t/**\n\t * Runtime version of the Vitest server.\n\t * The same as calling `process.version` on the server.\n\t */\n\tversion: string\n\t/**\n\t * Name of the browser provider.\n\t */\n\tprovider: string\n\t/**\n\t * Name of the current browser.\n\t */\n\tbrowser: string\n\t/**\n\t * Available commands for the browser.\n\t * @see {@link https://vitest.dev/guide/browser/commands}\n\t */\n\tcommands: BrowserCommands\n\t/**\n\t * Serialized test config.\n\t */\n\tconfig: SerializedConfig\n}>({} as any, {\n\tget(target, prop) {\n\t\treturn (target as any)[prop] ?? (ctx?.server as any)[prop]\n\t},\n})\n"],"mappings":";AAGA,IAAI;AAEJ,IAAK,WAAmB,mBACvB,QAAO,kBAAkB,MAAM,MAAM;AACpC,OAAM;EACL;AAGH,MAAa,SAAS,IAAI,MA4BvB,EAAE,EAAS,EACb,IAAI,QAAQ,MAAM;AACjB,QAAQ,OAAe,UAAU,KAAK,QAAe;GAEtD,CAAC"}
|