wrapito 10.0.0 → 11.0.0-beta1

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/index.js CHANGED
@@ -1,9 +1,9 @@
1
- "use strict";var ce=Object.create;var E=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var de=(e,t)=>{for(var n in t)E(e,n,{get:t[n],enumerable:!0})},$=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ue(t))!me.call(e,o)&&o!==n&&E(e,o,{get:()=>t[o],enumerable:!(s=pe(t,o))||s.enumerable});return e};var M=(e,t,n)=>(n=e!=null?ce(le(e)):{},$(t||!e||!e.__esModule?E(n,"default",{value:e,enumerable:!0}):n,e)),he=e=>$(E({},"__esModule",{value:!0}),e);var Ve={};de(Ve,{assertions:()=>Ge,configure:()=>fe,getConfig:()=>d,matchers:()=>Ge,mount:()=>F,wrap:()=>Oe});module.exports=he(Ve);var Y=M(require("react"),1);var f=M(require("chalk"),1);var A=M(require("object-hash"),1);var D=require("react-dom"),F=e=>{let t=document.body.appendChild(document.createElement("div"));return(0,D.render)(e,t),t},v={defaultHost:"",extend:{},mount:F,changeRoute:e=>window.history.replaceState(null,"",e)};function fe(e){v={...v,...e}}var d=()=>({...v});var U=e=>t=>{let{method:n="GET",path:s,host:o=d().defaultHost,requestBody:r=void 0,catchParams:a}=t,l=o+s,p=!d().handleQueryParams||a,u=(0,A.default)({url:p?l:l.split("?")[0],method:n.toUpperCase(),requestBody:r}),i;return"_bodyInit"in e&&e._bodyInit!==void 0&&(i=JSON.parse(e._bodyInit)),(0,A.default)({url:p?e.url:e.url.split("?")[0],method:e.method,requestBody:i})===u};function P(e,t){if(!e)throw new Error(t)}function w(e,t){return typeof t===e}function ge(e){return e instanceof Promise}function B(e,t,n){Object.defineProperty(e,t,n)}function k(e,t,n){Object.defineProperty(e,t,{value:n})}var T=Symbol.for("tinyspy:spy"),ye=new Set,Re=e=>{e.called=!1,e.callCount=0,e.calls=[],e.results=[],e.next=[]},be=e=>(B(e,T,{value:{reset:()=>Re(e[T])}}),e[T]),I=e=>e[T]||be(e);function we(e){P(w("function",e)||w("undefined",e),"cannot spy on a non-function value");let t=function(...s){let o=I(t);o.called=!0,o.callCount++,o.calls.push(s);let r=o.next.shift();if(r){o.results.push(r);let[u,i]=r;if(u==="ok")return i;throw i}let a,l="ok";if(o.impl)try{new.target?a=Reflect.construct(o.impl,s,new.target):a=o.impl.apply(this,s),l="ok"}catch(u){throw a=u,l="error",o.results.push([l,u]),u}let p=[l,a];if(ge(a)){let u=a.then(i=>p[1]=i).catch(i=>{throw p[0]="error",p[1]=i,i});Object.assign(u,a),a=u}return o.results.push(p),a};k(t,"_isMockFunction",!0),k(t,"length",e?e.length:0),k(t,"name",e&&e.name||"spy");let n=I(t);return n.reset(),n.impl=e,t}var L=(e,t)=>Object.getOwnPropertyDescriptor(e,t),_=(e,t)=>{t!=null&&typeof t=="function"&&t.prototype!=null&&Object.setPrototypeOf(e.prototype,t.prototype)};function G(e,t,n){P(!w("undefined",e),"spyOn could not find an object to spy upon"),P(w("object",e)||w("function",e),"cannot spyOn on a primitive value");let[s,o]=(()=>{if(!w("object",t))return[t,"value"];if("getter"in t&&"setter"in t)throw new Error("cannot spy on both getter and setter");if("getter"in t)return[t.getter,"get"];if("setter"in t)return[t.setter,"set"];throw new Error("specify getter or setter to spy on")})(),r=L(e,s),a=Object.getPrototypeOf(e),l=a&&L(a,s),p=r||l;P(p||s in e,`${String(s)} does not exist`);let u=!1;o==="value"&&p&&!p.value&&p.get&&(o="get",u=!0,n=p.get());let i;p?i=p[o]:o!=="value"?i=()=>e[s]:i=e[s],n||(n=i);let m=we(n);o==="value"&&_(m,i);let c=b=>{let{value:W,...q}=p||{configurable:!0,writable:!0};o!=="value"&&delete q.writable,q[o]=b,B(e,s,q)},R=()=>p?B(e,s,p):c(i),h=m[T];return k(h,"restore",R),k(h,"getOriginal",()=>u?i():i),k(h,"willCall",b=>(h.impl=b,m)),c(u?()=>(_(m,n),m):m),ye.add(m),m}var xe=new Set,Te=0;function Ee(e){let t=e,n,s=[],o=[],r=I(e),a={get calls(){return r.calls},get instances(){return s},get invocationCallOrder(){return o},get results(){return r.results.map(([c,R])=>({type:c==="error"?"throw":"return",value:R}))},get lastCall(){return r.calls[r.calls.length-1]}},l=[],p=!1;function u(...c){return s.push(this),o.push(++Te),(p?n:l.shift()||n||r.getOriginal()||(()=>{})).apply(this,c)}let i=t.name;t.getMockName=()=>i||"vi.fn()",t.mockName=c=>(i=c,t),t.mockClear=()=>(r.reset(),s=[],o=[],t),t.mockReset=()=>(t.mockClear(),n=()=>{},l=[],t),t.mockRestore=()=>(t.mockReset(),r.restore(),n=void 0,t),t.getMockImplementation=()=>n,t.mockImplementation=c=>(n=c,r.willCall(u),t),t.mockImplementationOnce=c=>(l.push(c),t);function m(c,R){let h=n;n=c,r.willCall(u),p=!0;let b=()=>{n=h,p=!1},W=R();return W instanceof Promise?W.then(()=>(b(),t)):(b(),t)}return t.withImplementation=m,t.mockReturnThis=()=>t.mockImplementation(function(){return this}),t.mockReturnValue=c=>t.mockImplementation(()=>c),t.mockReturnValueOnce=c=>t.mockImplementationOnce(()=>c),t.mockResolvedValue=c=>t.mockImplementation(()=>Promise.resolve(c)),t.mockResolvedValueOnce=c=>t.mockImplementationOnce(()=>Promise.resolve(c)),t.mockRejectedValue=c=>t.mockImplementation(()=>Promise.reject(c)),t.mockRejectedValueOnce=c=>t.mockImplementationOnce(()=>Promise.reject(c)),Object.defineProperty(t,"mock",{get:()=>a}),r.willCall(u),xe.add(t),t}var O=e=>Ee(G({spy:e||(()=>{})},"spy"));beforeEach(()=>{global.window.fetch=O()});afterEach(()=>{global.window.fetch.mockReset()});var Me=async()=>{let e={json:()=>Promise.resolve(),status:200,ok:!0,headers:new Headers({"Content-Type":"application/json"})};return Promise.resolve(e)},V=async e=>{let{responseBody:t,status:n=200,headers:s={},delay:o}=e,r={json:()=>Promise.resolve(t),status:n,ok:n>=200&&n<=299,headers:new Headers({"Content-Type":"application/json",...s})};return o?new Promise(a=>setTimeout(()=>a(r),o)):Promise.resolve(r)},Pe=e=>console.warn(`
1
+ "use strict";var pe=Object.create;var E=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var me=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var he=(e,t)=>{for(var n in t)E(e,n,{get:t[n],enumerable:!0})},$=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of le(t))!de.call(e,s)&&s!==n&&E(e,s,{get:()=>t[s],enumerable:!(o=ue(t,s))||o.enumerable});return e};var M=(e,t,n)=>(n=e!=null?pe(me(e)):{},$(t||!e||!e.__esModule?E(n,"default",{value:e,enumerable:!0}):n,e)),fe=e=>$(E({},"__esModule",{value:!0}),e);var Je={};he(Je,{assertions:()=>Qe,configure:()=>ge,getConfig:()=>d,matchers:()=>Qe,mount:()=>F,wrap:()=>We});module.exports=fe(Je);var Y=M(require("react"),1),z=require("react");var f=M(require("chalk"),1);var A=M(require("object-hash"),1);var D=require("react-dom/client"),F=e=>{let t=document.body.appendChild(document.createElement("div"));return(0,D.createRoot)(t).render(e),t},v={defaultHost:"",extend:{},mount:F,changeRoute:e=>window.history.replaceState(null,"",e)};function ge(e){v={...v,...e}}var d=()=>({...v});var U=e=>t=>{let{method:n="GET",path:o,host:s=d().defaultHost,requestBody:r=void 0,catchParams:a}=t,l=s+o,p=!d().handleQueryParams||a,u=(0,A.default)({url:p?l:l.split("?")[0],method:n.toUpperCase(),requestBody:r}),i;return"_bodyInit"in e&&e._bodyInit!==void 0&&(i=JSON.parse(e._bodyInit)),(0,A.default)({url:p?e.url:e.url.split("?")[0],method:e.method,requestBody:i})===u};function P(e,t){if(!e)throw new Error(t)}function w(e,t){return typeof t===e}function ye(e){return e instanceof Promise}function B(e,t,n){Object.defineProperty(e,t,n)}function k(e,t,n){Object.defineProperty(e,t,{value:n})}var T=Symbol.for("tinyspy:spy"),Re=new Set,be=e=>{e.called=!1,e.callCount=0,e.calls=[],e.results=[],e.next=[]},we=e=>(B(e,T,{value:{reset:()=>be(e[T])}}),e[T]),I=e=>e[T]||we(e);function ke(e){P(w("function",e)||w("undefined",e),"cannot spy on a non-function value");let t=function(...o){let s=I(t);s.called=!0,s.callCount++,s.calls.push(o);let r=s.next.shift();if(r){s.results.push(r);let[u,i]=r;if(u==="ok")return i;throw i}let a,l="ok";if(s.impl)try{new.target?a=Reflect.construct(s.impl,o,new.target):a=s.impl.apply(this,o),l="ok"}catch(u){throw a=u,l="error",s.results.push([l,u]),u}let p=[l,a];if(ye(a)){let u=a.then(i=>p[1]=i).catch(i=>{throw p[0]="error",p[1]=i,i});Object.assign(u,a),a=u}return s.results.push(p),a};k(t,"_isMockFunction",!0),k(t,"length",e?e.length:0),k(t,"name",e&&e.name||"spy");let n=I(t);return n.reset(),n.impl=e,t}var L=(e,t)=>Object.getOwnPropertyDescriptor(e,t),_=(e,t)=>{t!=null&&typeof t=="function"&&t.prototype!=null&&Object.setPrototypeOf(e.prototype,t.prototype)};function G(e,t,n){P(!w("undefined",e),"spyOn could not find an object to spy upon"),P(w("object",e)||w("function",e),"cannot spyOn on a primitive value");let[o,s]=(()=>{if(!w("object",t))return[t,"value"];if("getter"in t&&"setter"in t)throw new Error("cannot spy on both getter and setter");if("getter"in t)return[t.getter,"get"];if("setter"in t)return[t.setter,"set"];throw new Error("specify getter or setter to spy on")})(),r=L(e,o),a=Object.getPrototypeOf(e),l=a&&L(a,o),p=r||l;P(p||o in e,`${String(o)} does not exist`);let u=!1;s==="value"&&p&&!p.value&&p.get&&(s="get",u=!0,n=p.get());let i;p?i=p[s]:s!=="value"?i=()=>e[o]:i=e[o],n||(n=i);let m=ke(n);s==="value"&&_(m,i);let c=b=>{let{value:C,...q}=p||{configurable:!0,writable:!0};s!=="value"&&delete q.writable,q[s]=b,B(e,o,q)},R=()=>p?B(e,o,p):c(i),h=m[T];return k(h,"restore",R),k(h,"getOriginal",()=>u?i():i),k(h,"willCall",b=>(h.impl=b,m)),c(u?()=>(_(m,n),m):m),Re.add(m),m}var Te=new Set,Ee=0;function Me(e){let t=e,n,o=[],s=[],r=I(e),a={get calls(){return r.calls},get instances(){return o},get invocationCallOrder(){return s},get results(){return r.results.map(([c,R])=>({type:c==="error"?"throw":"return",value:R}))},get lastCall(){return r.calls[r.calls.length-1]}},l=[],p=!1;function u(...c){return o.push(this),s.push(++Ee),(p?n:l.shift()||n||r.getOriginal()||(()=>{})).apply(this,c)}let i=t.name;t.getMockName=()=>i||"vi.fn()",t.mockName=c=>(i=c,t),t.mockClear=()=>(r.reset(),o=[],s=[],t),t.mockReset=()=>(t.mockClear(),n=()=>{},l=[],t),t.mockRestore=()=>(t.mockReset(),r.restore(),n=void 0,t),t.getMockImplementation=()=>n,t.mockImplementation=c=>(n=c,r.willCall(u),t),t.mockImplementationOnce=c=>(l.push(c),t);function m(c,R){let h=n;n=c,r.willCall(u),p=!0;let b=()=>{n=h,p=!1},C=R();return C instanceof Promise?C.then(()=>(b(),t)):(b(),t)}return t.withImplementation=m,t.mockReturnThis=()=>t.mockImplementation(function(){return this}),t.mockReturnValue=c=>t.mockImplementation(()=>c),t.mockReturnValueOnce=c=>t.mockImplementationOnce(()=>c),t.mockResolvedValue=c=>t.mockImplementation(()=>Promise.resolve(c)),t.mockResolvedValueOnce=c=>t.mockImplementationOnce(()=>Promise.resolve(c)),t.mockRejectedValue=c=>t.mockImplementation(()=>Promise.reject(c)),t.mockRejectedValueOnce=c=>t.mockImplementationOnce(()=>Promise.reject(c)),Object.defineProperty(t,"mock",{get:()=>a}),r.willCall(u),Te.add(t),t}var O=e=>Me(G({spy:e||(()=>{})},"spy"));beforeEach(()=>{global.window.fetch=O()});afterEach(()=>{global.window.fetch.mockReset()});var Pe=async()=>{let e={json:()=>Promise.resolve(),status:200,ok:!0,headers:new Headers({"Content-Type":"application/json"})};return Promise.resolve(e)},V=async e=>{let{responseBody:t,status:n=200,headers:o={},delay:s}=e,r={json:()=>Promise.resolve(t),status:n,ok:n>=200&&n<=299,headers:new Headers({"Content-Type":"application/json",...o})};return s?new Promise(a=>setTimeout(()=>a(r),s)):Promise.resolve(r)},Ie=e=>console.warn(`
2
2
  ${f.default.white.bold.bgRed("wrapito")} ${f.default.redBright.bold("cannot find any mock matching:")}
3
3
  ${f.default.greenBright(`URL: ${e.url}`)}
4
4
  ${f.default.greenBright(`METHOD: ${e.method?.toLowerCase()}`)}
5
5
  ${f.default.greenBright(`REQUEST BODY: ${e._bodyInit}`)}
6
- `),Q=async(e,t,n)=>{let s=e.find(U(t));if(!s)return n&&Pe(t),Me();let{multipleResponses:o}=s;if(!o)return V(s);let r=o.find(a=>!a.hasBeenReturned);if(!r){n&&Ie(s);return}return r.hasBeenReturned=!0,V(r)},J=(e=[],t=!1)=>{global.window.fetch.mockImplementation((s,o)=>{if(typeof s=="string"){let a=new Request(s,o);return Q(e,a,t)}return Q(e,s,t)})},Ie=e=>{let t=`\u{1F32F} Wrapito: Missing response in the multipleResponses array for path ${e.path} and method ${e.method}.`,n=f.default.greenBright(t);console.warn(n)};var j,g=e=>{j={...j,...e}},y=()=>({...j});beforeEach(()=>{global.fetch=O()});afterEach(()=>{global.fetch.mockReset()});var Oe=e=>(g({Component:e,responses:[],props:{},path:"",hasPath:!1,debug:process.env.npm_config_debugRequests==="true"}),x()),x=()=>{let e=ve();return{withProps:Ae,withNetwork:Be,atPath:je,debugRequests:He,mount:Se,...e}},Ce=e=>{let t=y(),n=[...t.responses,...e];g({...t,responses:n})},We=(e,t)=>(t({addResponses:Ce},e),x()),qe=(e,t)=>{let{extend:n}=d(),s=n[t];return{...e,[t]:(...o)=>We(o,s)}},ve=()=>{let{extend:e}=d();return Object.keys(e).reduce(qe,{})},Ae=e=>{let t=y();return g({...t,props:e}),x()},Be=(e=[])=>{let t=y(),n=Array.isArray(e)?e:[e];return g({...t,responses:[...t.responses,...n]}),x()},je=(e,t)=>{let n=y();return g({...n,historyState:t,path:e,hasPath:!0}),x()},He=()=>{let e=y();return g({...e,debug:!0}),x()},Se=()=>{let{portal:e,changeRoute:t,history:n,mount:s}=d(),{Component:o,props:r,responses:a,path:l,hasPath:p,debug:u,historyState:i}=y(),m=o;return e&&Ne(e),p&&n&&(console.warn("wrapito WARNING: history is DEPRECATED. Pass a changeRoute function to the config instead."),console.warn("Read about changeRoute in: https://github.com/mercadona/wrapito#changeRoute"),n.push(l,i)),p&&!n&&t(l),J(a,u),s(Y.createElement(m,{...r}))},Ne=e=>{if(document.getElementById(e))return;let t=document.createElement("div");t.setAttribute("id",e),document.body.appendChild(t)};var z=require("jest-diff"),H=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t?.host}${e} ain't got called`:`\u{1F32F} Wrapito: ${e} ain't got called`;return{pass:!1,message:()=>n}},K=(e,t,n)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: ${e} is called ${n} times, you expected ${t} times`}),X=(e,t)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: Fetch method does not match, expected ${e} received ${t??"none"}`}),Z=(e,t)=>{let n=t.map(s=>(0,z.diff)(e,s)).join(`
6
+ `),Q=async(e,t,n)=>{let o=e.find(U(t));if(!o)return n&&Ie(t),Pe();let{multipleResponses:s}=o;if(!s)return V(o);let r=s.find(a=>!a.hasBeenReturned);if(!r){n&&Oe(o);return}return r.hasBeenReturned=!0,V(r)},J=(e=[],t=!1)=>{global.window.fetch.mockImplementation((o,s)=>{if(typeof o=="string"){let a=new Request(o,s);return Q(e,a,t)}return Q(e,o,t)})},Oe=e=>{let t=`\u{1F32F} Wrapito: Missing response in the multipleResponses array for path ${e.path} and method ${e.method}.`,n=f.default.greenBright(t);console.warn(n)};var j,g=e=>{j={...j,...e}},y=()=>({...j});beforeEach(()=>{global.fetch=O()});afterEach(()=>{global.fetch.mockReset()});var We=e=>(g({Component:e,responses:[],props:{},path:"",hasPath:!1,debug:process.env.npm_config_debugRequests==="true"}),x()),x=()=>{let e=Ae();return{withProps:Be,withNetwork:je,atPath:He,debugRequests:Se,mount:Ne,...e}},Ce=e=>{let t=y(),n=[...t.responses,...e];g({...t,responses:n})},qe=(e,t)=>(t({addResponses:Ce},e),x()),ve=(e,t)=>{let{extend:n}=d(),o=n[t];return{...e,[t]:(...s)=>qe(s,o)}},Ae=()=>{let{extend:e}=d();return Object.keys(e).reduce(ve,{})},Be=e=>{let t=y();return g({...t,props:e}),x()},je=(e=[])=>{let t=y(),n=Array.isArray(e)?e:[e];return g({...t,responses:[...t.responses,...n]}),x()},He=(e,t)=>{let n=y();return g({...n,historyState:t,path:e,hasPath:!0}),x()},Se=()=>{let e=y();return g({...e,debug:!0}),x()},Ne=()=>{let{portal:e,changeRoute:t,history:n,mount:o}=d(),{Component:s,props:r,responses:a,path:l,hasPath:p,debug:u,historyState:i}=y(),m=s;return e&&De(e),p&&n&&(console.warn("wrapito WARNING: history is DEPRECATED. Pass a changeRoute function to the config instead."),console.warn("Read about changeRoute in: https://github.com/mercadona/wrapito#changeRoute"),n.push(l,i)),p&&!n&&t(l),J(a,u),$e(Y.createElement(m,{...r}))},$e=e=>{let{mount:t}=d(),n;return(0,z.act)(()=>{n=t(e)}),n},De=e=>{if(document.getElementById(e))return;let t=document.createElement("div");t.setAttribute("id",e),document.body.appendChild(t)};var K=require("jest-diff"),H=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t?.host}${e} ain't got called`:`\u{1F32F} Wrapito: ${e} ain't got called`;return{pass:!1,message:()=>n}},X=(e,t,n)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: ${e} is called ${n} times, you expected ${t} times`}),Z=(e,t)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: Fetch method does not match, expected ${e} received ${t??"none"}`}),ee=(e,t)=>{let n=t.map(o=>(0,K.diff)(e,o)).join(`
7
7
 
