[{"data":1,"prerenderedAt":1114},["ShallowReactive",2],{"navigation":3,"docs-path-index":340,"-docs-modules-testing-api":446,"-docs-modules-testing-api-surround":1109},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":64},"Docs","i-lucide-book-marked","\u002Fdocs","docs",[10,30,65,293,318],{"title":11,"path":12,"stem":13,"children":14,"icon":29},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[15,17,21,25],{"title":16,"path":12,"stem":13},"Introduction",{"title":18,"path":19,"stem":20},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":22,"path":23,"stem":24},"Examples","\u002Fdocs\u002Fgetting-started\u002Fexamples","docs\u002F1.getting-started\u002F3.examples",{"title":26,"path":27,"stem":28},"Project Generator","\u002Fdocs\u002Fgetting-started\u002Fproject-generator","docs\u002F1.getting-started\u002F4.project-generator","i-lucide-rocket",{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":64},"Core features","i-lucide-square-function","\u002Fdocs\u002Fcore-features","docs\u002F2.core-features",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"Configuration","\u002Fdocs\u002Fcore-features\u002Fconfiguration","docs\u002F2.core-features\u002F0.configuration",{"title":41,"path":42,"stem":43},"Dependency Injection","\u002Fdocs\u002Fcore-features\u002Fcontainer","docs\u002F2.core-features\u002F1.container",{"title":45,"path":46,"stem":47},"Controllers","\u002Fdocs\u002Fcore-features\u002Fcontrollers","docs\u002F2.core-features\u002F2.controllers",{"title":49,"path":50,"stem":51},"Middlewares","\u002Fdocs\u002Fcore-features\u002Fmiddlewares","docs\u002F2.core-features\u002F3.middlewares",{"title":53,"path":54,"stem":55},"Validation","\u002Fdocs\u002Fcore-features\u002Fvalidation","docs\u002F2.core-features\u002F4.validation",{"title":57,"path":58,"stem":59},"Introspection","\u002Fdocs\u002Fcore-features\u002Fintrospection","docs\u002F2.core-features\u002F5.introspection",{"title":61,"path":62,"stem":63},"Health Checks","\u002Fdocs\u002Fcore-features\u002Fhealth","docs\u002F2.core-features\u002F6.health",false,{"title":66,"icon":67,"defaultOpen":68,"path":69,"stem":70,"children":71,"page":64},"Modules","i-lucide-boxes",true,"\u002Fdocs\u002Fmodules","docs\u002F3.modules",[72,89,100,116,135,154,177,191,206,214,229,240,255,274,282],{"title":73,"icon":64,"defaultOpen":64,"path":74,"stem":75,"children":76,"page":64},"Auth","\u002Fdocs\u002Fmodules\u002Fauth","docs\u002F3.modules\u002F1.auth",[77,81,85],{"title":78,"path":79,"stem":80},"Overview","\u002Fdocs\u002Fmodules\u002Fauth\u002Foverview","docs\u002F3.modules\u002F1.auth\u002F0.overview",{"title":82,"path":83,"stem":84},"Decorators","\u002Fdocs\u002Fmodules\u002Fauth\u002Fdecorators","docs\u002F3.modules\u002F1.auth\u002F1.decorators",{"title":86,"path":87,"stem":88},"API Reference","\u002Fdocs\u002Fmodules\u002Fauth\u002Fapi","docs\u002F3.modules\u002F1.auth\u002F2.api",{"title":90,"icon":64,"defaultOpen":64,"path":91,"stem":92,"children":93,"page":64},"Devtools","\u002Fdocs\u002Fmodules\u002Fdevtools","docs\u002F3.modules\u002F10.devtools",[94,97],{"title":78,"path":95,"stem":96},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002Foverview","docs\u002F3.modules\u002F10.devtools\u002F0.overview",{"title":37,"path":98,"stem":99},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002Fconfiguration","docs\u002F3.modules\u002F10.devtools\u002F1.configuration",{"title":101,"icon":64,"defaultOpen":64,"path":102,"stem":103,"children":104,"page":64},"Telemetry","\u002Fdocs\u002Fmodules\u002Ftelemetry","docs\u002F3.modules\u002F11.telemetry",[105,108,112],{"title":78,"path":106,"stem":107},"\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Foverview","docs\u002F3.modules\u002F11.telemetry\u002F0.overview",{"title":109,"path":110,"stem":111},"API","\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Fapi","docs\u002F3.modules\u002F11.telemetry\u002F1.api",{"title":113,"path":114,"stem":115},"Instrumentation","\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Finstrumentation","docs\u002F3.modules\u002F11.telemetry\u002F2.instrumentation",{"title":117,"icon":64,"defaultOpen":64,"path":118,"stem":119,"children":120,"page":64},"Queue","\u002Fdocs\u002Fmodules\u002Fqueue","docs\u002F3.modules\u002F12.queue",[121,124,128,132],{"title":78,"path":122,"stem":123},"\u002Fdocs\u002Fmodules\u002Fqueue\u002Foverview","docs\u002F3.modules\u002F12.queue\u002F0.overview",{"title":125,"path":126,"stem":127},"Consumers","\u002Fdocs\u002Fmodules\u002Fqueue\u002Fconsumers","docs\u002F3.modules\u002F12.queue\u002F1.consumers",{"title":129,"path":130,"stem":131},"Strategies","\u002Fdocs\u002Fmodules\u002Fqueue\u002Fstrategies","docs\u002F3.modules\u002F12.queue\u002F2.strategies",{"title":109,"path":133,"stem":134},"\u002Fdocs\u002Fmodules\u002Fqueue\u002Fapi","docs\u002F3.modules\u002F12.queue\u002F3.api",{"title":136,"icon":64,"defaultOpen":64,"path":137,"stem":138,"children":139,"page":64},"Scheduler","\u002Fdocs\u002Fmodules\u002Fscheduler","docs\u002F3.modules\u002F13.scheduler",[140,143,147,151],{"title":78,"path":141,"stem":142},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Foverview","docs\u002F3.modules\u002F13.scheduler\u002F0.overview",{"title":144,"path":145,"stem":146},"Jobs","\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fjobs","docs\u002F3.modules\u002F13.scheduler\u002F1.jobs",{"title":148,"path":149,"stem":150},"Clustering","\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fclustering","docs\u002F3.modules\u002F13.scheduler\u002F2.clustering",{"title":109,"path":152,"stem":153},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fapi","docs\u002F3.modules\u002F13.scheduler\u002F3.api",{"title":155,"icon":64,"defaultOpen":64,"path":156,"stem":157,"children":158,"page":64},"Testing","\u002Fdocs\u002Fmodules\u002Ftesting","docs\u002F3.modules\u002F14.testing",[159,162,166,170,174],{"title":78,"path":160,"stem":161},"\u002Fdocs\u002Fmodules\u002Ftesting\u002Foverview","docs\u002F3.modules\u002F14.testing\u002F0.overview",{"title":163,"path":164,"stem":165},"Requests","\u002Fdocs\u002Fmodules\u002Ftesting\u002Frequests","docs\u002F3.modules\u002F14.testing\u002F1.requests",{"title":167,"path":168,"stem":169},"Dependencies","\u002Fdocs\u002Fmodules\u002Ftesting\u002Fdependencies","docs\u002F3.modules\u002F14.testing\u002F2.dependencies",{"title":171,"path":172,"stem":173},"Extensions","\u002Fdocs\u002Fmodules\u002Ftesting\u002Fextensions","docs\u002F3.modules\u002F14.testing\u002F3.extensions",{"title":109,"path":175,"stem":176},"\u002Fdocs\u002Fmodules\u002Ftesting\u002Fapi","docs\u002F3.modules\u002F14.testing\u002F4.api",{"title":178,"icon":64,"defaultOpen":64,"path":179,"stem":180,"children":181,"page":64},"Client","\u002Fdocs\u002Fmodules\u002Fclient","docs\u002F3.modules\u002F15.client",[182,185,188],{"title":78,"path":183,"stem":184},"\u002Fdocs\u002Fmodules\u002Fclient\u002Foverview","docs\u002F3.modules\u002F15.client\u002F0.overview",{"title":163,"path":186,"stem":187},"\u002Fdocs\u002Fmodules\u002Fclient\u002Frequests","docs\u002F3.modules\u002F15.client\u002F1.requests",{"title":109,"path":189,"stem":190},"\u002Fdocs\u002Fmodules\u002Fclient\u002Fapi","docs\u002F3.modules\u002F15.client\u002F2.api",{"title":192,"icon":64,"defaultOpen":64,"path":193,"stem":194,"children":195,"page":64},"Logger","\u002Fdocs\u002Fmodules\u002Flogger","docs\u002F3.modules\u002F2.logger",[196,199,203],{"title":78,"path":197,"stem":198},"\u002Fdocs\u002Fmodules\u002Flogger\u002Foverview","docs\u002F3.modules\u002F2.logger\u002F0.overview",{"title":200,"path":201,"stem":202},"Drains & Adapters","\u002Fdocs\u002Fmodules\u002Flogger\u002Fdrivers","docs\u002F3.modules\u002F2.logger\u002F1.drivers",{"title":109,"path":204,"stem":205},"\u002Fdocs\u002Fmodules\u002Flogger\u002Fapi","docs\u002F3.modules\u002F2.logger\u002F2.api",{"title":207,"icon":64,"defaultOpen":64,"path":208,"stem":209,"children":210,"page":64},"Serverless","\u002Fdocs\u002Fmodules\u002Fserverless","docs\u002F3.modules\u002F3.serverless",[211],{"title":78,"path":212,"stem":213},"\u002Fdocs\u002Fmodules\u002Fserverless\u002Foverview","docs\u002F3.modules\u002F3.serverless\u002F0.overview",{"title":215,"icon":64,"defaultOpen":64,"path":216,"stem":217,"children":218,"page":64},"Storage","\u002Fdocs\u002Fmodules\u002Fstorage","docs\u002F3.modules\u002F4.storage",[219,222,226],{"title":78,"path":220,"stem":221},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Foverview","docs\u002F3.modules\u002F4.storage\u002F0.overview",{"title":223,"path":224,"stem":225},"Drivers","\u002Fdocs\u002Fmodules\u002Fstorage\u002Fdrivers","docs\u002F3.modules\u002F4.storage\u002F1.drivers",{"title":109,"path":227,"stem":228},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Fapi","docs\u002F3.modules\u002F4.storage\u002F2.api",{"title":230,"icon":64,"defaultOpen":64,"path":231,"stem":232,"children":233,"page":64},"Web Sockets","\u002Fdocs\u002Fmodules\u002Fweb-sockets","docs\u002F3.modules\u002F5.web-sockets",[234,237],{"title":78,"path":235,"stem":236},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Foverview","docs\u002F3.modules\u002F5.web-sockets\u002F0.overview",{"title":109,"path":238,"stem":239},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Fapi","docs\u002F3.modules\u002F5.web-sockets\u002F1.api",{"title":241,"icon":64,"defaultOpen":64,"path":242,"stem":243,"children":244,"page":64},"Schema","\u002Fdocs\u002Fmodules\u002Fschema","docs\u002F3.modules\u002F6.schema",[245,248,251],{"title":78,"path":246,"stem":247},"\u002Fdocs\u002Fmodules\u002Fschema\u002Foverview","docs\u002F3.modules\u002F6.schema\u002F0.overview",{"title":82,"path":249,"stem":250},"\u002Fdocs\u002Fmodules\u002Fschema\u002Fdecorators","docs\u002F3.modules\u002F6.schema\u002F1.decorators",{"title":252,"path":253,"stem":254},"Scalar","\u002Fdocs\u002Fmodules\u002Fschema\u002Fscalar","docs\u002F3.modules\u002F6.schema\u002F2.scalar",{"title":256,"icon":64,"defaultOpen":64,"path":257,"stem":258,"children":259,"page":64},"Nitro","\u002Fdocs\u002Fmodules\u002Fnitro","docs\u002F3.modules\u002F7.nitro",[260,263,266,270],{"title":78,"path":261,"stem":262},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Foverview","docs\u002F3.modules\u002F7.nitro\u002F0.overview",{"title":215,"path":264,"stem":265},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Fstorage","docs\u002F3.modules\u002F7.nitro\u002F1.storage",{"title":267,"path":268,"stem":269},"File-Based Routes","\u002Fdocs\u002Fmodules\u002Fnitro\u002Ffile-based-routes","docs\u002F3.modules\u002F7.nitro\u002F2.file-based-routes",{"title":271,"path":272,"stem":273},"Middleware","\u002Fdocs\u002Fmodules\u002Fnitro\u002Fmiddleware","docs\u002F3.modules\u002F7.nitro\u002F3.middleware",{"title":275,"icon":64,"defaultOpen":64,"path":276,"stem":277,"children":278,"page":64},"Vite","\u002Fdocs\u002Fmodules\u002Fvite","docs\u002F3.modules\u002F8.vite",[279],{"title":78,"path":280,"stem":281},"\u002Fdocs\u002Fmodules\u002Fvite\u002Foverview","docs\u002F3.modules\u002F8.vite\u002F0.overview",{"title":283,"icon":64,"defaultOpen":64,"path":284,"stem":285,"children":286,"page":64},"Cache","\u002Fdocs\u002Fmodules\u002Fcache","docs\u002F3.modules\u002F9.cache",[287,290],{"title":78,"path":288,"stem":289},"\u002Fdocs\u002Fmodules\u002Fcache\u002Foverview","docs\u002F3.modules\u002F9.cache\u002F0.overview",{"title":109,"path":291,"stem":292},"\u002Fdocs\u002Fmodules\u002Fcache\u002Fapi","docs\u002F3.modules\u002F9.cache\u002F1.api",{"title":294,"icon":295,"path":296,"stem":297,"children":298,"page":64},"Deployment","i-lucide-cloud-upload","\u002Fdocs\u002Fdeployment","docs\u002F4.deployment",[299,302,306,310,314],{"title":78,"path":300,"stem":301},"\u002Fdocs\u002Fdeployment\u002Foverview","docs\u002F4.deployment\u002F0.overview",{"title":303,"path":304,"stem":305},"Vercel","\u002Fdocs\u002Fdeployment\u002Fvercel","docs\u002F4.deployment\u002F1.vercel",{"title":307,"path":308,"stem":309},"AWS Lambda","\u002Fdocs\u002Fdeployment\u002Faws-lambda","docs\u002F4.deployment\u002F2.aws-lambda",{"title":311,"path":312,"stem":313},"Azure Functions","\u002Fdocs\u002Fdeployment\u002Fazure-functions","docs\u002F4.deployment\u002F3.azure-functions",{"title":315,"path":316,"stem":317},"Node.js Server","\u002Fdocs\u002Fdeployment\u002Fnode-server","docs\u002F4.deployment\u002F4.node-server",{"title":319,"icon":320,"path":321,"stem":322,"children":323,"page":64},"Advanced","i-lucide-brain","\u002Fdocs\u002Fadvanced","docs\u002F99.advanced",[324,328,332,336],{"title":325,"path":326,"stem":327},"Custom Decorator","\u002Fdocs\u002Fadvanced\u002Fcustom-decorator","docs\u002F99.advanced\u002F1.custom-decorator",{"title":329,"path":330,"stem":331},"Plugins","\u002Fdocs\u002Fadvanced\u002Fcustom-plugin","docs\u002F99.advanced\u002F2.custom-plugin",{"title":333,"path":334,"stem":335},"Custom CLI Command","\u002Fdocs\u002Fadvanced\u002Fcustom-cli-command","docs\u002F99.advanced\u002F3.custom-cli-command",{"title":337,"path":338,"stem":339},"Writing a Recipe","\u002Fdocs\u002Fadvanced\u002Fwriting-a-recipe","docs\u002F99.advanced\u002F4.writing-a-recipe",[341,343,345,346,347,348,349,351,352,353,354,355,356,357,358,360,362,363,364,365,367,368,369,371,372,373,374,376,377,378,379,380,382,383,384,385,386,388,389,390,391,392,393,395,396,397,398,400,401,402,403,405,406,408,409,410,411,413,414,415,417,418,419,420,422,423,424,425,426,428,429,431,432,433,435,436,437,438,439,440,442,443,444,445],{"path":342},"\u002Fdocs\u002F.navigation",{"path":344},"\u002Fdocs\u002Fgetting-started\u002F.navigation",{"path":12},{"path":19},{"path":23},{"path":27},{"path":350},"\u002Fdocs\u002Fcore-features\u002F.navigation",{"path":38},{"path":42},{"path":46},{"path":50},{"path":54},{"path":58},{"path":62},{"path":359},"\u002Fdocs\u002Fmodules\u002F.navigation",{"path":361},"\u002Fdocs\u002Fmodules\u002Fauth\u002F.navigation",{"path":79},{"path":83},{"path":87},{"path":366},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002F.navigation",{"path":95},{"path":98},{"path":370},"\u002Fdocs\u002Fmodules\u002Ftelemetry\u002F.navigation",{"path":106},{"path":110},{"path":114},{"path":375},"\u002Fdocs\u002Fmodules\u002Fqueue\u002F.navigation",{"path":122},{"path":126},{"path":130},{"path":133},{"path":381},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002F.navigation",{"path":141},{"path":145},{"path":149},{"path":152},{"path":387},"\u002Fdocs\u002Fmodules\u002Ftesting\u002F.navigation",{"path":160},{"path":164},{"path":168},{"path":172},{"path":175},{"path":394},"\u002Fdocs\u002Fmodules\u002Fclient\u002F.navigation",{"path":183},{"path":186},{"path":189},{"path":399},"\u002Fdocs\u002Fmodules\u002Flogger\u002F.navigation",{"path":197},{"path":201},{"path":204},{"path":404},"\u002Fdocs\u002Fmodules\u002Fserverless\u002F.navigation",{"path":212},{"path":407},"\u002Fdocs\u002Fmodules\u002Fstorage\u002F.navigation",{"path":220},{"path":224},{"path":227},{"path":412},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002F.navigation",{"path":235},{"path":238},{"path":416},"\u002Fdocs\u002Fmodules\u002Fschema\u002F.navigation",{"path":246},{"path":249},{"path":253},{"path":421},"\u002Fdocs\u002Fmodules\u002Fnitro\u002F.navigation",{"path":261},{"path":264},{"path":268},{"path":272},{"path":427},"\u002Fdocs\u002Fmodules\u002Fvite\u002F.navigation",{"path":280},{"path":430},"\u002Fdocs\u002Fmodules\u002Fcache\u002F.navigation",{"path":288},{"path":291},{"path":434},"\u002Fdocs\u002Fdeployment\u002F.navigation",{"path":300},{"path":304},{"path":308},{"path":312},{"path":316},{"path":441},"\u002Fdocs\u002Fadvanced\u002F.navigation",{"path":326},{"path":330},{"path":334},{"path":338},{"id":447,"title":109,"body":448,"description":1103,"extension":1104,"links":1105,"meta":1106,"navigation":68,"path":175,"seo":1107,"stem":176,"__hash__":1108},"docs\u002Fdocs\u002F3.modules\u002F14.testing\u002F4.api.md",{"type":449,"value":450,"toc":1089},"minimark",[451,456,494,710,713,881,885,939,943,973,977,1002,1005,1022,1025,1046,1049,1063,1067],[452,453,455],"h2",{"id":454},"createtestapp","createTestApp()",[457,458,459,460,464,465,468,469,472,473,472,476,472,479,472,482,485,486,489,490,493],"p",{},"Boots an app and returns a ",[461,462,463],"code",{},"TestApp",". When boot fails, the ",[461,466,467],{},"TestingError"," names the phase (",[461,470,471],{},"config",", ",[461,474,475],{},"setup",[461,477,478],{},"plugins",[461,480,481],{},"overrides",[461,483,484],{},"initialize"," or ",[461,487,488],{},"ready",") and the step, and keeps the original error as ",[461,491,492],{},"cause",".",[495,496,497,513],"table",{},[498,499,500],"thead",{},[501,502,503,507,510],"tr",{},[504,505,506],"th",{},"Option",[504,508,509],{},"Default",[504,511,512],{},"Description",[514,515,516,532,549,565,583,599,616,641,663,678,693],"tbody",{},[501,517,518,524,529],{},[519,520,521],"td",{},[461,522,523],{},"controllers",[519,525,526],{},[461,527,528],{},"[]",[519,530,531],{},"Controller classes to bind.",[501,533,534,539,543],{},[519,535,536],{},[461,537,538],{},"providers",[519,540,541],{},[461,542,528],{},[519,544,545,546,493],{},"Services to bind as singletons: a class, or ",[461,547,548],{},"[key, implementation]",[501,550,551,555,559],{},[519,552,553],{},[461,554,481],{},[519,556,557],{},[461,558,528],{},[519,560,561,564],{},[461,562,563],{},"[key, replacement]"," pairs, applied after plugins.",[501,566,567,572,577],{},[519,568,569],{},[461,570,571],{},"strictOverrides",[519,573,574],{},[461,575,576],{},"false",[519,578,579,580,493],{},"Wrap object overrides with ",[461,581,582],{},"stub()",[501,584,585,589,593],{},[519,586,587],{},[461,588,478],{},[519,590,591],{},[461,592,528],{},[519,594,595,596,493],{},"Plugins to register: a class, or ",[461,597,598],{},"[class, options]",[501,600,601,605,610],{},[519,602,603],{},[461,604,471],{},[519,606,607],{},[461,608,609],{},"{}",[519,611,612,613,493],{},"Configuration over ",[461,614,615],{},"{ requestLogging: false, logLevel: 'error' }",[501,617,618,623,627],{},[519,619,620],{},[461,621,622],{},"configFile",[519,624,625],{},[461,626,576],{},[519,628,629,632,633,636,637,640],{},[461,630,631],{},"{ cwd }"," loads ",[461,634,635],{},"vercube.config"," and ",[461,638,639],{},".env"," from there.",[501,642,643,648,653],{},[519,644,645],{},[461,646,647],{},"logger",[519,649,650],{},[461,651,652],{},"true",[519,654,655,656,659,660,493],{},"Bind a ",[461,657,658],{},"TestLogger"," and expose it as ",[461,661,662],{},"app.logs",[501,664,665,669,672],{},[519,666,667],{},[461,668,475],{},[519,670,671],{},"none",[519,673,674,677],{},[461,675,676],{},"(app) => void",", run after the bindings above and before plugins are applied.",[501,679,680,685,690],{},[519,681,682],{},[461,683,684],{},"baseUrl",[519,686,687],{},[461,688,689],{},"'http:\u002F\u002Flocalhost'",[519,691,692],{},"Base URL for relative paths.",[501,694,695,700,704],{},[519,696,697],{},[461,698,699],{},"extensions",[519,701,702],{},[461,703,528],{},[519,705,706,707,493],{},"See ",[708,709,171],"a",{"href":172},[452,711,463],{"id":712},"testapp",[495,714,715,724],{},[498,716,717],{},[501,718,719,722],{},[504,720,721],{},"Member",[504,723,512],{},[514,725,726,757,771,790,800,813,829,845,858,871],{},[501,727,728,754],{},[519,729,730,472,733,472,736,472,739,472,742,472,745,472,748,472,751],{},[461,731,732],{},"get(path)",[461,734,735],{},"post()",[461,737,738],{},"put()",[461,740,741],{},"patch()",[461,743,744],{},"delete()",[461,746,747],{},"head()",[461,749,750],{},"options()",[461,752,753],{},"request(method, path)",[519,755,756],{},"Start a request.",[501,758,759,764],{},[519,760,761],{},[461,762,763],{},"fetch(input, init?)",[519,765,766,767,770],{},"Send a ",[461,768,769],{},"Request"," or a path as is.",[501,772,773,778],{},[519,774,775],{},[461,776,777],{},"client",[519,779,780,781,786,787,493],{},"A ",[708,782,783],{"href":183},[461,784,785],{},"@vercube\u002Fclient"," for the app, typed by ",[461,788,789],{},"createTestApp\u003CRoutes>()",[501,791,792,797],{},[519,793,794],{},[461,795,796],{},"agent()",[519,798,799],{},"A client with its own cookie jar.",[501,801,802,810],{},[519,803,804,472,807],{},[461,805,806],{},"resolve(key)",[461,808,809],{},"resolveOptional(key)",[519,811,812],{},"Get a service from the container.",[501,814,815,820],{},[519,816,817],{},[461,818,819],{},"logs",[519,821,822,823,825,826,493],{},"The ",[461,824,658],{},". Throws with ",[461,827,828],{},"logger: false",[501,830,831,839],{},[519,832,833,472,836],{},[461,834,835],{},"app",[461,837,838],{},"container",[519,840,822,841,844],{},[461,842,843],{},"App"," and its container.",[501,846,847,855],{},[519,848,849,472,852],{},[461,850,851],{},"close()",[461,853,854],{},"[Symbol.asyncDispose]()",[519,856,857],{},"Close the app, then tear the extensions down. Safe to call twice.",[501,859,860,865],{},[519,861,862],{},[461,863,864],{},"useImpersonator(handler)",[519,866,867,868,493],{},"For extensions: support ",[461,869,870],{},".as(user)",[501,872,873,878],{},[519,874,875],{},[461,876,877],{},"override()",[519,879,880],{},"Always throws: declare overrides up front.",[452,882,884],{"id":883},"testrequest","TestRequest",[457,886,887,888,472,891,472,894,472,897,472,900,472,903,472,906,472,909,472,912,472,915,472,918,472,921,924,925,472,928,472,931,934,935,938],{},"Builder methods: ",[461,889,890],{},"header()",[461,892,893],{},"headers()",[461,895,896],{},"query()",[461,898,899],{},"cookie()",[461,901,902],{},"json()",[461,904,905],{},"text()",[461,907,908],{},"form()",[461,910,911],{},"urlencoded()",[461,913,914],{},"body()",[461,916,917],{},"bearer()",[461,919,920],{},"as()",[461,922,923],{},"signal()",". Expectations: ",[461,926,927],{},"expect(status)",[461,929,930],{},"expect(header, value)",[461,932,933],{},"expect(check)",". It is sent when awaited or on ",[461,936,937],{},"send()",", once however many times it is awaited.",[452,940,942],{"id":941},"testresponse","TestResponse",[457,944,945,472,948,472,951,472,954,472,957,472,960,472,962,472,964,472,967,472,970,493],{},[461,946,947],{},"status",[461,949,950],{},"headers",[461,952,953],{},"ok",[461,955,956],{},"raw",[461,958,959],{},"request",[461,961,902],{},[461,963,905],{},[461,965,966],{},"bytes()",[461,968,969],{},"cookies()",[461,971,972],{},"events()",[452,974,976],{"id":975},"createtestcontainer","createTestContainer()",[457,978,979,980,472,982,472,984,636,986,988,989,992,993,995,996,999,1000,493],{},"Takes ",[461,981,538],{},[461,983,481],{},[461,985,571],{},[461,987,647],{},", and returns ",[461,990,991],{},"{ container, logs }",". ",[461,994,819],{}," is ",[461,997,998],{},"null"," with ",[461,1001,828],{},[452,1003,582],{"id":1004},"stub",[457,1006,1007,1010,1011,1014,1015,1017,1018,1021],{},[461,1008,1009],{},"stub\u003CT>(partial, name?)"," returns a ",[461,1012,1013],{},"T"," whose missing methods throw a ",[461,1016,467],{}," naming ",[461,1019,1020],{},"name"," and the method.",[452,1023,658],{"id":1024},"testlogger",[457,1026,1027,472,1030,472,1033,472,1036,636,1039,1042,1043,1045],{},[461,1028,1029],{},"records",[461,1031,1032],{},"find(level?, match?)",[461,1034,1035],{},"filter(level?, match?)",[461,1037,1038],{},"clear()",[461,1040,1041],{},"print",", plus every ",[461,1044,192],{}," method. Drains, enrichers and evlog plugins are accepted and ignored.",[452,1047,467],{"id":1048},"testingerror",[457,1050,1051,1052,472,1054,472,1057,636,1060,1062],{},"Thrown for failed expectations, unstubbed methods and failed boots. Carries ",[461,1053,959],{},[461,1055,1056],{},"response",[461,1058,1059],{},"phase",[461,1061,492],{}," where they apply.",[452,1064,1066],{"id":1065},"core-options-used-by-the-module","Core options used by the module",[457,1068,1069,1071,1072,1075,1076,1078,1079,1081,1082,1084,1085,1088],{},[461,1070,455],{}," is built on two ",[461,1073,1074],{},"createApp()"," options that are available to any app: ",[461,1077,622],{}," (",[461,1080,576],{},", or ",[461,1083,631],{},") and ",[461,1086,1087],{},"beforeInitialize(app)",", which runs after plugins have been applied and before the container is initialised.",{"title":1090,"searchDepth":1091,"depth":1092,"links":1093},"",1,2,[1094,1095,1096,1097,1098,1099,1100,1101,1102],{"id":454,"depth":1092,"text":455},{"id":712,"depth":1092,"text":463},{"id":883,"depth":1092,"text":884},{"id":941,"depth":1092,"text":942},{"id":975,"depth":1092,"text":976},{"id":1004,"depth":1092,"text":582},{"id":1024,"depth":1092,"text":658},{"id":1048,"depth":1092,"text":467},{"id":1065,"depth":1092,"text":1066},"Reference for createTestApp, TestApp, the request builder, responses, createTestContainer, stub and TestLogger","md",null,{},{"title":109,"description":1103},"LtwFPicbsOFCYAfDURg2uYap02Rm60_lDew9a8tLews",[1110,1112],{"title":171,"path":172,"stem":173,"description":1111,"children":-1},"Authenticated requests, recorded spans, a clock the test controls, an in-memory queue and storage",{"title":78,"path":183,"stem":184,"description":1113,"children":-1},"Call your Vercube API from a frontend, another service or a test, typed by your controllers",1794396684583]