playwright-reselect
Version:
A tiny helper to wright test once and reuse the logic anywhere
8 lines • 3.09 kB
JavaScript
;var d=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var v=(e,t)=>{for(var o in t)d(e,o,{get:t[o],enumerable:!0})},w=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of L(t))!K.call(e,s)&&s!==o&&d(e,s,{get:()=>t[s],enumerable:!(r=N(t,s))||r.enumerable});return e};var E=e=>w(d({},"__esModule",{value:!0}),e);var R={};v(R,{defineBranch:()=>A,defineTree:()=>k,reselectTree:()=>m});module.exports=E(R);var D=require("@playwright/test");function h(e){let t=(0,D.expect)(e);function o(s,a){let n={};for(let i of Object.keys(s)){let c=s[i];typeof c=="function"?n[i]=async(...p)=>(await c.apply(s,p),a):typeof c=="object"&&c!==null&&(n[i]=o(c,a))}return n}let r={};return Object.assign(r,o(t,r)),r}function T(e){return Object.assign(e,{debug:g(e),expectChain:()=>h(e)})}function j(e){let t=[],o=/(>)(<)(\/*)/g;e=e.replace(o,`$1
$2$3`);let r=0,s=" ";return e.split(`
`).forEach(a=>{let n=a.trim();n.match(/^<\/\w/)&&(r=Math.max(r-1,0)),t.push(s.repeat(r)+n),n.match(/^<\w[^>]*[^\/]>$/)&&r++}),t.join(`
`)}function x(e,t=[]){let o=new Map;if(e.children)for(let r of Object.keys(e.children)){let s=e.children[r];s.alias&&o.set(s.alias,{path:[...t,r],descriptor:s}),x(s,[...t,r]).forEach((n,i)=>{o.set(i,n)})}return o}function g(e){return async()=>{try{let t=await e.evaluate(r=>r.outerHTML),o=`
[DEBUG] ${e.toString()}
${j(t)}
`;return console.log(o),o}catch(t){return console.error("[DEBUG ERROR] Could not read innerHTML:",t),t}}}function y(e,t,o){let r=e.locator._selector,s=x(t),a={get:()=>{let n=e.page.locator(e.locator._selector);return e.locator=e.page.locator(":root"),T(n)},debug:g(e.locator),expectChain:()=>h(e.locator),skipToAlias:()=>{let n={};return s.forEach((i,c)=>{n[c]=()=>{e.locator=e.page.locator(r);let p=t;for(let f of i.path){if(!p.children||!p.children[f])throw new Error(`Invalid path to alias "${c}"`);p=p.children[f],p.build(e)}return y(e,i.descriptor,[...o||[],...i.path])}}),n}};if(t.children)for(let n of Object.keys(t.children)){let i=t.children[n];a[n]=()=>{i.build(e);let c=o?[...o,n]:[n];return y(e,i,c)}}if(t.custom)for(let n of Object.keys(t.custom)){let i=t.custom[n];a[n]=(...c)=>{let p=i(e,...c);return e.locator=e.page.locator(":root"),T(p)}}return Object.assign(a,{inspect:()=>(console.log("[INSPECT] "+e.locator._selector),a)}),a}function F(e){let t={};for(let o of Object.keys(e.descriptor)){let r=e.descriptor[o];t[o]=()=>(r.build(e),y(e,r,[o]))}return t}var l=class{constructor(t,o){if(!o)throw new Error("new TestLocatorResolver(page, descriptor): descriptor is required");if(!t)throw new Error("new TestLocatorResolver(page, descriptor): page is required");this.page=t,this.descriptor=o,this.locator=t.locator(":root"),Object.assign(this,F(this))}},m=e=>t=>new l(t,e);var b=require("@playwright/test"),A=e=>e,k=e=>e,u=b.expect,C={};for(let e of Object.keys(u)){let t=u[e];typeof t=="function"&&(C[e]=async(...o)=>(await t.apply(u,o),C))}0&&(module.exports={defineBranch,defineTree,reselectTree});
//# sourceMappingURL=index.cjs.map