vitest 0.0.36 → 0.0.37

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/README.gh.md CHANGED
@@ -17,7 +17,7 @@ A blazing fast unit test framework powered by Vite.
17
17
 
18
18
  > ⚠️ **DISCLAIMER**: Vitest is still in development and not stable yet. It's not recommended to use it in production.
19
19
 
20
- > Vitest requires Vite v2.7.0 or above
20
+ > Vitest requires Vite v2.7 and Node v16
21
21
 
22
22
  [**Join the Discord!**](https://discord.com/invite/2zYZNngd7y)
23
23
 
@@ -174,7 +174,7 @@ For convenience, we also provide a shorthand for passing `--coverage` option to
174
174
  $ vitest --coverage
175
175
  ```
176
176
 
177
- For more configuration avaliable, please refer to [c8](https://github.com/bcoe/c8)'s documentation.
177
+ For more configuration available, please refer to [c8](https://github.com/bcoe/c8)'s documentation.
178
178
 
179
179
  ## Filtering
180
180
 
package/dist/node/cli.js CHANGED
@@ -1,8 +1,7 @@
1
- import{f as y}from"../chunk-XPSQDVUG.js";y();import{fileURLToPath as H}from"url";import{resolve as x,dirname as Q}from"path";import{findUp as G}from"find-up";import K from"sade";import v from"picocolors";y();import{builtinModules as z,createRequire as E}from"module";import{fileURLToPath as D,pathToFileURL as W}from"url";import{dirname as j,resolve as R,relative as I}from"path";import M from"vm";import{createServer as N,mergeConfig as U}from"vite";import A from"picocolors";import{slash as w}from"@antfu/utils";var{red:L,dim:k,yellow:F}=A,_=new Map;async function S(e){process.exitCode=0;let t=e.root||process.cwd();process.chdir(t);let n=e.files||e._;e.shouldExternalize=e.shouldExternalize||(i=>i.includes("/node_modules/"));let f=await N(U(e.defaultConfig||{},{logLevel:"error",clearScreen:!1,configFile:e.config,root:t,resolve:{}}));await f.pluginContainer.buildStart({}),process.__vite_node__={server:f,moduleCache:_};try{await B(n,f,e)}catch(i){throw process.exitCode=1,i}finally{process.__vite_node__.watch||await f.close()}}function V(e){return e&&e.startsWith("/@id/__x00__")&&(e=`\0${e.slice("/@id/__x00__".length)}`),e&&e.startsWith("/@id/")&&(e=e.slice("/@id/".length)),e.startsWith("__vite-browser-external:")&&(e=e.slice("__vite-browser-external:".length)),e}function $(e,t){let n=w(e).startsWith("/@fs/")?e.slice(4):e.startsWith(j(t.config.root))?e:e.startsWith("/")?w(R(t.config.root,e.slice(1))):e;return n.startsWith("//")&&(n=n.slice(1)),n}var O={"/@vite/client":{injectQuery:e=>e,createHotContext(){return{accept:()=>{},prune:()=>{}}},updateStyle(){}}};async function J(e,t){if(t.match(/\.(?:[cm]?[jt]sx?|json)$/))return await e.transformRequest(t,{ssr:!0});{let n=await e.transformRequest(t);return n?await e.ssrTransform(n.code,n.map,t):void 0}}function q(e,t){_.has(e)?Object.assign(_.get(e),t):_.set(e,t)}async function B(e,t,n){let f=[];for(let o of e)f.push(await g(`/@fs/${w(R(o))}`,[]));return f;async function i(o,c,r){r=[...r,o];let s=async m=>{if(r.includes(m)){if(!_.get(m))throw new Error(`${L("Circular dependency detected")}
1
+ import{f as g}from"../chunk-XPSQDVUG.js";g();import{fileURLToPath as H}from"url";import{resolve as w,dirname as Q}from"path";import{findUp as G}from"find-up";import K from"sade";import v from"picocolors";var C="0.0.37";g();import{createServer as L,mergeConfig as J}from"vite";g();import{builtinModules as F,createRequire as A}from"module";import{fileURLToPath as D,pathToFileURL as N}from"url";import{dirname as E,resolve as V}from"path";import W from"vm";var $={"/@vite/client":{injectQuery:e=>e,createHotContext(){return{accept:()=>{},prune:()=>{}}},updateStyle(){}}};async function T({moduleCache:e,root:s,files:r,fetch:o,inline:p,external:c}){let h=[];for(let t of r)h.push(await u(`/@fs/${b(V(t))}`,[]));return h;async function y(t,n,i){i=[...i,t];let a=async f=>{if(i.includes(f)){if(!e.get(f))throw new Error(`Circular dependency detected
2
2
  Stack:
3
- ${[...r,m].reverse().map(b=>{let C=I(t.config.root,$(V(b),t));return k(" -> ")+(b===m?F(C):C)}).join(`
4
- `)}
5
- `);return _.get(m).exports}return g(m,r)};if(o in O)return O[o];let u=await J(t,o);if(!u)throw new Error(`failed to load ${o}`);let p=W(c),a={};q(o,{transformResult:u,exports:a});let h=D(p),l={require:E(p),__filename:h,__dirname:j(h),__vite_ssr_import__:s,__vite_ssr_dynamic_import__:s,__vite_ssr_exports__:a,__vite_ssr_exportAll__:m=>d(a,m),__vite_ssr_import_meta__:{url:p}};return await M.runInThisContext(`async (${Object.keys(l).join(",")}) => { ${u.code} }`,{filename:c,lineOffset:0})(...Object.values(l)),a}async function g(o,c){var p,a;let r=V(o);if(z.includes(r))return import(r);let s=$(r,t);if(n.shouldExternalize(s,t))return import(s);if((p=_.get(s))==null?void 0:p.promise)return(a=_.get(s))==null?void 0:a.promise;let u=i(r,s,c);return q(s,{promise:u}),await u}function d(o,c){for(let r in c)if(r!=="default")try{Object.defineProperty(o,r,{enumerable:!0,configurable:!0,get(){return c[r]}})}catch{}}}console.log(v.yellow(v.bold(`
6
- Vitest is currently in closed beta exclusively for Sponsors`)));console.log(v.magenta(`Become a Sponsor of ${v.underline("https://github.com/sponsors/patak-js")} or ${v.underline("https://github.com/sponsors/antfu")}
3
+ ${[...i,f].reverse().map(I=>`- ${I}`).join(`
4
+ `)}`);return e.get(f).exports}return u(f,i)};if(t in $)return $[t];let d=await o(t);if(!d)throw new Error(`failed to load ${t}`);let m=N(n),l={};_(t,{transformResult:d,exports:l});let j=D(m),R={require:A(m),__filename:j,__dirname:E(j),__vite_ssr_import__:a,__vite_ssr_dynamic_import__:a,__vite_ssr_exports__:l,__vite_ssr_exportAll__:f=>q(l,f),__vite_ssr_import_meta__:{url:m}};return await W.runInThisContext(`async (${Object.keys(R).join(",")}) => { ${d.code} }`,{filename:n,lineOffset:0})(...Object.values(R)),l}function _(t,n){e.has(t)?Object.assign(e.get(t),n):e.set(t,n)}function x(t){for(let n of p)if(typeof n=="string"){if(t.includes(`/node_modules/${n}/`))return!1}else if(n.test(t))return!1;for(let n of c)if(typeof n=="string"){if(t.includes(`/node_modules/${n}/`))return!0}else if(n.test(t))return!0;return t.includes("/node_modules/")}async function u(t,n){var m,l;let i=k(t);if(F.includes(i))return import(i);let a=U(i,s);if(x(a))return a.match(/^\w:\//)?import(`/${a}`):import(a);if((m=e.get(a))==null?void 0:m.promise)return(l=e.get(a))==null?void 0:l.promise;let d=y(i,a,n);return _(a,{promise:d}),await d}function q(t,n){for(let i in n)if(i!=="default")try{Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get(){return n[i]}})}catch{}}}function k(e){return e&&e.startsWith("/@id/__x00__")&&(e=`\0${e.slice("/@id/__x00__".length)}`),e&&e.startsWith("/@id/")&&(e=e.slice("/@id/".length)),e.startsWith("__vite-browser-external:")&&(e=e.slice("__vite-browser-external:".length)),e}function U(e,s){let r=b(e).startsWith("/@fs/")?e.slice(4):e.startsWith(E(s))?e:e.startsWith("/")?b(V(s,e.slice(1))):e;return r.startsWith("//")&&(r=r.slice(1)),r}function b(e){return e.replace(/\\/g,"/")}var M=new Map;async function P(e){var h,y,_,x;process.exitCode=0;let s=e.root||process.cwd();process.chdir(s);let r=e.files||e._;e.shouldExternalize=e.shouldExternalize||(u=>u.includes("/node_modules/"));let o=await L(J(e.defaultConfig||{},{logLevel:"error",clearScreen:!1,configFile:e.config,root:s,resolve:{}}));await o.pluginContainer.buildStart({}),process.__vite_node__={server:o,moduleCache:M};let p=["vue","@vue","diff"],c={root:o.config.root,files:r,fetch:u=>B(o,u),inline:["vitest",...p,...((y=(h=o.config.test)==null?void 0:h.deps)==null?void 0:y.inline)||[]],external:((x=(_=o.config.test)==null?void 0:_.deps)==null?void 0:x.external)||[],moduleCache:M};try{await T(c)}catch(u){throw process.exitCode=1,u}finally{process.__vite_node__.watch||await o.close()}}async function B(e,s){if(s.match(/\.(?:[cm]?[jt]sx?|json)$/))return await e.transformRequest(s,{ssr:!0});{let r=await e.transformRequest(s);return r?await e.ssrTransform(r.code,r.map,s):void 0}}K("vitest [filter]",!0).version(C).describe("A blazing fast unit test framework powered by Vite.").option("-r, --root","root path",process.cwd()).option("-c, --config","path to config file").option("-w, --watch","watch mode",!1).option("-u, --update","update snapshot",!1).option("--global","inject apis globally",!1).option("--dev","dev mode",!1).option("--dom","mock browser api using jsdom or happy-dom","").action(async(e,s)=>{process.env.VITEST="true",console.log(v.yellow(v.bold(`
5
+ Vitest is currently in closed beta exclusively for Sponsors`))),console.log(v.magenta(`Become a Sponsor of ${v.underline("https://github.com/sponsors/patak-js")} or ${v.underline("https://github.com/sponsors/antfu")}
7
6
  to access the source code and issues tracker \u{1F496}
8
- `));var X="0.0.0";K("vitest [filter]",!0).version(X).describe("A blazing fast unit test framework powered by Vite.").option("-r, --root","root path",process.cwd()).option("-c, --config","path to config file").option("-w, --watch","watch mode",!1).option("-u, --update","update snapshot",!1).option("--global","inject apis globally",!1).option("--dev","dev mode",!1).option("--dom","mock browser api using jsdom or happy-dom","").action(async(e,t)=>{process.env.VITEST="true";let n=["vue","@vue","diff"],f=Q(H(import.meta.url)),i=x(t.root||process.cwd()),g=t.config?x(i,t.config):await G(["vitest.config.ts","vitest.config.js","vitest.config.mjs","vite.config.ts","vite.config.js","vite.config.mjs"],{cwd:i}),d=t;d.config=g,d.root=i,d.filters=e?Array.isArray(e)?e:[e]:void 0,process.__vitest__={options:d},await S({root:i,files:[x(f,t.dev?"../../src/node/entry.ts":"./entry.js")],config:g,defaultConfig:{optimizeDeps:{exclude:["vitest"]}},shouldExternalize(o,c){var u,p,a,h;let r=["vitest",...n,...((p=(u=c.config.test)==null?void 0:u.deps)==null?void 0:p.inline)||[]],s=((h=(a=c.config.test)==null?void 0:a.deps)==null?void 0:h.external)||[];for(let l of r)if(typeof l=="string"){if(o.includes(`/node_modules/${l}/`))return!1}else if(l.test(o))return!1;for(let l of s)if(typeof l=="string"){if(o.includes(`/node_modules/${l}/`))return!0}else if(l.test(o))return!0;return o.includes("/node_modules/")}})}).parse(process.argv);
7
+ `));let r=Q(H(import.meta.url)),o=w(s.root||process.cwd()),p=s.config?w(o,s.config):await G(["vitest.config.ts","vitest.config.js","vitest.config.mjs","vite.config.ts","vite.config.js","vite.config.mjs"],{cwd:o}),c=s;c.config=p,c.root=o,c.filters=e?Array.isArray(e)?e:[e]:void 0,process.__vitest__={options:c},await P({root:o,files:[w(r,s.dev?"../../src/node/entry.ts":"./entry.js")],config:p,defaultConfig:{optimizeDeps:{exclude:["vitest"]}}})}).parse(process.argv);
@@ -1,19 +1,19 @@
1
- import{a as O,b as U,c as H,e as W,n as I}from"../chunk-4OVO6RD6.js";import{a as x,c as pe,e as me,f as h}from"../chunk-XPSQDVUG.js";var J=pe((st,G)=>{h();"use strict";G.exports=t=>{let e=/^\\\\\?\\/.test(t),n=/[^\u0000-\u0080]+/.test(t);return e||n?t:t.replace(/\\/g,"/")}});h();h();import ze from"fast-glob";import{slash as Ge}from"@antfu/utils";h();import T from"chai";import xe from"sinon-chai";import Oe from"chai-subset";h();function K(){return(t,e)=>{let n=t.Assertion.prototype;e.addMethod(n,"toEqual",function(o){return this.eql(o)}),e.addMethod(n,"toStrictEqual",function(o){return this.equal(o)}),e.addMethod(n,"toBe",function(o){return this.equal(o)}),e.addMethod(n,"toMatchObject",function(o){return this.containSubset(o)}),e.addMethod(n,"toMatch",function(o){return typeof o=="string"?this.include(o):this.match(o)}),e.addMethod(n,"toContain",function(o){return this.contain(o)}),e.addMethod(n,"toBeTruthy",function(){let o=e.flag(this,"object");this.assert(Boolean(o),"expected #{this} to be truthy","expected #{this} to not be truthy",o)}),e.addMethod(n,"toBeFalsy",function(){let o=e.flag(this,"object");this.assert(!o,"expected #{this} to be falsy","expected #{this} to not be falsy",o)}),e.addMethod(n,"toBeNaN",function(){return this.be.NaN}),e.addMethod(n,"toBeUndefined",function(){return this.be.undefined}),e.addMethod(n,"toBeNull",function(){return this.be.null}),e.addMethod(n,"toBeDefined",function(){return this.not.be.undefined}),e.addMethod(n,"toBeInstanceOf",function(o){return this.instanceOf(o)}),e.addMethod(n,"toHaveBeenCalledTimes",function(o){return this.callCount(o)}),e.addMethod(n,"toHaveBeenCalledOnce",function(){return this.callCount(1)}),e.addMethod(n,"toHaveBeenCalled",function(){return this.called}),e.addMethod(n,"toHaveBeenCalled",function(){return this.called}),e.addMethod(n,"toHaveBeenCalledWith",function(...o){return this.calledWith(...o)})}}h();import ee from"jest-snapshot";h();import Ce from"chai";import be from"jest-snapshot";h();import ge from"@jest/test-result";var{makeEmptyAggregatedTestResult:Se}=ge,A=t=>{let e=Se().snapshot;return e.didUpdate=t.updateSnapshot==="all",e},q=t=>{let e={added:0,fileDeleted:!1,matched:0,unchecked:0,uncheckedKeys:[],unmatched:0,updated:0},n=t.getUncheckedCount(),o=t.getUncheckedKeys();n&&t.removeUncheckedKeys();let r=t.save();return e.fileDeleted=r.deleted,e.added=t.added,e.matched=t.matched,e.unmatched=t.unmatched,e.updated=t.updated,e.unchecked=r.deleted?0:n,e.uncheckedKeys=Array.from(o),e},z=(t,e,n)=>{e.added&&t.filesAdded++,e.fileDeleted&&t.filesRemoved++,e.unmatched&&t.filesUnmatched++,e.updated&&t.filesUpdated++,t.added+=e.added,t.matched+=e.matched,t.unchecked+=e.unchecked,e.uncheckedKeys&&e.uncheckedKeys.length>0&&t.uncheckedKeysByFile.push({filePath:n,keys:e.uncheckedKeys}),t.unmatched+=e.unmatched,t.updated+=e.updated,t.total+=e.added+e.matched+e.unmatched+e.updated};h();var V=me(J());import C,{isAbsolute as ye}from"path";import{pluralize as p}from"jest-util";import m from"picocolors";var P=(t,e)=>{ye(e)&&(e=C.relative(t,e));let n=C.dirname(e),o=C.basename(e);return(0,V.default)(m.dim(n+C.sep)+m.bold(o))},$=" \u203A ",Y=" \u21B3 ",_=" \u2022 ",ke=t=>m.bold(m.red(t)),Q=t=>m.bold(m.yellow(t)),we=t=>m.bold(m.green(t)),E=m.dim,X=t=>m.bold(m.green(t)),$e=m.bold,ve=t=>m.bold(m.green(t)),F="re-run mocha with `--update` to update them",Z=(t,e)=>{let n=[];if(n.push($e("Snapshot Summary")),e.added&&n.push(`${we(`${$+p("snapshot",e.added)} written `)}from ${p("test suite",e.filesAdded)}.`),e.unmatched&&n.push(`${ke(`${$}${p("snapshot",e.unmatched)} failed`)} from ${p("test suite",e.filesUnmatched)}. ${E(`Inspect your code changes or ${F} to update them.`)}`),e.updated&&n.push(`${ve(`${$+p("snapshot",e.updated)} updated `)}from ${p("test suite",e.filesUpdated)}.`),e.filesRemoved&&(e.didUpdate?n.push(`${X(`${$}${p("snapshot file",e.filesRemoved)} removed `)}from ${p("test suite",e.filesRemoved)}.`):n.push(`${Q(`${$}${p("snapshot file",e.filesRemoved)} obsolete `)}from ${p("test suite",e.filesRemoved)}. ${E(`To remove ${e.filesRemoved===1?"it":"them all"}, ${F}.`)}`)),e.filesRemovedList&&e.filesRemovedList.length){let[o,...r]=e.filesRemovedList;n.push(` ${Y} ${_}${P(t,o)}`),r.forEach(s=>{n.push(` ${_}${P(t,s)}`)})}return e.unchecked&&(e.didUpdate?n.push(`${X(`${$}${p("snapshot",e.unchecked)} removed `)}from ${p("test suite",e.uncheckedKeysByFile.length)}.`):n.push(`${Q(`${$}${p("snapshot",e.unchecked)} obsolete `)}from ${p("test suite",e.uncheckedKeysByFile.length)}. ${E(`To remove ${e.unchecked===1?"it":"them all"}, ${F}.`)}`),e.uncheckedKeysByFile.forEach(o=>{n.push(` ${Y}${P(t,o.filePath)}`),o.keys.forEach(r=>{n.push(` ${_}${r}`)})})),n};var{expect:Te}=Ce,{SnapshotState:Me}=be,j=class{snapshotState=null;snapshotSummary;snapshotOptions;context=null;testFile="";snapshotResolver;rootDir;constructor({rootDir:e,update:n,snapshotResolver:o=null}){this.rootDir=e,this.snapshotResolver=o;let r=process.env,s=!!r.CI,i=n||r.UPDATE_SNAPSHOT;this.snapshotOptions={updateSnapshot:s&&!i?"none":i?"all":"new"},this.snapshotSummary=A(this.snapshotOptions)}onFileChanged(){!this.context||(this.snapshotState!==null&&this.saveSnap(),this.testFile=this.context.file,this.snapshotState=new Me(this.snapshotResolver.resolveSnapshotPath(this.testFile),this.snapshotOptions))}setTask(e){var n;this.setContext({file:((n=e.file)==null?void 0:n.filepath)||e.name,title:e.name,fullTitle:[e.suite.name,e.name].filter(Boolean).join(" > ")})}setContext(e){!e.title||!e.file||(this.context=e,this.testFile!==e.file&&this.onFileChanged())}assert(e,n){if(!this.snapshotState||!this.context)return;let{actual:o,expected:r,key:s,pass:i}=this.snapshotState.match({testName:this.context.fullTitle||this.context.title||this.context.file,received:e,isInline:!1});i||Te(o.trim()).equals(r?r.trim():"",n||`Snapshot name: \`${s}\``)}clear(){this.snapshotSummary=A(this.snapshotOptions)}saveSnap(){if(!this.testFile||!this.snapshotState)return;let e=q(this.snapshotState);z(this.snapshotSummary,e,this.testFile),this.testFile="",this.snapshotState=null}report(){let e=Z(this.rootDir,this.snapshotSummary);if(e.length>1)return e}};var{addSerializer:Re}=ee,b;function B(){return b}async function te(t){let{root:e}=t;return b=new j({rootDir:e,update:t.update}),b.snapshotResolver=await ee.buildSnapshotResolver({transform:[],rootDir:e}),function(n,o){for(let r of["matchSnapshot","toMatchSnapshot"])o.addMethod(n.Assertion.prototype,r,function(s){let i=o.flag(this,"object");b.assert(i,s)});n.expect.addSnapshotSerializer=Re}}async function ne(t){T.use(xe),T.use(K()),T.use(Oe),T.use(await te(t))}h();import{performance as ie}from"perf_hooks";import{relative as Ke}from"path";import c from"picocolors";import D from"listr";h();import{promises as Ae,existsSync as Pe}from"fs";import S from"picocolors";import{createPatch as Ie}from"diff";import{notNullish as _e}from"@antfu/utils";import{SourceMapConsumer as Ee}from"source-map";async function M(t){var i;if(!(t instanceof Error)){console.error(t);return}let{moduleCache:e}=process.__vite_node__,n=t,o=!1,s=Ne(n.stack||"").find(a=>e.has(a.file));if(s){let a=(i=e.get(s.file))==null?void 0:i.transformResult,d=await Fe(a==null?void 0:a.map,s);if(d&&Pe(s.file)){let f=await Ae.readFile(s.file,"utf-8");console.error(`${S.red(`${S.bold(n.name)}: ${n.message}`)}`),console.log(S.gray(`${s.file}:${d.line}:${d.column}`)),console.log(S.yellow(Be(f,d))),o=!0}}o||console.error(n),n.showDiff&&console.error(S.gray(Ue(se(n.actual),se(n.expected))))}function Fe(t,{line:e,column:n}){return new Promise(o=>{if(!t)return o(null);Ee.with(t,null,r=>{let s=r.originalPositionFor({line:e,column:n});s.line!=null&&s.column!=null?o(s):o(null)})})}var oe=/\r?\n/;function je(t,e){if(typeof e=="number")return e;let n=t.split(oe),{line:o,column:r}=e,s=0;for(let i=0;i<o-1;i++)s+=n[i].length+1;return s+r}function Be(t,e=0,n,o=2){e=je(t,e),n=n||e;let r=t.split(oe),s=0,i=[];for(let a=0;a<r.length;a++)if(s+=r[a].length+1,s>=e){for(let d=a-o;d<=a+o||n>s;d++){if(d<0||d>=r.length)continue;let f=d+1;i.push(`${S.gray(`${f}${" ".repeat(Math.max(3-String(f).length,0))}|`)} ${r[d]}`);let u=r[d].length;if(d===a){let g=e-(s-u)+1,w=Math.max(1,n>s?u-g:n-e);i.push(`${S.gray(" |")} ${" ".repeat(g)}${"^".repeat(w)}`)}else if(d>a){if(n>s){let g=Math.max(Math.min(n-s,u),1);i.push(`${S.gray(" |")} ${"^".repeat(g)}`)}s+=u+1}}break}return i.join(`
2
- `)}function se(t){return String(t)}var De=/at (.*) \((.+):(\d+):(\d+)\)$/,Le=/at ()(.+):(\d+):(\d+)$/;function Ne(t){return t.split(`
3
- `).map(o=>{let r=o.trim(),s=r.match(De)||r.match(Le);if(!s)return null;let i=s[2];return i.startsWith("file://")&&(i=i.slice(7)),{method:s[1],file:s[2],line:parseInt(s[3]),column:parseInt(s[4])}}).filter(_e)}function Ue(t,e){let n=2048;return t.length>n&&(t=`${t.substring(0,n)} ... Lines skipped`),e.length>n&&(e=`${e.substring(0,n)} ... Lines skipped`),He(t,e)}function He(t,e){let n=" ";function o(i){return i[0]==="+"?n+S.green(`${i[0]} ${i.slice(1)}`):i[0]==="-"?n+S.red(`${i[0]} ${i.slice(1)}`):i.match(/@@/)?"--":i.match(/\\ No newline/)?null:n+i}let s=Ie("string",t,e).split(`
1
+ import{a as F,b as I,c as K,e as q,n as z}from"../chunk-4OVO6RD6.js";import{a as A,c as Se,e as ye,f as c}from"../chunk-XPSQDVUG.js";var Y=Se((it,V)=>{c();"use strict";V.exports=t=>{let e=/^\\\\\?\\/.test(t),n=/[^\u0000-\u0080]+/.test(t);return e||n?t:t.replace(/\\/g,"/")}});c();c();c();import ne from"jest-snapshot";c();import Me from"chai";import xe from"jest-snapshot";c();import we from"@jest/test-result";var{makeEmptyAggregatedTestResult:ke}=we,P=t=>{let e=ke().snapshot;return e.didUpdate=t.updateSnapshot==="all",e},G=t=>{let e={added:0,fileDeleted:!1,matched:0,unchecked:0,uncheckedKeys:[],unmatched:0,updated:0},n=t.getUncheckedCount(),o=t.getUncheckedKeys();n&&t.removeUncheckedKeys();let r=t.save();return e.fileDeleted=r.deleted,e.added=t.added,e.matched=t.matched,e.unmatched=t.unmatched,e.updated=t.updated,e.unchecked=r.deleted?0:n,e.uncheckedKeys=Array.from(o),e},J=(t,e,n)=>{e.added&&t.filesAdded++,e.fileDeleted&&t.filesRemoved++,e.unmatched&&t.filesUnmatched++,e.updated&&t.filesUpdated++,t.added+=e.added,t.matched+=e.matched,t.unchecked+=e.unchecked,e.uncheckedKeys&&e.uncheckedKeys.length>0&&t.uncheckedKeysByFile.push({filePath:n,keys:e.uncheckedKeys}),t.unmatched+=e.unmatched,t.updated+=e.updated,t.total+=e.added+e.matched+e.unmatched+e.updated};c();var Q=ye(Y());import C,{isAbsolute as $e}from"path";import{pluralize as m}from"jest-util";import g from"picocolors";var _=(t,e)=>{$e(e)&&(e=C.relative(t,e));let n=C.dirname(e),o=C.basename(e);return(0,Q.default)(g.dim(n+C.sep)+g.bold(o))},$=" \u203A ",X=" \u21B3 ",E=" \u2022 ",ve=t=>g.bold(g.red(t)),Z=t=>g.bold(g.yellow(t)),Ce=t=>g.bold(g.green(t)),j=g.dim,ee=t=>g.bold(g.green(t)),be=g.bold,Te=t=>g.bold(g.green(t)),B="re-run mocha with `--update` to update them",te=(t,e)=>{let n=[];if(n.push(be("Snapshot Summary")),e.added&&n.push(`${Ce(`${$+m("snapshot",e.added)} written `)}from ${m("test suite",e.filesAdded)}.`),e.unmatched&&n.push(`${ve(`${$}${m("snapshot",e.unmatched)} failed`)} from ${m("test suite",e.filesUnmatched)}. ${j(`Inspect your code changes or ${B} to update them.`)}`),e.updated&&n.push(`${Te(`${$+m("snapshot",e.updated)} updated `)}from ${m("test suite",e.filesUpdated)}.`),e.filesRemoved&&(e.didUpdate?n.push(`${ee(`${$}${m("snapshot file",e.filesRemoved)} removed `)}from ${m("test suite",e.filesRemoved)}.`):n.push(`${Z(`${$}${m("snapshot file",e.filesRemoved)} obsolete `)}from ${m("test suite",e.filesRemoved)}. ${j(`To remove ${e.filesRemoved===1?"it":"them all"}, ${B}.`)}`)),e.filesRemovedList&&e.filesRemovedList.length){let[o,...r]=e.filesRemovedList;n.push(` ${X} ${E}${_(t,o)}`),r.forEach(s=>{n.push(` ${E}${_(t,s)}`)})}return e.unchecked&&(e.didUpdate?n.push(`${ee(`${$}${m("snapshot",e.unchecked)} removed `)}from ${m("test suite",e.uncheckedKeysByFile.length)}.`):n.push(`${Z(`${$}${m("snapshot",e.unchecked)} obsolete `)}from ${m("test suite",e.uncheckedKeysByFile.length)}. ${j(`To remove ${e.unchecked===1?"it":"them all"}, ${B}.`)}`),e.uncheckedKeysByFile.forEach(o=>{n.push(` ${X}${_(t,o.filePath)}`),o.keys.forEach(r=>{n.push(` ${E}${r}`)})})),n};var{expect:Re}=Me,{SnapshotState:Oe}=xe,D=class{snapshotState=null;snapshotSummary;snapshotOptions;context=null;testFile="";snapshotResolver;rootDir;constructor({rootDir:e,update:n,snapshotResolver:o=null}){this.rootDir=e,this.snapshotResolver=o;let r=process.env,s=!!r.CI,i=n||r.UPDATE_SNAPSHOT;this.snapshotOptions={updateSnapshot:s&&!i?"none":i?"all":"new"},this.snapshotSummary=P(this.snapshotOptions)}onFileChanged(){!this.context||(this.snapshotState!==null&&this.saveSnap(),this.testFile=this.context.file,this.snapshotState=new Oe(this.snapshotResolver.resolveSnapshotPath(this.testFile),this.snapshotOptions))}setTask(e){var n;this.setContext({file:((n=e.file)==null?void 0:n.filepath)||e.name,title:e.name,fullTitle:[e.suite.name,e.name].filter(Boolean).join(" > ")})}setContext(e){!e.title||!e.file||(this.context=e,this.testFile!==e.file&&this.onFileChanged())}assert(e,n){if(!this.snapshotState||!this.context)return;let{actual:o,expected:r,key:s,pass:i}=this.snapshotState.match({testName:this.context.fullTitle||this.context.title||this.context.file,received:e,isInline:!1});i||Re(o.trim()).equals(r?r.trim():"",n||`Snapshot name: \`${s}\``)}clear(){this.snapshotSummary=P(this.snapshotOptions)}saveSnap(){if(!this.testFile||!this.snapshotState)return;let e=G(this.snapshotState);J(this.snapshotSummary,e,this.testFile),this.testFile="",this.snapshotState=null}report(){let e=te(this.rootDir,this.snapshotSummary);if(e.length>1)return e}};var{addSerializer:Ae}=ne,b;function T(){return b}async function oe(t){let{root:e}=t;return b=new D({rootDir:e,update:t.update}),b.snapshotResolver=await ne.buildSnapshotResolver({transform:[],rootDir:e}),function(n,o){for(let r of["matchSnapshot","toMatchSnapshot"])o.addMethod(n.Assertion.prototype,r,function(s){let i=o.flag(this,"object");b.assert(i,s)});n.expect.addSnapshotSerializer=Ae}}c();import{slash as Fe}from"@antfu/utils";c();async function M(t){let e={};for(let r of t){let s={filepath:r,suites:[],collected:!1};z();try{await import(r);let i=[q,...F.suites];for(let a of i)F.currentSuite=a,s.suites.push(await a.collect(s));s.collected=!0}catch(i){s.error=i,s.collected=!1,process.exitCode=1}e[r]=s}let o=Object.values(e).reduce((r,s)=>r.concat(s.suites),[]);return L(o),o.forEach(r=>{r.mode==="skip"?r.tasks.forEach(s=>s.mode==="run"&&(s.mode="skip")):L(r.tasks),r.tasks.forEach(s=>s.mode==="skip"&&(s.state="skip"))}),e}async function se(t){var w;let{reporter:e,snapshotManager:n,filesMap:o}=t;await((w=e.onWatcherStart)==null?void 0:w.call(e,t));let r,s=new Set,i=new Set,{server:a,moduleCache:d}=process.__vite_node__;a.watcher.on("change",async h=>{h=Fe(h),ie(h,t,s,i),i.forEach(S=>d.delete(S)),i.clear(),s.size!==0&&(clearTimeout(r),r=setTimeout(async()=>{var v,l,H;if(s.size===0)return;n.clear();let S=Array.from(s);s.clear(),await((v=e.onWatcherRerun)==null?void 0:v.call(e,S,h,t)),S.forEach(ge=>d.delete(ge));let k=await M(S);Object.assign(o,k),await N(k,t),n.saveSnap(),await((l=e.onFinished)==null?void 0:l.call(e,t,Object.values(k))),await((H=e.onWatcherStart)==null?void 0:H.call(e,t))},100))}),await new Promise(()=>{})}function ie(t,e,n=new Set,o=new Set){if(o.has(t)||n.has(t))return n;if(o.add(t),t in e.filesMap)return n.add(t),n;let r=process.__vite_node__.server.moduleGraph.getModuleById(t);return r&&r.importers.forEach(s=>{s.id&&ie(s.id,e,n,o)}),n}c();c();import x from"chai";import Pe from"sinon-chai";import _e from"chai-subset";c();function re(){return(t,e)=>{let n=t.Assertion.prototype;e.addMethod(n,"toEqual",function(o){return this.eql(o)}),e.addMethod(n,"toStrictEqual",function(o){return this.equal(o)}),e.addMethod(n,"toBe",function(o){return this.equal(o)}),e.addMethod(n,"toMatchObject",function(o){return this.containSubset(o)}),e.addMethod(n,"toMatch",function(o){return typeof o=="string"?this.include(o):this.match(o)}),e.addMethod(n,"toContain",function(o){return this.contain(o)}),e.addMethod(n,"toBeTruthy",function(){let o=e.flag(this,"object");this.assert(Boolean(o),"expected #{this} to be truthy","expected #{this} to not be truthy",o)}),e.addMethod(n,"toBeFalsy",function(){let o=e.flag(this,"object");this.assert(!o,"expected #{this} to be falsy","expected #{this} to not be falsy",o)}),e.addMethod(n,"toBeNaN",function(){return this.be.NaN}),e.addMethod(n,"toBeUndefined",function(){return this.be.undefined}),e.addMethod(n,"toBeNull",function(){return this.be.null}),e.addMethod(n,"toBeDefined",function(){return this.not.be.undefined}),e.addMethod(n,"toBeInstanceOf",function(o){return this.instanceOf(o)}),e.addMethod(n,"toHaveBeenCalledTimes",function(o){return this.callCount(o)}),e.addMethod(n,"toHaveBeenCalledOnce",function(){return this.callCount(1)}),e.addMethod(n,"toHaveBeenCalled",function(){return this.called}),e.addMethod(n,"toHaveBeenCalled",function(){return this.called}),e.addMethod(n,"toHaveBeenCalledWith",function(...o){return this.calledWith(...o)})}}async function ae(t){x.use(Pe),x.use(re()),x.use(_e),x.use(await oe(t))}c();import{performance as ue}from"perf_hooks";import{relative as Je}from"path";import u from"picocolors";import U from"listr";c();import{promises as Ee,existsSync as je}from"fs";import y from"picocolors";import{createPatch as Ge}from"diff";import{notNullish as Be}from"@antfu/utils";import{SourceMapConsumer as De}from"source-map";async function R(t){var i;if(!(t instanceof Error)){console.error(t);return}let{moduleCache:e}=process.__vite_node__,n=t,o=!1,s=Ie(n.stack||"").find(a=>e.has(a.file));if(s){let a=(i=e.get(s.file))==null?void 0:i.transformResult,d=await Le(a==null?void 0:a.map,s);if(d&&je(s.file)){let w=await Ee.readFile(s.file,"utf-8");console.error(`${y.red(`${y.bold(n.name)}: ${n.message}`)}`),console.log(y.gray(`${s.file}:${d.line}:${d.column}`)),console.log(y.yellow(Ue(w,d))),o=!0}}o||console.error(n),n.showDiff&&console.error(y.gray(Ke(ce(n.actual),ce(n.expected))))}function Le(t,{line:e,column:n}){return new Promise(o=>{if(!t)return o(null);De.with(t,null,r=>{let s=r.originalPositionFor({line:e,column:n});s.line!=null&&s.column!=null?o(s):o(null)})})}var le=/\r?\n/;function Ne(t,e){if(typeof e=="number")return e;let n=t.split(le),{line:o,column:r}=e,s=0;for(let i=0;i<o-1;i++)s+=n[i].length+1;return s+r}function Ue(t,e=0,n,o=2){e=Ne(t,e),n=n||e;let r=t.split(le),s=0,i=[];for(let a=0;a<r.length;a++)if(s+=r[a].length+1,s>=e){for(let d=a-o;d<=a+o||n>s;d++){if(d<0||d>=r.length)continue;let w=d+1;i.push(`${y.gray(`${w}${" ".repeat(Math.max(3-String(w).length,0))}|`)} ${r[d]}`);let h=r[d].length;if(d===a){let S=e-(s-h)+1,k=Math.max(1,n>s?h-S:n-e);i.push(`${y.gray(" |")} ${" ".repeat(S)}${"^".repeat(k)}`)}else if(d>a){if(n>s){let S=Math.max(Math.min(n-s,h),1);i.push(`${y.gray(" |")} ${"^".repeat(S)}`)}s+=h+1}}break}return i.join(`
2
+ `)}function ce(t){return String(t)}var We=/at (.*) \((.+):(\d+):(\d+)\)$/,He=/at ()(.+):(\d+):(\d+)$/;function Ie(t){return t.split(`
3
+ `).map(o=>{let r=o.trim(),s=r.match(We)||r.match(He);if(!s)return null;let i=s[2];return i.startsWith("file://")&&(i=i.slice(7)),{method:s[1],file:s[2],line:parseInt(s[3]),column:parseInt(s[4])}}).filter(Be)}function Ke(t,e){let n=2048;return t.length>n&&(t=`${t.substring(0,n)} ... Lines skipped`),e.length>n&&(e=`${e.substring(0,n)} ... Lines skipped`),qe(t,e)}function qe(t,e){let n=" ";function o(i){return i[0]==="+"?n+y.green(`${i[0]} ${i.slice(1)}`):i[0]==="-"?n+y.red(`${i[0]} ${i.slice(1)}`):i.match(/@@/)?"--":i.match(/\\ No newline/)?null:n+i}let s=Ge("string",t,e).split(`
4
4
  `).splice(5);return`
5
- ${n}${S.red("- actual")}
6
- ${n}${S.green("+ expected")}
5
+ ${n}${y.red("- actual")}
6
+ ${n}${y.green("+ expected")}
7
7
 
8
- ${s.map(o).filter(We).join(`
9
- `)}`}function We(t){return typeof t!="undefined"&&t!==null}var qe="\u2716 ",L=class{start=0;end=0;listr=null;listrPromise=null;taskMap=new Map;cwd=process.cwd();relative(e){return Ke(this.cwd,e)}onStart(e){this.cwd=e.root,console.log(c.green(`Running tests under ${c.gray(this.cwd)}
10
- `))}onCollected(e){this.start=ie.now(),this.taskMap=new Map,e.reduce((s,i)=>s.concat(i.suites.flatMap(a=>a.tasks)),[]).forEach(s=>{let i={};i.promise=new Promise((a,d)=>{i.resolve=a,i.reject=d}),this.taskMap.set(s,i)});let o=s=>s.map(i=>({title:i.name,skip:()=>i.mode==="skip",task:async()=>{var a;return await((a=this.taskMap.get(i))==null?void 0:a.promise)}})),r={exitOnError:!1};this.listr=new D(e.map(s=>({title:this.relative(s.filepath),task:()=>{if(s.error)throw s.error;let i=s.suites.filter(a=>a.tasks.length);if(!i.length)throw new Error("No tasks found");return new D(i.flatMap(a=>a.name?[{title:a.name,skip:()=>a.mode!=="run",task:()=>new D(o(a.tasks),r)}]:o(a.tasks)),r)}})),r),this.listrPromise=this.listr.run().catch(()=>{})}onTaskEnd(e){var n,o;e.state==="fail"?(n=this.taskMap.get(e))==null||n.reject(e.error):(o=this.taskMap.get(e))==null||o.resolve()}async onFinished(e,n=e.files){var v;await this.listrPromise,this.end=ie.now(),console.log();let o=e.snapshotManager.report();o&&console.log(o.join(`
11
- `));let r=n.flatMap(l=>l.suites),s=r.flatMap(l=>l.tasks),i=n.filter(l=>l.error),a=r.filter(l=>l.error),d=s.filter(l=>l.state==="pass"||l.state==="fail"),f=s.filter(l=>l.state==="pass"),u=s.filter(l=>l.state==="fail"),g=s.filter(l=>l.state==="skip"),w=s.filter(l=>l.state==="todo");if(i.length){console.error(c.red(c.bold(`
12
- Failed to parse ${i.length} files:`)));for(let l of i)console.error(c.red(`- ${l.filepath}`));console.log();for(let l of i)await M(l.error),console.log()}if(a.length){console.error(c.bold(c.red(`
13
- Failed to run ${a.length} suites:`)));for(let l of a)console.error(c.red(`
14
- - ${(v=l.file)==null?void 0:v.filepath} > ${l.name}`)),await M(l.error),console.log()}if(u.length){console.error(c.bold(c.red(`
15
- Failed Tests (${u.length})`)));for(let l of u)console.error(`${c.red(`
16
- ${qe+c.inverse(" FAIL ")}`)} ${[l.suite.name,l.name].filter(Boolean).join(" > ")}`),await M(l.error),console.log()}console.log(c.bold(c.green(`Passed ${f.length} / ${d.length}`))),u.length&&console.log(c.bold(c.red(`Failed ${u.length} / ${d.length}`))),g.length&&console.log(c.yellow(`Skipped ${g.length}`)),w.length&&console.log(c.dim(`Todo ${w.length}`)),console.log(`Time ${(this.end-this.start).toFixed(2)}ms`)}async onWatcherStart(e){await this.listrPromise;let n=e.tasks.filter(o=>o.state==="fail");n.length?console.log(`
17
- ${c.bold(c.inverse(c.red(" FAIL ")))}${c.red(` ${n.length} tests failed. Watching for file changes...`)}`):console.log(`
18
- ${c.bold(c.inverse(c.green(" PASS ")))}${c.green(" Watching for file changes...")}`)}async onWatcherRerun(e,n){await this.listrPromise,console.clear(),console.log(c.blue("Re-running tests...")+c.dim(` [ ${this.relative(n)} ]
19
- `))}onSnapshotUpdate(){}};async function R(t,e,n){await Promise.all(t.hooks[e].map(o=>o(...n)))}async function re(t,e){var o,r,s;let{reporter:n}=e;if((o=B())==null||o.setTask(t),await((r=n.onTaskBegin)==null?void 0:r.call(n,t,e)),t.mode==="run"){try{await R(t.suite,"beforeEach",[t,t.suite]),await t.fn(),t.state="pass"}catch(i){t.state="fail",t.error=i,process.exitCode=1}try{await R(t.suite,"afterEach",[t,t.suite])}catch(i){t.state="fail",t.error=i,process.exitCode=1}}await((s=n.onTaskEnd)==null?void 0:s.call(n,t,e))}async function ae(t){let e={};for(let r of t){let s={filepath:r,suites:[],collected:!1};I();try{await import(r);let i=[W,...O.suites];for(let a of i)O.currentSuite=a,s.suites.push(await a.collect(s));s.collected=!0}catch(i){s.error=i,s.collected=!1,process.exitCode=1}e[r]=s}let o=Object.values(e).reduce((r,s)=>r.concat(s.suites),[]);return le(o),o.forEach(r=>{r.mode==="skip"?r.tasks.forEach(s=>s.mode==="run"&&(s.mode="skip")):le(r.tasks),r.tasks.forEach(s=>s.mode==="skip"&&(s.state="skip"))}),e}function le(t){t.some(e=>e.mode==="only")&&t.forEach(e=>{e.mode==="run"?e.mode="skip":e.mode==="only"&&(e.mode="run")})}async function ce(t,e){var o,r;let{reporter:n}=e;if(await((o=n.onSuiteBegin)==null?void 0:o.call(n,t,e)),t.mode==="skip")t.status="skip";else if(t.mode==="todo")t.status="todo";else try{await R(t,"beforeAll",[t]);for(let s of Je(t.tasks))if(s[0].concurrent)await Promise.all(s.map(i=>re(i,e)));else for(let i of s)await re(i,e);await R(t,"afterAll",[t])}catch(s){t.error=s,t.status="fail",process.exitCode=1}await((r=n.onSuiteEnd)==null?void 0:r.call(n,t,e))}function Je(t){let e=[],n=[];for(let o of t)e.length===0||!!o.concurrent==!!e[0].concurrent?e.push(o):(n.push(e),e=[o]);return e.length>0&&n.push(e),n}async function Ve(t,e){var r,s;let{reporter:n}=e;if(t.suites.filter(i=>i.mode==="run").length!==0){if(await((r=n.onFileBegin)==null?void 0:r.call(n,t,e)),e.config.parallel)await Promise.all(t.suites.map(i=>ce(i,e)));else for(let i of t.suites)await ce(i,e);await((s=n.onFileEnd)==null?void 0:s.call(n,t,e))}}async function de(t,e){var o;let{reporter:n}=e;await((o=n.onCollected)==null?void 0:o.call(n,Object.values(t),e));for(let r of Object.values(t))await Ve(r,e)}async function he(t){var i,a,d;t.reporter=t.reporter||new L;let{reporter:e}=t;t.watch&&(process.__vite_node__.watch=!0),await ne(t);let n=await ze(t.includes||U,{absolute:!0,cwd:t.root,ignore:t.excludes||H});if(((i=t.filters)==null?void 0:i.length)&&(n=n.filter(f=>t.filters.some(u=>f.includes(u)))),!n.length){console.error("No test files found"),process.exitCode=1;return}t.global&&(await import("../global-CKRMAXWF.js")).registerApiGlobally(),t.dom==="happy-dom"?(await import("../happy-dom-RNJZR3YC.js")).setupHappyDOM(globalThis):t.dom&&(await import("../jsdom-6QAZGE6T.js")).setupJSDOM(globalThis),await((a=e.onStart)==null?void 0:a.call(e,t));let o=await ae(n),r=B(),s={filesMap:o,get files(){return Object.values(this.filesMap)},get suites(){return Object.values(this.filesMap).reduce((f,u)=>f.concat(u.suites),[])},get tasks(){return this.suites.reduce((f,u)=>f.concat(u.tasks),[])},config:t,reporter:e,snapshotManager:r};await de(o,s),r.saveSnap(),await((d=e.onFinished)==null?void 0:d.call(e,s)),t.watch&&await Ye(s)}async function Ye(t){var f;let{reporter:e,snapshotManager:n,filesMap:o}=t;await((f=e.onWatcherStart)==null?void 0:f.call(e,t));let r,s=new Set,i=new Set,{server:a,moduleCache:d}=process.__vite_node__;a.watcher.on("change",async u=>{u=Ge(u),ue(u,t,s,i),i.forEach(g=>d.delete(g)),i.clear(),s.size!==0&&(clearTimeout(r),r=setTimeout(async()=>{var v,l,N;if(s.size===0)return;n.clear();let g=Array.from(s);s.clear(),await((v=e.onWatcherRerun)==null?void 0:v.call(e,g,u,t)),g.forEach(fe=>d.delete(fe));let w=await ae(g);Object.assign(o,w),await de(w,t),n.saveSnap(),await((l=e.onFinished)==null?void 0:l.call(e,t,Object.values(w))),await((N=e.onWatcherStart)==null?void 0:N.call(e,t))},100))}),await new Promise(()=>{})}function ue(t,e,n=new Set,o=new Set){if(o.has(t)||n.has(t))return n;if(o.add(t),t in e.filesMap)return n.add(t),n;let r=process.__vite_node__.server.moduleGraph.getModuleById(t);return r&&r.importers.forEach(s=>{s.id&&ue(s.id,e,n,o)}),n}if(!process.__vite_node__||!process.__vitest__)throw new Error("Vitest can only run in vite-node environment, please use the CLI to start the process");var Qe=process.__vite_node__.server.config.test||{},Xe=process.__vitest__.options||{},Ze=x(x({},Xe),Qe);await he(Ze);var et=setTimeout(()=>{process.exit()},500);et.unref();
8
+ ${s.map(o).filter(ze).join(`
9
+ `)}`}function ze(t){return typeof t!="undefined"&&t!==null}var Ve="\u2716 ",W=class{start=0;end=0;listr=null;listrPromise=null;taskMap=new Map;cwd=process.cwd();relative(e){return Je(this.cwd,e)}onStart(e){this.cwd=e.root,console.log(u.green(`Running tests under ${u.gray(this.cwd)}
10
+ `))}onCollected(e){this.start=ue.now(),this.taskMap=new Map,e.reduce((s,i)=>s.concat(i.suites.flatMap(a=>a.tasks)),[]).forEach(s=>{let i={};i.promise=new Promise((a,d)=>{i.resolve=a,i.reject=d}),this.taskMap.set(s,i)});let o=s=>s.map(i=>({title:i.name,skip:()=>i.mode==="skip",task:async()=>{var a;return await((a=this.taskMap.get(i))==null?void 0:a.promise)}})),r={exitOnError:!1};this.listr=new U(e.map(s=>({title:this.relative(s.filepath),task:()=>{if(s.error)throw s.error;let i=s.suites.filter(a=>a.tasks.length);if(!i.length)throw new Error("No tasks found");return new U(i.flatMap(a=>a.name?[{title:a.name,skip:()=>a.mode!=="run",task:()=>new U(o(a.tasks),r)}]:o(a.tasks)),r)}})),r),this.listrPromise=this.listr.run().catch(()=>{})}onTaskEnd(e){var n,o;e.state==="fail"?(n=this.taskMap.get(e))==null||n.reject(e.error):(o=this.taskMap.get(e))==null||o.resolve()}async onFinished(e,n=e.files){var v;await this.listrPromise,this.end=ue.now(),console.log();let o=e.snapshotManager.report();o&&console.log(o.join(`
11
+ `));let r=n.flatMap(l=>l.suites),s=r.flatMap(l=>l.tasks),i=n.filter(l=>l.error),a=r.filter(l=>l.error),d=s.filter(l=>l.state==="pass"||l.state==="fail"),w=s.filter(l=>l.state==="pass"),h=s.filter(l=>l.state==="fail"),S=s.filter(l=>l.state==="skip"),k=s.filter(l=>l.state==="todo");if(i.length){console.error(u.red(u.bold(`
12
+ Failed to parse ${i.length} files:`)));for(let l of i)console.error(u.red(`- ${l.filepath}`));console.log();for(let l of i)await R(l.error),console.log()}if(a.length){console.error(u.bold(u.red(`
13
+ Failed to run ${a.length} suites:`)));for(let l of a)console.error(u.red(`
14
+ - ${(v=l.file)==null?void 0:v.filepath} > ${l.name}`)),await R(l.error),console.log()}if(h.length){console.error(u.bold(u.red(`
15
+ Failed Tests (${h.length})`)));for(let l of h)console.error(`${u.red(`
16
+ ${Ve+u.inverse(" FAIL ")}`)} ${[l.suite.name,l.name].filter(Boolean).join(" > ")}`),await R(l.error),console.log()}console.log(u.bold(u.green(`Passed ${w.length} / ${d.length}`))),h.length&&console.log(u.bold(u.red(`Failed ${h.length} / ${d.length}`))),S.length&&console.log(u.yellow(`Skipped ${S.length}`)),k.length&&console.log(u.dim(`Todo ${k.length}`)),console.log(`Time ${(this.end-this.start).toFixed(2)}ms`)}async onWatcherStart(e){await this.listrPromise;let n=e.tasks.filter(o=>o.state==="fail");n.length?console.log(`
17
+ ${u.bold(u.inverse(u.red(" FAIL ")))}${u.red(` ${n.length} tests failed. Watching for file changes...`)}`):console.log(`
18
+ ${u.bold(u.inverse(u.green(" PASS ")))}${u.green(" Watching for file changes...")}`)}async onWatcherRerun(e,n){await this.listrPromise,console.clear(),console.log(u.blue("Re-running tests...")+u.dim(` [ ${this.relative(n)} ]
19
+ `))}onSnapshotUpdate(){}};async function de(t){return await ae(t),t.global&&(await import("../global-CKRMAXWF.js")).registerApiGlobally(),t.dom==="happy-dom"?(await import("../happy-dom-RNJZR3YC.js")).setupHappyDOM(globalThis):t.dom&&(await import("../jsdom-6QAZGE6T.js")).setupJSDOM(globalThis),{filesMap:{},get files(){return Object.values(this.filesMap)},get suites(){return Object.values(this.filesMap).reduce((n,o)=>n.concat(o.suites),[])},get tasks(){return this.suites.reduce((n,o)=>n.concat(o.tasks),[])},config:t,reporter:t.reporter||new W,snapshotManager:T()}}c();import Ye from"fast-glob";async function he(t){var n;let e=await Ye(t.includes||I,{absolute:!0,cwd:t.root,ignore:t.excludes||K});return((n=t.filters)==null?void 0:n.length)&&(e=e.filter(o=>t.filters.some(r=>o.includes(r)))),e}async function O(t,e,n){await Promise.all(t.hooks[e].map(o=>o(...n)))}async function fe(t,e){var o,r,s;let{reporter:n}=e;if((o=T())==null||o.setTask(t),await((r=n.onTaskBegin)==null?void 0:r.call(n,t,e)),t.mode==="run"){try{await O(t.suite,"beforeEach",[t,t.suite]),await t.fn(),t.state="pass"}catch(i){t.state="fail",t.error=i,process.exitCode=1}try{await O(t.suite,"afterEach",[t,t.suite])}catch(i){t.state="fail",t.error=i,process.exitCode=1}}await((s=n.onTaskEnd)==null?void 0:s.call(n,t,e))}function L(t){t.some(e=>e.mode==="only")&&t.forEach(e=>{e.mode==="run"?e.mode="skip":e.mode==="only"&&(e.mode="run")})}async function pe(t,e){var o,r;let{reporter:n}=e;if(await((o=n.onSuiteBegin)==null?void 0:o.call(n,t,e)),t.mode==="skip")t.status="skip";else if(t.mode==="todo")t.status="todo";else try{await O(t,"beforeAll",[t]);for(let s of Qe(t.tasks))if(s[0].concurrent)await Promise.all(s.map(i=>fe(i,e)));else for(let i of s)await fe(i,e);await O(t,"afterAll",[t])}catch(s){t.error=s,t.status="fail",process.exitCode=1}await((r=n.onSuiteEnd)==null?void 0:r.call(n,t,e))}function Qe(t){let e=[],n=[];for(let o of t)e.length===0||!!o.concurrent==!!e[0].concurrent?e.push(o):(n.push(e),e=[o]);return e.length>0&&n.push(e),n}async function Xe(t,e){var r,s;let{reporter:n}=e;if(t.suites.filter(i=>i.mode==="run").length!==0){if(await((r=n.onFileBegin)==null?void 0:r.call(n,t,e)),e.config.parallel)await Promise.all(t.suites.map(i=>pe(i,e)));else for(let i of t.suites)await pe(i,e);await((s=n.onFileEnd)==null?void 0:s.call(n,t,e))}}async function N(t,e){var o;let{reporter:n}=e;await((o=n.onCollected)==null?void 0:o.call(n,Object.values(t),e));for(let r of Object.values(t))await Xe(r,e)}async function me(t){var a,d;t.watch&&(process.__vite_node__.watch=!0);let e=await he(t);if(!e.length){console.error("No test files found"),process.exitCode=1;return}let n=await de(t),{filesMap:o,snapshotManager:r,reporter:s}=n;await((a=s.onStart)==null?void 0:a.call(s,t));let i=await M(e);Object.assign(o,i),await N(o,n),r.saveSnap(),await((d=s.onFinished)==null?void 0:d.call(s,n)),t.watch&&await se(n)}if(!process.__vite_node__||!process.__vitest__)throw new Error("Vitest can only run in vite-node environment, please use the CLI to start the process");var Ze=process.__vite_node__.server.config.test||{},et=process.__vitest__.options||{},tt=A(A({},et),Ze);await me(tt);var nt=setTimeout(()=>{process.exit()},500);nt.unref();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vitest",
3
- "version": "0.0.36",
3
+ "version": "0.0.37",
4
4
  "description": "A blazing fast unit test framework powered by Vite",
5
5
  "keywords": [
6
6
  "vite",