@vonage/vivid-test-utils 5.15.1 → 5.17.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/dom.js CHANGED
@@ -1,120 +1,110 @@
1
- import { V as u } from "./components.generated-CGHMGSPz.js";
2
- import w from "@testing-library/user-event";
3
- const n = () => new Promise((c) => {
4
- requestAnimationFrame(() => c());
5
- }), p = (c) => {
6
- const i = w.setup(), s = async (r) => {
7
- r.focus(), r.value = "", r.dispatchEvent(
8
- new InputEvent("input", { bubbles: !0, composed: !0 })
9
- );
10
- };
11
- return {
12
- querySelector: (r, t) => {
13
- const a = r.querySelector(t);
14
- if (!a)
15
- throw new Error(`Could not find element: ${t}`);
16
- return a;
17
- },
18
- enterShadow(r) {
19
- if (!r.shadowRoot)
20
- throw new Error(`Element ${r.outerHTML} does not have a shadow root`);
21
- return r.shadowRoot;
22
- },
23
- querySelectorAll: (r, t) => r ? Array.from(r.querySelectorAll(t)) : [],
24
- nth: (r, t) => {
25
- if (t < 0 || t > r.length - 1)
26
- throw new Error(
27
- `Could not find element with index "${t}". Collection only has "${r.length}" elements.`
28
- );
29
- return r[t];
30
- },
31
- userClick: async (r) => {
32
- await i.click(r), await n();
33
- },
34
- userFill: async (r, t) => {
35
- await s(r), t && await i.type(r, t), await n();
36
- },
37
- userClear: async (r) => {
38
- await s(r), await n();
39
- },
40
- userFocus: async (r) => {
41
- r.focus(), await n();
42
- },
43
- userBlur: async (r) => {
44
- r.blur(), (r.tagName === "INPUT" || r.tagName === "TEXTAREA") && r.dispatchEvent(
45
- new InputEvent("change", { bubbles: !0, composed: !0 })
46
- ), await n();
47
- },
48
- userHover: async (r) => {
49
- await i.hover(r), await n();
50
- },
51
- userDragSlider: async (r, t, a, e) => {
52
- if (a.id === "start-thumb") {
53
- const o = r;
54
- o.startAsNumber = e, o.$emit("input:start"), o.$emit("input");
55
- } else if (a.id === "end-thumb") {
56
- const o = r;
57
- o.endAsNumber = e, o.$emit("input:end"), o.$emit("input");
58
- } else {
59
- const o = r;
60
- o.valueAsNumber = e;
61
- }
62
- await n();
63
- },
64
- eval: async (r, t, a, e) => {
65
- const o = await t(r, a);
66
- await e?.(o);
67
- },
68
- waitForUpdate: async () => {
69
- await n();
70
- },
71
- expectEq: (r, t, a) => {
72
- switch (r.type) {
73
- case "eval":
74
- try {
75
- c(r.fn(r.el, r.arg)).toEqual(
76
- t
77
- );
78
- } catch (e) {
79
- throw e instanceof Error && (e.message = `${a}
80
-
81
- Original error: ${e.message}`), e;
82
- }
83
- break;
84
- case "count":
85
- c(r.el.length).toEqual(t);
86
- break;
87
- }
88
- },
89
- wrapAction: (r) => async function t(...a) {
90
- try {
91
- return await r(...a);
92
- } catch (e) {
93
- throw e instanceof Error && Error.captureStackTrace(e, t), e;
94
- }
95
- },
96
- wrapExpect: (r) => function t(...a) {
97
- try {
98
- return r(...a);
99
- } catch (e) {
100
- throw e instanceof Error && Error.captureStackTrace(e, t), e;
101
- }
102
- },
103
- wrapSelector: (r) => function t(...a) {
104
- try {
105
- return r(...a);
106
- } catch (e) {
107
- throw e instanceof Error && Error.captureStackTrace(e, t), e;
108
- }
109
- }
110
- };
111
- }, f = (c, i) => {
112
- const s = {
113
- rootLocator: i,
114
- driver: p(c)
115
- };
116
- return new u(s);
117
- };
118
- export {
119
- f as vividDOM
120
- };
1
+ import { t as e } from "./components.generated-Bs-nWVke.js";
2
+ import t from "@testing-library/user-event";
3
+ //#region src/drivers/dom.ts
4
+ var n = () => new Promise((e) => {
5
+ requestAnimationFrame(() => e());
6
+ }), r = (e) => {
7
+ let r = t.setup(), i = async (e) => {
8
+ e.focus(), e.value = "", e.dispatchEvent(new InputEvent("input", {
9
+ bubbles: !0,
10
+ composed: !0
11
+ }));
12
+ };
13
+ return {
14
+ querySelector: (e, t) => {
15
+ let n = e.querySelector(t);
16
+ if (!n) throw Error(`Could not find element: ${t}`);
17
+ return n;
18
+ },
19
+ enterShadow(e) {
20
+ if (!e.shadowRoot) throw Error(`Element ${e.outerHTML} does not have a shadow root`);
21
+ return e.shadowRoot;
22
+ },
23
+ querySelectorAll: (e, t) => e ? Array.from(e.querySelectorAll(t)) : [],
24
+ nth: (e, t) => {
25
+ if (t < 0 || t > e.length - 1) throw Error(`Could not find element with index "${t}". Collection only has "${e.length}" elements.`);
26
+ return e[t];
27
+ },
28
+ userClick: async (e) => {
29
+ await r.click(e), await n();
30
+ },
31
+ userFill: async (e, t) => {
32
+ await i(e), t && await r.type(e, t), await n();
33
+ },
34
+ userClear: async (e) => {
35
+ await i(e), await n();
36
+ },
37
+ userFocus: async (e) => {
38
+ e.focus(), await n();
39
+ },
40
+ userBlur: async (e) => {
41
+ e.blur(), (e.tagName === "INPUT" || e.tagName === "TEXTAREA") && e.dispatchEvent(new InputEvent("change", {
42
+ bubbles: !0,
43
+ composed: !0
44
+ })), await n();
45
+ },
46
+ userHover: async (e) => {
47
+ await r.hover(e), await n();
48
+ },
49
+ userDragSlider: async (e, t, r, i) => {
50
+ if (r.id === "start-thumb") {
51
+ let t = e;
52
+ t.startAsNumber = i, t.$emit("input:start"), t.$emit("input");
53
+ } else if (r.id === "end-thumb") {
54
+ let t = e;
55
+ t.endAsNumber = i, t.$emit("input:end"), t.$emit("input");
56
+ } else {
57
+ let t = e;
58
+ t.valueAsNumber = i;
59
+ }
60
+ await n();
61
+ },
62
+ eval: async (e, t, n, r) => {
63
+ let i = await t(e, n);
64
+ await r?.(i);
65
+ },
66
+ waitForUpdate: async () => {
67
+ await n();
68
+ },
69
+ expectEq: (t, n, r) => {
70
+ switch (t.type) {
71
+ case "eval":
72
+ try {
73
+ e(t.fn(t.el, t.arg)).toEqual(n);
74
+ } catch (e) {
75
+ throw e instanceof Error && (e.message = `${r}\n\nOriginal error: ${e.message}`), e;
76
+ }
77
+ break;
78
+ case "count":
79
+ e(t.el.length).toEqual(n);
80
+ break;
81
+ }
82
+ },
83
+ wrapAction: (e) => async function t(...n) {
84
+ try {
85
+ return await e(...n);
86
+ } catch (e) {
87
+ throw e instanceof Error && Error.captureStackTrace(e, t), e;
88
+ }
89
+ },
90
+ wrapExpect: (e) => function t(...n) {
91
+ try {
92
+ return e(...n);
93
+ } catch (e) {
94
+ throw e instanceof Error && Error.captureStackTrace(e, t), e;
95
+ }
96
+ },
97
+ wrapSelector: (e) => function t(...n) {
98
+ try {
99
+ return e(...n);
100
+ } catch (e) {
101
+ throw e instanceof Error && Error.captureStackTrace(e, t), e;
102
+ }
103
+ }
104
+ };
105
+ }, i = (t, n) => new e({
106
+ rootLocator: n,
107
+ driver: r(t)
108
+ });
109
+ //#endregion
110
+ export { i as vividDOM };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@vonage/vivid");function e(){HTMLDialogElement.prototype.showModal=function(){this.open=!0,this.setAttribute("open","")},HTMLDialogElement.prototype.close=function(){this.open=!1,this.removeAttribute("open")},HTMLElement.prototype.hidePopover=function(){},HTMLElement.prototype.showPopover=function(){},HTMLElement.prototype.scrollIntoView=function(){},Object.defineProperty(Object.getPrototypeOf(t.VwcButtonElement).prototype,"handleUnsupportedDelegatesFocus",{set(){},get(){return()=>{}}}),window.ResizeObserver=class{constructor(){}observe(){}disconnect(){}}}e();window.HTMLElement.prototype.scrollIntoView=function(){};window.HTMLElement.prototype.scrollTo=function(){};exports.setDialogPolyfill=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./dom.cjs`);let e=require(`@vonage/vivid`);function t(){HTMLDialogElement.prototype.showModal=function(){this.open=!0,this.setAttribute(`open`,``)},HTMLDialogElement.prototype.close=function(){this.open=!1,this.removeAttribute(`open`)},HTMLElement.prototype.hidePopover=function(){},HTMLElement.prototype.showPopover=function(){},HTMLElement.prototype.scrollIntoView=function(){},Object.defineProperty(Object.getPrototypeOf(e.VwcButtonElement).prototype,`handleUnsupportedDelegatesFocus`,{set(){},get(){return()=>void 0}}),window.ResizeObserver=class{constructor(){}observe(){}disconnect(){}}}t(),window.HTMLElement.prototype.scrollIntoView=function(){},window.HTMLElement.prototype.scrollTo=function(){},exports.setDialogPolyfill=t;
@@ -1,37 +1,21 @@
1
1
  import { VwcButtonElement as e } from "@vonage/vivid";