8
8
  `);return{pass:!1,message:()=>`\u{1F32F} Wrapito: Fetch body does not match.
9
- ${n}`}},ee=()=>({pass:!1,message:()=>"\u{1F32F} Wrapito: Unable to find body."}),S=()=>({pass:!0,message:()=>"Test passing"}),te=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t.host}${e} is called`:`\u{1F32F} Wrapito: ${e} is called`;return{pass:!0,message:()=>n}};var ne=M(require("deep-equal"),1);var $e=()=>{let e=d().defaultHost;return e?.includes("http")?e:"https://default.com"},De=(e="",t,n)=>t.includes(n)?t:e+t,N=e=>e instanceof Request,Fe=e=>N(e)?e.url:e,C=(e,t={method:"GET"})=>fetch.mock.calls.filter(([s])=>{let o=Fe(s),r=$e(),a=new URL(o,r),l=De(t?.host,e,r),p=t?.host||r,u=new URL(l,p),i=a.pathname===u.pathname,m=a.search===u.search,c=a.host===u.host;return u.search?i&&m:t?.host?i&&c:i}),se=e=>e.flat(1).filter(N).map(t=>t.method),oe=e=>e.flat(1).filter(N).map(t=>t._bodyInit?JSON.parse(t._bodyInit):{}),re=(e,t)=>e&&!t.includes(e),ae=(e,t)=>t.map(s=>(0,ne.default)(e,s)).every(s=>s===!1),ie=e=>e.length===0;var Ue=(e,t)=>{let n=C(e);if(ie(n))return H(e);let s=se(n),o=t?.method;if(re(o,s))return X(o,s);let r=oe(n),a=t?.body;return a?ae(a,r)?Z(a,r):S():ee()},Le=(e,t={method:"GET"})=>C(e,t).length?te(e,t):H(e,t),_e=(e,t,n={method:"GET"})=>{let s=C(e,n);return s.length!==t?K(e,t,s.length):S()},Ge={toHaveBeenFetched:Le,toHaveBeenFetchedWith:Ue,toHaveBeenFetchedTimes:_e};0&&(module.exports={assertions,configure,getConfig,matchers,mount,wrap});
9
+ ${n}`}},te=()=>({pass:!1,message:()=>"\u{1F32F} Wrapito: Unable to find body."}),S=()=>({pass:!0,message:()=>"Test passing"}),ne=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t.host}${e} is called`:`\u{1F32F} Wrapito: ${e} is called`;return{pass:!0,message:()=>n}};var oe=M(require("deep-equal"),1);var Fe=()=>{let e=d().defaultHost;return e?.includes("http")?e:"https://default.com"},Ue=(e="",t,n)=>t.includes(n)?t:e+t,N=e=>e instanceof Request,Le=e=>N(e)?e.url:e,W=(e,t={method:"GET"})=>fetch.mock.calls.filter(([o])=>{let s=Le(o),r=Fe(),a=new URL(s,r),l=Ue(t?.host,e,r),p=t?.host||r,u=new URL(l,p),i=a.pathname===u.pathname,m=a.search===u.search,c=a.host===u.host;return u.search?i&&m:t?.host?i&&c:i}),se=e=>e.flat(1).filter(N).map(t=>t.method),re=e=>e.flat(1).filter(N).map(t=>t._bodyInit?JSON.parse(t._bodyInit):{}),ae=(e,t)=>e&&!t.includes(e),ie=(e,t)=>t.map(o=>(0,oe.default)(e,o)).every(o=>o===!1),ce=e=>e.length===0;var _e=(e,t)=>{let n=W(e);if(ce(n))return H(e);let o=se(n),s=t?.method;if(ae(s,o))return Z(s,o);let r=re(n),a=t?.body;return a?ie(a,r)?ee(a,r):S():te()},Ge=(e,t={method:"GET"})=>W(e,t).length?ne(e,t):H(e,t),Ve=(e,t,n={method:"GET"})=>{let o=W(e,n);return o.length!==t?X(e,t,o.length):S()},Qe={toHaveBeenFetched:Ge,toHaveBeenFetchedWith:_e,toHaveBeenFetchedTimes:Ve};0&&(module.exports={assertions,configure,getConfig,matchers,mount,wrap});
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import*as _ from"react";import k from"chalk";import H from"object-hash";import{render as te}from"react-dom";var ne=e=>{let t=document.body.appendChild(document.createElement("div"));return te(e,t),t},W={defaultHost:"",extend:{},mount:ne,changeRoute:e=>window.history.replaceState(null,"",e)};function Be(e){W={...W,...e}}var d=()=>({...W});var S=e=>t=>{let{method:n="GET",path:s,host:o=d().defaultHost,requestBody:r=void 0,catchParams:a}=t,l=o+s,p=!d().handleQueryParams||a,u=H({url:p?l:l.split("?")[0],method:n.toUpperCase(),requestBody:r}),i;return"_bodyInit"in e&&e._bodyInit!==void 0&&(i=JSON.parse(e._bodyInit)),H({url:p?e.url:e.url.split("?")[0],method:e.method,requestBody:i})===u};function E(e,t){if(!e)throw new Error(t)}function b(e,t){return typeof t===e}function se(e){return e instanceof Promise}function q(e,t,n){Object.defineProperty(e,t,n)}function w(e,t,n){Object.defineProperty(e,t,{value:n})}var T=Symbol.for("tinyspy:spy"),oe=new Set,re=e=>{e.called=!1,e.callCount=0,e.calls=[],e.results=[],e.next=[]},ae=e=>(q(e,T,{value:{reset:()=>re(e[T])}}),e[T]),M=e=>e[T]||ae(e);function ie(e){E(b("function",e)||b("undefined",e),"cannot spy on a non-function value");let t=function(...s){let o=M(t);o.called=!0,o.callCount++,o.calls.push(s);let r=o.next.shift();if(r){o.results.push(r);let[u,i]=r;if(u==="ok")return i;throw i}let a,l="ok";if(o.impl)try{new.target?a=Reflect.construct(o.impl,s,new.target):a=o.impl.apply(this,s),l="ok"}catch(u){throw a=u,l="error",o.results.push([l,u]),u}let p=[l,a];if(se(a)){let u=a.then(i=>p[1]=i).catch(i=>{throw p[0]="error",p[1]=i,i});Object.assign(u,a),a=u}return o.results.push(p),a};w(t,"_isMockFunction",!0),w(t,"length",e?e.length:0),w(t,"name",e&&e.name||"spy");let n=M(t);return n.reset(),n.impl=e,t}var N=(e,t)=>Object.getOwnPropertyDescriptor(e,t),$=(e,t)=>{t!=null&&typeof t=="function"&&t.prototype!=null&&Object.setPrototypeOf(e.prototype,t.prototype)};function D(e,t,n){E(!b("undefined",e),"spyOn could not find an object to spy upon"),E(b("object",e)||b("function",e),"cannot spyOn on a primitive value");let[s,o]=(()=>{if(!b("object",t))return[t,"value"];if("getter"in t&&"setter"in t)throw new Error("cannot spy on both getter and setter");if("getter"in t)return[t.getter,"get"];if("setter"in t)return[t.setter,"set"];throw new Error("specify getter or setter to spy on")})(),r=N(e,s),a=Object.getPrototypeOf(e),l=a&&N(a,s),p=r||l;E(p||s in e,`${String(s)} does not exist`);let u=!1;o==="value"&&p&&!p.value&&p.get&&(o="get",u=!0,n=p.get());let i;p?i=p[o]:o!=="value"?i=()=>e[s]:i=e[s],n||(n=i);let m=ie(n);o==="value"&&$(m,i);let c=R=>{let{value:O,...C}=p||{configurable:!0,writable:!0};o!=="value"&&delete C.writable,C[o]=R,q(e,s,C)},y=()=>p?q(e,s,p):c(i),h=m[T];return w(h,"restore",y),w(h,"getOriginal",()=>u?i():i),w(h,"willCall",R=>(h.impl=R,m)),c(u?()=>($(m,n),m):m),oe.add(m),m}var pe=new Set,ue=0;function le(e){let t=e,n,s=[],o=[],r=M(e),a={get calls(){return r.calls},get instances(){return s},get invocationCallOrder(){return o},get results(){return r.results.map(([c,y])=>({type:c==="error"?"throw":"return",value:y}))},get lastCall(){return r.calls[r.calls.length-1]}},l=[],p=!1;function u(...c){return s.push(this),o.push(++ue),(p?n:l.shift()||n||r.getOriginal()||(()=>{})).apply(this,c)}let i=t.name;t.getMockName=()=>i||"vi.fn()",t.mockName=c=>(i=c,t),t.mockClear=()=>(r.reset(),s=[],o=[],t),t.mockReset=()=>(t.mockClear(),n=()=>{},l=[],t),t.mockRestore=()=>(t.mockReset(),r.restore(),n=void 0,t),t.getMockImplementation=()=>n,t.mockImplementation=c=>(n=c,r.willCall(u),t),t.mockImplementationOnce=c=>(l.push(c),t);function m(c,y){let h=n;n=c,r.willCall(u),p=!0;let R=()=>{n=h,p=!1},O=y();return O instanceof Promise?O.then(()=>(R(),t)):(R(),t)}return t.withImplementation=m,t.mockReturnThis=()=>t.mockImplementation(function(){return this}),t.mockReturnValue=c=>t.mockImplementation(()=>c),t.mockReturnValueOnce=c=>t.mockImplementationOnce(()=>c),t.mockResolvedValue=c=>t.mockImplementation(()=>Promise.resolve(c)),t.mockResolvedValueOnce=c=>t.mockImplementationOnce(()=>Promise.resolve(c)),t.mockRejectedValue=c=>t.mockImplementation(()=>Promise.reject(c)),t.mockRejectedValueOnce=c=>t.mockImplementationOnce(()=>Promise.reject(c)),Object.defineProperty(t,"mock",{get:()=>a}),r.willCall(u),pe.add(t),t}var P=e=>le(D({spy:e||(()=>{})},"spy"));beforeEach(()=>{global.window.fetch=P()});afterEach(()=>{global.window.fetch.mockReset()});var me=async()=>{let e={json:()=>Promise.resolve(),status:200,ok:!0,headers:new Headers({"Content-Type":"application/json"})};return Promise.resolve(e)},F=async e=>{let{responseBody:t,status:n=200,headers:s={},delay:o}=e,r={json:()=>Promise.resolve(t),status:n,ok:n>=200&&n<=299,headers:new Headers({"Content-Type":"application/json",...s})};return o?new Promise(a=>setTimeout(()=>a(r),o)):Promise.resolve(r)},de=e=>console.warn(`
1
+ import*as _ from"react";import{act as fe}from"react";import k from"chalk";import H from"object-hash";import{createRoot as te}from"react-dom/client";var ne=e=>{let t=document.body.appendChild(document.createElement("div"));return te(t).render(e),t},C={defaultHost:"",extend:{},mount:ne,changeRoute:e=>window.history.replaceState(null,"",e)};function He(e){C={...C,...e}}var d=()=>({...C});var S=e=>t=>{let{method:n="GET",path:o,host:s=d().defaultHost,requestBody:r=void 0,catchParams:a}=t,l=s+o,p=!d().handleQueryParams||a,u=H({url:p?l:l.split("?")[0],method:n.toUpperCase(),requestBody:r}),i;return"_bodyInit"in e&&e._bodyInit!==void 0&&(i=JSON.parse(e._bodyInit)),H({url:p?e.url:e.url.split("?")[0],method:e.method,requestBody:i})===u};function E(e,t){if(!e)throw new Error(t)}function b(e,t){return typeof t===e}function oe(e){return e instanceof Promise}function q(e,t,n){Object.defineProperty(e,t,n)}function w(e,t,n){Object.defineProperty(e,t,{value:n})}var T=Symbol.for("tinyspy:spy"),se=new Set,re=e=>{e.called=!1,e.callCount=0,e.calls=[],e.results=[],e.next=[]},ae=e=>(q(e,T,{value:{reset:()=>re(e[T])}}),e[T]),M=e=>e[T]||ae(e);function ie(e){E(b("function",e)||b("undefined",e),"cannot spy on a non-function value");let t=function(...o){let s=M(t);s.called=!0,s.callCount++,s.calls.push(o);let r=s.next.shift();if(r){s.results.push(r);let[u,i]=r;if(u==="ok")return i;throw i}let a,l="ok";if(s.impl)try{new.target?a=Reflect.construct(s.impl,o,new.target):a=s.impl.apply(this,o),l="ok"}catch(u){throw a=u,l="error",s.results.push([l,u]),u}let p=[l,a];if(oe(a)){let u=a.then(i=>p[1]=i).catch(i=>{throw p[0]="error",p[1]=i,i});Object.assign(u,a),a=u}return s.results.push(p),a};w(t,"_isMockFunction",!0),w(t,"length",e?e.length:0),w(t,"name",e&&e.name||"spy");let n=M(t);return n.reset(),n.impl=e,t}var N=(e,t)=>Object.getOwnPropertyDescriptor(e,t),$=(e,t)=>{t!=null&&typeof t=="function"&&t.prototype!=null&&Object.setPrototypeOf(e.prototype,t.prototype)};function D(e,t,n){E(!b("undefined",e),"spyOn could not find an object to spy upon"),E(b("object",e)||b("function",e),"cannot spyOn on a primitive value");let[o,s]=(()=>{if(!b("object",t))return[t,"value"];if("getter"in t&&"setter"in t)throw new Error("cannot spy on both getter and setter");if("getter"in t)return[t.getter,"get"];if("setter"in t)return[t.setter,"set"];throw new Error("specify getter or setter to spy on")})(),r=N(e,o),a=Object.getPrototypeOf(e),l=a&&N(a,o),p=r||l;E(p||o in e,`${String(o)} does not exist`);let u=!1;s==="value"&&p&&!p.value&&p.get&&(s="get",u=!0,n=p.get());let i;p?i=p[s]:s!=="value"?i=()=>e[o]:i=e[o],n||(n=i);let m=ie(n);s==="value"&&$(m,i);let c=R=>{let{value:O,...W}=p||{configurable:!0,writable:!0};s!=="value"&&delete W.writable,W[s]=R,q(e,o,W)},y=()=>p?q(e,o,p):c(i),h=m[T];return w(h,"restore",y),w(h,"getOriginal",()=>u?i():i),w(h,"willCall",R=>(h.impl=R,m)),c(u?()=>($(m,n),m):m),se.add(m),m}var pe=new Set,ue=0;function le(e){let t=e,n,o=[],s=[],r=M(e),a={get calls(){return r.calls},get instances(){return o},get invocationCallOrder(){return s},get results(){return r.results.map(([c,y])=>({type:c==="error"?"throw":"return",value:y}))},get lastCall(){return r.calls[r.calls.length-1]}},l=[],p=!1;function u(...c){return o.push(this),s.push(++ue),(p?n:l.shift()||n||r.getOriginal()||(()=>{})).apply(this,c)}let i=t.name;t.getMockName=()=>i||"vi.fn()",t.mockName=c=>(i=c,t),t.mockClear=()=>(r.reset(),o=[],s=[],t),t.mockReset=()=>(t.mockClear(),n=()=>{},l=[],t),t.mockRestore=()=>(t.mockReset(),r.restore(),n=void 0,t),t.getMockImplementation=()=>n,t.mockImplementation=c=>(n=c,r.willCall(u),t),t.mockImplementationOnce=c=>(l.push(c),t);function m(c,y){let h=n;n=c,r.willCall(u),p=!0;let R=()=>{n=h,p=!1},O=y();return O instanceof Promise?O.then(()=>(R(),t)):(R(),t)}return t.withImplementation=m,t.mockReturnThis=()=>t.mockImplementation(function(){return this}),t.mockReturnValue=c=>t.mockImplementation(()=>c),t.mockReturnValueOnce=c=>t.mockImplementationOnce(()=>c),t.mockResolvedValue=c=>t.mockImplementation(()=>Promise.resolve(c)),t.mockResolvedValueOnce=c=>t.mockImplementationOnce(()=>Promise.resolve(c)),t.mockRejectedValue=c=>t.mockImplementation(()=>Promise.reject(c)),t.mockRejectedValueOnce=c=>t.mockImplementationOnce(()=>Promise.reject(c)),Object.defineProperty(t,"mock",{get:()=>a}),r.willCall(u),pe.add(t),t}var P=e=>le(D({spy:e||(()=>{})},"spy"));beforeEach(()=>{global.window.fetch=P()});afterEach(()=>{global.window.fetch.mockReset()});var me=async()=>{let e={json:()=>Promise.resolve(),status:200,ok:!0,headers:new Headers({"Content-Type":"application/json"})};return Promise.resolve(e)},F=async e=>{let{responseBody:t,status:n=200,headers:o={},delay:s}=e,r={json:()=>Promise.resolve(t),status:n,ok:n>=200&&n<=299,headers:new Headers({"Content-Type":"application/json",...o})};return s?new Promise(a=>setTimeout(()=>a(r),s)):Promise.resolve(r)},de=e=>console.warn(`
2
2
  ${k.white.bold.bgRed("wrapito")} ${k.redBright.bold("cannot find any mock matching:")}
3
3
  ${k.greenBright(`URL: ${e.url}`)}
4
4
  ${k.greenBright(`METHOD: ${e.method?.toLowerCase()}`)}
5
5
  ${k.greenBright(`REQUEST BODY: ${e._bodyInit}`)}
6
- `),U=async(e,t,n)=>{let s=e.find(S(t));if(!s)return n&&de(t),me();let{multipleResponses:o}=s;if(!o)return F(s);let r=o.find(a=>!a.hasBeenReturned);if(!r){n&&he(s);return}return r.hasBeenReturned=!0,F(r)},L=(e=[],t=!1)=>{global.window.fetch.mockImplementation((s,o)=>{if(typeof s=="string"){let a=new Request(s,o);return U(e,a,t)}return U(e,s,t)})},he=e=>{let t=`\u{1F32F} Wrapito: Missing response in the multipleResponses array for path ${e.path} and method ${e.method}.`,n=k.greenBright(t);console.warn(n)};var v,f=e=>{v={...v,...e}},g=()=>({...v});beforeEach(()=>{global.fetch=P()});afterEach(()=>{global.fetch.mockReset()});var Ye=e=>(f({Component:e,responses:[],props:{},path:"",hasPath:!1,debug:process.env.npm_config_debugRequests==="true"}),x()),x=()=>{let e=Re();return{withProps:be,withNetwork:we,atPath:ke,debugRequests:xe,mount:Te,...e}},fe=e=>{let t=g(),n=[...t.responses,...e];f({...t,responses:n})},ge=(e,t)=>(t({addResponses:fe},e),x()),ye=(e,t)=>{let{extend:n}=d(),s=n[t];return{...e,[t]:(...o)=>ge(o,s)}},Re=()=>{let{extend:e}=d();return Object.keys(e).reduce(ye,{})},be=e=>{let t=g();return f({...t,props:e}),x()},we=(e=[])=>{let t=g(),n=Array.isArray(e)?e:[e];return f({...t,responses:[...t.responses,...n]}),x()},ke=(e,t)=>{let n=g();return f({...n,historyState:t,path:e,hasPath:!0}),x()},xe=()=>{let e=g();return f({...e,debug:!0}),x()},Te=()=>{let{portal:e,changeRoute:t,history:n,mount:s}=d(),{Component:o,props:r,responses:a,path:l,hasPath:p,debug:u,historyState:i}=g(),m=o;return e&&Ee(e),p&&n&&(console.warn("wrapito WARNING: history is DEPRECATED. Pass a changeRoute function to the config instead."),console.warn("Read about changeRoute in: https://github.com/mercadona/wrapito#changeRoute"),n.push(l,i)),p&&!n&&t(l),L(a,u),s(_.createElement(m,{...r}))},Ee=e=>{if(document.getElementById(e))return;let t=document.createElement("div");t.setAttribute("id",e),document.body.appendChild(t)};import{diff as Me}from"jest-diff";var A=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t?.host}${e} ain't got called`:`\u{1F32F} Wrapito: ${e} ain't got called`;return{pass:!1,message:()=>n}},G=(e,t,n)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: ${e} is called ${n} times, you expected ${t} times`}),V=(e,t)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: Fetch method does not match, expected ${e} received ${t??"none"}`}),Q=(e,t)=>{let n=t.map(s=>Me(e,s)).join(`
6
+ `),U=async(e,t,n)=>{let o=e.find(S(t));if(!o)return n&&de(t),me();let{multipleResponses:s}=o;if(!s)return F(o);let r=s.find(a=>!a.hasBeenReturned);if(!r){n&&he(o);return}return r.hasBeenReturned=!0,F(r)},L=(e=[],t=!1)=>{global.window.fetch.mockImplementation((o,s)=>{if(typeof o=="string"){let a=new Request(o,s);return U(e,a,t)}return U(e,o,t)})},he=e=>{let t=`\u{1F32F} Wrapito: Missing response in the multipleResponses array for path ${e.path} and method ${e.method}.`,n=k.greenBright(t);console.warn(n)};var v,f=e=>{v={...v,...e}},g=()=>({...v});beforeEach(()=>{global.fetch=P()});afterEach(()=>{global.fetch.mockReset()});var Xe=e=>(f({Component:e,responses:[],props:{},path:"",hasPath:!1,debug:process.env.npm_config_debugRequests==="true"}),x()),x=()=>{let e=be();return{withProps:we,withNetwork:ke,atPath:xe,debugRequests:Te,mount:Ee,...e}},ge=e=>{let t=g(),n=[...t.responses,...e];f({...t,responses:n})},ye=(e,t)=>(t({addResponses:ge},e),x()),Re=(e,t)=>{let{extend:n}=d(),o=n[t];return{...e,[t]:(...s)=>ye(s,o)}},be=()=>{let{extend:e}=d();return Object.keys(e).reduce(Re,{})},we=e=>{let t=g();return f({...t,props:e}),x()},ke=(e=[])=>{let t=g(),n=Array.isArray(e)?e:[e];return f({...t,responses:[...t.responses,...n]}),x()},xe=(e,t)=>{let n=g();return f({...n,historyState:t,path:e,hasPath:!0}),x()},Te=()=>{let e=g();return f({...e,debug:!0}),x()},Ee=()=>{let{portal:e,changeRoute:t,history:n,mount:o}=d(),{Component:s,props:r,responses:a,path:l,hasPath:p,debug:u,historyState:i}=g(),m=s;return e&&Pe(e),p&&n&&(console.warn("wrapito WARNING: history is DEPRECATED. Pass a changeRoute function to the config instead."),console.warn("Read about changeRoute in: https://github.com/mercadona/wrapito#changeRoute"),n.push(l,i)),p&&!n&&t(l),L(a,u),Me(_.createElement(m,{...r}))},Me=e=>{let{mount:t}=d(),n;return fe(()=>{n=t(e)}),n},Pe=e=>{if(document.getElementById(e))return;let t=document.createElement("div");t.setAttribute("id",e),document.body.appendChild(t)};import{diff as Ie}from"jest-diff";var A=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t?.host}${e} ain't got called`:`\u{1F32F} Wrapito: ${e} ain't got called`;return{pass:!1,message:()=>n}},G=(e,t,n)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: ${e} is called ${n} times, you expected ${t} times`}),V=(e,t)=>({pass:!1,message:()=>`\u{1F32F} Wrapito: Fetch method does not match, expected ${e} received ${t??"none"}`}),Q=(e,t)=>{let n=t.map(o=>Ie(e,o)).join(`
7
7
 
8
8
  `);return{pass:!1,message:()=>`\u{1F32F} Wrapito: Fetch body does not match.
9
- ${n}`}},J=()=>({pass:!1,message:()=>"\u{1F32F} Wrapito: Unable to find body."}),B=()=>({pass:!0,message:()=>"Test passing"}),Y=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t.host}${e} is called`:`\u{1F32F} Wrapito: ${e} is called`;return{pass:!0,message:()=>n}};import Pe from"deep-equal";var Ie=()=>{let e=d().defaultHost;return e?.includes("http")?e:"https://default.com"},Oe=(e="",t,n)=>t.includes(n)?t:e+t,j=e=>e instanceof Request,Ce=e=>j(e)?e.url:e,I=(e,t={method:"GET"})=>fetch.mock.calls.filter(([s])=>{let o=Ce(s),r=Ie(),a=new URL(o,r),l=Oe(t?.host,e,r),p=t?.host||r,u=new URL(l,p),i=a.pathname===u.pathname,m=a.search===u.search,c=a.host===u.host;return u.search?i&&m:t?.host?i&&c:i}),z=e=>e.flat(1).filter(j).map(t=>t.method),K=e=>e.flat(1).filter(j).map(t=>t._bodyInit?JSON.parse(t._bodyInit):{}),X=(e,t)=>e&&!t.includes(e),Z=(e,t)=>t.map(s=>Pe(e,s)).every(s=>s===!1),ee=e=>e.length===0;var We=(e,t)=>{let n=I(e);if(ee(n))return A(e);let s=z(n),o=t?.method;if(X(o,s))return V(o,s);let r=K(n),a=t?.body;return a?Z(a,r)?Q(a,r):B():J()},qe=(e,t={method:"GET"})=>I(e,t).length?Y(e,t):A(e,t),ve=(e,t,n={method:"GET"})=>{let s=I(e,n);return s.length!==t?G(e,t,s.length):B()},ot={toHaveBeenFetched:qe,toHaveBeenFetchedWith:We,toHaveBeenFetchedTimes:ve};export{ot as assertions,Be as configure,d as getConfig,ot as matchers,ne as mount,Ye as wrap};
9
+ ${n}`}},J=()=>({pass:!1,message:()=>"\u{1F32F} Wrapito: Unable to find body."}),B=()=>({pass:!0,message:()=>"Test passing"}),Y=(e,t)=>{let n=t?.host?`\u{1F32F} Wrapito: ${t.host}${e} is called`:`\u{1F32F} Wrapito: ${e} is called`;return{pass:!0,message:()=>n}};import Oe from"deep-equal";var We=()=>{let e=d().defaultHost;return e?.includes("http")?e:"https://default.com"},Ce=(e="",t,n)=>t.includes(n)?t:e+t,j=e=>e instanceof Request,qe=e=>j(e)?e.url:e,I=(e,t={method:"GET"})=>fetch.mock.calls.filter(([o])=>{let s=qe(o),r=We(),a=new URL(s,r),l=Ce(t?.host,e,r),p=t?.host||r,u=new URL(l,p),i=a.pathname===u.pathname,m=a.search===u.search,c=a.host===u.host;return u.search?i&&m:t?.host?i&&c:i}),z=e=>e.flat(1).filter(j).map(t=>t.method),K=e=>e.flat(1).filter(j).map(t=>t._bodyInit?JSON.parse(t._bodyInit):{}),X=(e,t)=>e&&!t.includes(e),Z=(e,t)=>t.map(o=>Oe(e,o)).every(o=>o===!1),ee=e=>e.length===0;var ve=(e,t)=>{let n=I(e);if(ee(n))return A(e);let o=z(n),s=t?.method;if(X(s,o))return V(s,o);let r=K(n),a=t?.body;return a?Z(a,r)?Q(a,r):B():J()},Ae=(e,t={method:"GET"})=>I(e,t).length?Y(e,t):A(e,t),Be=(e,t,n={method:"GET"})=>{let o=I(e,n);return o.length!==t?G(e,t,o.length):B()},it={toHaveBeenFetched:Ae,toHaveBeenFetchedWith:ve,toHaveBeenFetchedTimes:Be};export{it as assertions,He as configure,d as getConfig,it as matchers,ne as mount,Xe as wrap};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrapito",
3
- "version": "10.0.0",
3
+ "version": "11.0.0-beta1",
4
4
  "description": "🌯 🌯 Wrap you tests so that you can test both behaviour and components with less effort.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -60,24 +60,25 @@