2
+ //#region src/jsdom-polyfill.ts
2
3
  function t() {
3
- HTMLDialogElement.prototype.showModal = function() {
4
- this.open = !0, this.setAttribute("open", "");
5
- }, HTMLDialogElement.prototype.close = function() {
6
- this.open = !1, this.removeAttribute("open");
7
- }, HTMLElement.prototype.hidePopover = function() {
8
- }, HTMLElement.prototype.showPopover = function() {
9
- }, HTMLElement.prototype.scrollIntoView = function() {
10
- }, Object.defineProperty(
11
- Object.getPrototypeOf(e).prototype,
12
- "handleUnsupportedDelegatesFocus",
13
- {
14
- set() {
15
- },
16
- get() {
17
- return () => {
18
- };
19
- }
20
- }
21
- ), window.ResizeObserver = class {
22
- constructor() {
23
- }
24
- observe() {
25
- }
26
- disconnect() {
27
- }
28
- };
4
+ HTMLDialogElement.prototype.showModal = function() {
5
+ this.open = !0, this.setAttribute("open", "");
6
+ }, HTMLDialogElement.prototype.close = function() {
7
+ this.open = !1, this.removeAttribute("open");
8
+ }, HTMLElement.prototype.hidePopover = function() {}, HTMLElement.prototype.showPopover = function() {}, HTMLElement.prototype.scrollIntoView = function() {}, Object.defineProperty(Object.getPrototypeOf(e).prototype, "handleUnsupportedDelegatesFocus", {
9
+ set() {},
10
+ get() {
11
+ return () => void 0;
12
+ }
13
+ }), window.ResizeObserver = class {
14
+ constructor() {}
15
+ observe() {}
16
+ disconnect() {}
17
+ };
29
18
  }
30
- t();
31
- window.HTMLElement.prototype.scrollIntoView = function() {
32
- };
33
- window.HTMLElement.prototype.scrollTo = function() {
34
- };
35
- export {
36
- t as setDialogPolyfill
37
- };
19
+ t(), window.HTMLElement.prototype.scrollIntoView = function() {}, window.HTMLElement.prototype.scrollTo = function() {};
20
+ //#endregion
21
+ export { t as setDialogPolyfill };
@@ -1,3 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./components.generated-DfmxVXP1.cjs"),w=c=>({querySelector:(r,t)=>r.locator(t),enterShadow:r=>r,querySelectorAll:(r,t)=>r.locator(t),nth:(r,t)=>r.nth(t),userClick:r=>r.click(),userFill:(r,t)=>r.fill(t),userClear:r=>r.clear(),userFocus:r=>r.focus(),userBlur:r=>r.blur(),userHover:r=>r.hover(),userDragSlider:async(r,t,a,e)=>{const n=await a.getAttribute("id");await r.evaluate((o,[u,s])=>{if(u==="start-thumb"){const i=o;i.startAsNumber=s,i.$emit("input:start"),i.$emit("input")}else if(u==="end-thumb"){const i=o;i.endAsNumber=s,i.$emit("input:end"),i.$emit("input")}else{const i=o;i.valueAsNumber=s}},[n,e])},eval:async(r,t,a,e)=>{const n=await r.evaluate(t,a);await e?.(n)},waitForUpdate:async r=>{await r.evaluate(()=>new Promise(t=>{requestAnimationFrame(()=>t())}))},expectEq:async(r,t,a)=>{switch(r.type){case"eval":try{await c(async()=>c(await r.el.evaluate(r.fn,r.arg)).toEqual(t)).toPass()}catch(e){throw e instanceof Error&&(e.message=`${a}
2
-
3
- Original error: ${e.message}`),e}break;case"count":await c(r.el).toHaveCount(t);break}},wrapAction:r=>async function t(...a){try{return await r(...a)}catch(e){throw e instanceof Error&&Error.captureStackTrace(e,t),e}},wrapExpect:r=>async function t(...a){try{return await r(...a)}catch(e){throw e instanceof Error&&Error.captureStackTrace(e,t),e}},wrapSelector:r=>r}),p=(c,r)=>{const t={rootLocator:c,driver:w(r)};return new l.VividWrapper(t)};exports.vividPlaywright=p;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./components.generated-DG8EN6bP.cjs`);var t=e=>({querySelector:(e,t)=>e.locator(t),enterShadow:e=>e,querySelectorAll:(e,t)=>e.locator(t),nth:(e,t)=>e.nth(t),userClick:e=>e.click(),userFill:(e,t)=>e.fill(t),userClear:e=>e.clear(),userFocus:e=>e.focus(),userBlur:e=>e.blur(),userHover:e=>e.hover(),userDragSlider:async(e,t,n,r)=>{let i=await n.getAttribute(`id`);await e.evaluate((e,[t,n])=>{if(t===`start-thumb`){let t=e;t.startAsNumber=n,t.$emit(`input:start`),t.$emit(`input`)}else if(t===`end-thumb`){let t=e;t.endAsNumber=n,t.$emit(`input:end`),t.$emit(`input`)}else{let t=e;t.valueAsNumber=n}},[i,r])},eval:async(e,t,n,r)=>{let i=await e.evaluate(t,n);await r?.(i)},waitForUpdate:async e=>{await e.evaluate(()=>new Promise(e=>{requestAnimationFrame(()=>e())}))},expectEq:async(t,n,r)=>{switch(t.type){case`eval`:try{await e(async()=>e(await t.el.evaluate(t.fn,t.arg)).toEqual(n)).toPass()}catch(e){throw e instanceof Error&&(e.message=`${r}\n\nOriginal error: ${e.message}`),e}break;case`count`:await e(t.el).toHaveCount(n);break}},wrapAction:e=>async function t(...n){try{return await e(...n)}catch(e){throw e instanceof Error&&Error.captureStackTrace(e,t),e}},wrapExpect:e=>async function t(...n){try{return await e(...n)}catch(e){throw e instanceof Error&&Error.captureStackTrace(e,t),e}},wrapSelector:e=>e}),n=(n,r)=>new e.t({rootLocator:n,driver:t(r)});exports.vividPlaywright=n;
@@ -1,87 +1,72 @@
1
- import { V as l } from "./components.generated-CGHMGSPz.js";
2
- const w = (c) => ({
3
- querySelector: (r, t) => r.locator(t),
4
- enterShadow: (r) => r,
5
- querySelectorAll: (r, t) => r.locator(t),
6
- nth: (r, t) => r.nth(t),
7
- userClick: (r) => r.click(),
8
- userFill: (r, t) => r.fill(t),
9
- userClear: (r) => r.clear(),
10
- userFocus: (r) => r.focus(),
11
- userBlur: (r) => r.blur(),
12
- userHover: (r) => r.hover(),
13
- userDragSlider: async (r, t, a, e) => {
14
- const o = await a.getAttribute("id");
15
- await r.evaluate(
16
- (n, [u, s]) => {
17
- if (u === "start-thumb") {
18
- const i = n;
19
- i.startAsNumber = s, i.$emit("input:start"), i.$emit("input");
20
- } else if (u === "end-thumb") {
21
- const i = n;
22
- i.endAsNumber = s, i.$emit("input:end"), i.$emit("input");
23
- } else {
24
- const i = n;
25
- i.valueAsNumber = s;
26
- }
27
- },
28
- [o, e]
29
- );
30
- },
31
- eval: async (r, t, a, e) => {
32
- const o = await r.evaluate(t, a);
33
- await e?.(o);
34
- },
35
- waitForUpdate: async (r) => {
36
- await r.evaluate(() => new Promise((t) => {
37
- requestAnimationFrame(() => t());
38
- }));
39
- },
40
- expectEq: async (r, t, a) => {
41
- switch (r.type) {
42
- case "eval":
43
- try {
44
- await c(
45
- async () => c(
46
- await r.el.evaluate(
47
- r.fn,
48
- r.arg
49
- )
50
- ).toEqual(t)
51
- ).toPass();
52
- } catch (e) {
53
- throw e instanceof Error && (e.message = `${a}
54
-
55
- Original error: ${e.message}`), e;
56
- }
57
- break;
58
- case "count":
59
- await c(r.el).toHaveCount(t);
60
- break;
61
- }
62
- },
63
- wrapAction: (r) => async function t(...a) {
64
- try {
65
- return await r(...a);
66
- } catch (e) {
67
- throw e instanceof Error && Error.captureStackTrace(e, t), e;
68
- }
69
- },
70
- wrapExpect: (r) => async function t(...a) {
71
- try {
72
- return await r(...a);
73
- } catch (e) {
74
- throw e instanceof Error && Error.captureStackTrace(e, t), e;
75
- }
76
- },
77
- wrapSelector: (r) => r
78
- }), h = (c, r) => {
79
- const t = {
80
- rootLocator: c,
81
- driver: w(r)
82
- };
83
- return new l(t);
84
- };
85
- export {
86
- h as vividPlaywright
87
- };
1
+ import { t as e } from "./components.generated-Bs-nWVke.js";
2
+ //#region src/drivers/playwright.ts
3
+ var t = (e) => ({
4
+ querySelector: (e, t) => e.locator(t),
5
+ enterShadow: (e) => e,
6
+ querySelectorAll: (e, t) => e.locator(t),
7
+ nth: (e, t) => e.nth(t),
8
+ userClick: (e) => e.click(),
9
+ userFill: (e, t) => e.fill(t),
10
+ userClear: (e) => e.clear(),
11
+ userFocus: (e) => e.focus(),
12
+ userBlur: (e) => e.blur(),
13
+ userHover: (e) => e.hover(),
14
+ userDragSlider: async (e, t, n, r) => {
15
+ let i = await n.getAttribute("id");
16
+ await e.evaluate((e, [t, n]) => {
17
+ if (t === "start-thumb") {
18
+ let t = e;
19
+ t.startAsNumber = n, t.$emit("input:start"), t.$emit("input");
20
+ } else if (t === "end-thumb") {
21
+ let t = e;
22
+ t.endAsNumber = n, t.$emit("input:end"), t.$emit("input");
23
+ } else {
24
+ let t = e;
25
+ t.valueAsNumber = n;
26
+ }
27
+ }, [i, r]);
28
+ },
29
+ eval: async (e, t, n, r) => {
30
+ let i = await e.evaluate(t, n);
31
+ await r?.(i);
32
+ },
33
+ waitForUpdate: async (e) => {
34
+ await e.evaluate(() => new Promise((e) => {
35
+ requestAnimationFrame(() => e());
36
+ }));
37
+ },
38
+ expectEq: async (t, n, r) => {
39
+ switch (t.type) {
40
+ case "eval":
41
+ try {
42
+ await e(async () => e(await t.el.evaluate(t.fn, t.arg)).toEqual(n)).toPass();
43
+ } catch (e) {
44
+ throw e instanceof Error && (e.message = `${r}\n\nOriginal error: ${e.message}`), e;
45
+ }
46
+ break;
47
+ case "count":
48
+ await e(t.el).toHaveCount(n);
49
+ break;
50
+ }
51
+ },
52
+ wrapAction: (e) => async function t(...n) {
53
+ try {
54
+ return await e(...n);
55
+ } catch (e) {
56
+ throw e instanceof Error && Error.captureStackTrace(e, t), e;
57
+ }
58
+ },
59
+ wrapExpect: (e) => async function t(...n) {
60
+ try {
61
+ return await e(...n);
62
+ } catch (e) {
63
+ throw e instanceof Error && Error.captureStackTrace(e, t), e;
64
+ }
65
+ },
66
+ wrapSelector: (e) => e
67
+ }), n = (n, r) => new e({
68
+ rootLocator: n,
69
+ driver: t(r)
70
+ });
71
+ //#endregion
72
+ export { n as vividPlaywright };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vonage/vivid-test-utils",
3
- "version": "5.15.1",
3
+ "version": "5.17.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./dom": {
@@ -30,26 +30,28 @@
30
30
  "dependencies": {
31
31
  "@testing-library/user-event": "^14.6.1",
32
32
  "change-case": "^5.4.4",
33
- "@vonage/vivid": "^5.15.1"
33
+ "@vonage/vivid": "^5.17.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@playwright/test": "1.57.0",
37
+ "@types/node": "^20.19.25",
37
38
  "@vitejs/plugin-vue": "^6.0.0",
38
39
  "@vue/test-utils": "^2.4.6",
39
40
  "concurrently": "^9.2.1",
40
- "cypress": "^14.5.4",
41
+ "cypress": "^15.11.0",
41
42
  "tsx": "^4.21.0",
42
- "vite": "^7.0.0",
43
- "vitest": "^3.2.4",
43
+ "vite": "^8.0.0",
44
+ "vitest": "^4.1.0",
44
45
  "vue": "^3.5.29",
45
46
  "wait-on": "^8.0.5",
46
- "@repo/eslint-config": "1.0.0",
47
+ "@repo/metadata-extractor": "1.0.0",
47
48
  "@repo/shared": "1.0.0",
49
+ "@repo/eslint-config": "1.0.0",
50
+ "@repo/tools": "1.0.0",
48
51
  "@repo/typescript-config": "1.0.0",
49
52
  "@repo/vitest-config": "1.0.0",
50
53
  "@repo/wrapper-gen": "1.0.0",
51
- "@repo/metadata-extractor": "1.0.0",
52
- "@vonage/vivid-vue": "5.15.1"
54
+ "@vonage/vivid-vue": "5.17.0"
53
55
  },
54
56
  "scripts": {
55
57
  "prebuild": "tsx scripts/codegen.ts",
@@ -61,6 +63,7 @@
61
63
  "lint": "eslint . --max-warnings=0",
62
64
  "lint:fix": "eslint . --max-warnings=0 --fix",
63
65
  "test": "vitest run",
66
+ "test:coverage": "vitest run --coverage && relativize-coverage .",
64
67
  "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.tools.json"
65
68
  }
66
69
  }