60
60
  "whatwg-fetch": "^3.6.20"
61
61
  },
62
62
  "devDependencies": {
63
- "@testing-library/jest-dom": "^4.2.4",
64
- "@testing-library/react": "^12.1.5",
63
+ "@testing-library/dom": "^10.4.0",
64
+ "@testing-library/jest-dom": "^6.4.2",
65
+ "@testing-library/react": "^16.0.1",
65
66
  "@types/deep-equal": "^1.0.4",
66
67
  "@types/history": "^4.7.11",
67
68
  "@types/node": "^20.10.5",
68
69
  "@types/object-hash": "^3.0.6",
69
- "@types/react": "^17.0.73",
70
- "@types/react-dom": "^17.0.25",
70
+ "@types/react": "^19.1.0",
71
+ "@types/react-dom": "^19.1.0",
71
72
  "@vitest/coverage-istanbul": "^1.1.0",
72
73
  "eslint": "^8.56.0",
73
74
  "eslint-config-prettier": "^9.1.0",
74
75
  "eslint-config-react-app": "^7.0.1",
75
76
  "eslint-plugin-prettier": "^5.1.1",
76
77
  "eslint-plugin-react": "^7.33.2",
77
- "jsdom": "^24.0.0",
78
+ "jsdom": "^26.1.0",
78
79
  "prettier": "^3.1.1",
79
- "react": "^17.0.0",
80
- "react-dom": "^17.0.2",
80
+ "react": "^19.1.0",
81
+ "react-dom": "^19.1.0",
81
82
  "react-redux": "^7.2.9",
82
83
  "react-router-dom": "^5.3.4",
83
84
  "redux": "^4.2.1",