__NUXT_JSONP__("/guides/core-concepts/writing-and-organizing-tests", (function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,$,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW,aX,aY,aZ,a_,a$,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ,b_,b$,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cI,cJ,cK,cL,cM,cN,cO,cP,cQ,cR,cS,cT,cU,cV,cW,cX,cY,cZ,c_,c$,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,do0,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,dA,dB,dC,dD,dE,dF,dG,dH,dI,dJ,dK,dL,dM,dN,dO,dP,dQ,dR,dS,dT,dU,dV,dW,dX,dY,dZ,d_,d$,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev){return {data:[{algoliaSettings:{appId:"R9KDA5FMJB",apiKey:"b4af59e23bc2fa05281af7dcf13fcae5",indexName:"docs"},guide:{slug:bV,title:bW,toc:[{id:bX,depth:aG,text:bY},{id:bZ,depth:H,text:b_},{id:b$,depth:H,text:ca},{id:cb,depth:H,text:cc},{id:cd,depth:H,text:ce},{id:cf,depth:H,text:cg},{id:ch,depth:H,text:ci},{id:aH,depth:H,text:aH},{id:cj,depth:aG,text:ck},{id:cl,depth:H,text:cm},{id:aU,depth:H,text:aU},{id:cn,depth:H,text:co},{id:cp,depth:H,text:aV},{id:cq,depth:H,text:aV},{id:cr,depth:H,text:cs},{id:ct,depth:H,text:cu},{id:cv,depth:aG,text:cw},{id:cx,depth:H,text:cy},{id:cz,depth:H,text:cA},{id:cB,depth:H,text:cC},{id:cD,depth:aG,text:cE},{id:aW,depth:H,text:aW},{id:aX,depth:H,text:aX},{id:aY,depth:H,text:aY},{id:aZ,depth:H,text:aZ},{id:cF,depth:aG,text:cG},{id:cH,depth:H,text:cI},{id:cJ,depth:H,text:cK},{id:aI,depth:H,text:aI}],body:{type:"root",children:[{type:b,tag:U,props:{type:aq},children:[{type:a,value:f},{type:b,tag:av,props:{id:"What-you-ll-learn"},children:[{type:b,tag:t,props:{href:"#What-you-ll-learn",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:b,tag:x,props:{name:"graduation-cap"},children:[]},{type:a,value:" What you'll learn"}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"How to organize your test and support files."}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"What languages are supported in your test files."}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"How Cypress handles unit tests vs integration tests."}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"How to group your tests."}]},{type:a,value:f}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:U,props:{type:"success"},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:b,tag:S,props:{className:[bt]},children:[{type:a,value:cL}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"We recently gave a \"Best Practices\" conference talk at AssertJS (February 2018).\nThis video demonstrates how to approach breaking down your application and\norganizing your tests."}]},{type:a,value:f},{type:b,tag:x,props:{name:"play-circle"},children:[{type:a,value:f}]},{type:a,value:"\n\n\n"},{type:b,tag:t,props:{href:cM,rel:[_,$,aa],target:ab},children:[{type:a,value:cM}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:av,props:{id:bX},children:[{type:b,tag:t,props:{href:"#Folder-structure",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:bY}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"After adding a new project, Cypress will automatically scaffold out a suggested\nfolder structure. By default it will create:"}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,aJ]},children:[{type:b,tag:k,props:{},children:[{type:a,value:"\u002Fcypress\n  \u002Ffixtures\n    - example.json\n\n  \u002Fintegration\n    \u002Fexamples\n      \u002F1-getting-started\n        - todo.spec.js\n      \u002F2-advanced-examples\n        - actions.spec.js\n        - aliasing.spec.js\n        - assertions.spec.js\n        - connectors.spec.js\n        - cookies.spec.js\n        - cypress_api.spec.js\n        - files.spec.js\n        - local_storage.spec.js\n        - location.spec.js\n        - misc.spec.js\n        - navigation.spec.js\n        - network_requests.spec.js\n        - querying.spec.js\n        - spies_stubs_clocks.spec.js\n        - traversal.spec.js\n        - utilities.spec.js\n        - viewport.spec.js\n        - waiting.spec.js\n        - window.spec.js\n\n  \u002Fplugins\n    - index.js\n\n  \u002Fsupport\n    - commands.js\n    - index.js\n"}]}]}]},{type:a,value:f},{type:b,tag:I,props:{id:bZ},children:[{type:b,tag:t,props:{href:"#Configuring-Folder-Structure",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:b_}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"While Cypress allows you to configure where your tests, fixtures, and support\nfiles are located, if you're starting your first project, we recommend you use\nthe above structure."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You can modify the folder configuration in your configuration file. See\n"},{type:b,tag:u,props:{to:aw},children:[{type:a,value:cN}]},{type:a,value:" for more detail."}]},{type:a,value:f},{type:b,tag:U,props:{type:aq},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:b,tag:S,props:{className:[bt]},children:[{type:a,value:"What files should I add to my '.gitignore file'\n?"}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Cypress will create a\n"},{type:b,tag:u,props:{to:cO},children:[{type:b,tag:k,props:{},children:[{type:a,value:cP}]}]},{type:a,value:" and a\n"},{type:b,tag:u,props:{to:cQ},children:[{type:b,tag:k,props:{},children:[{type:a,value:cR}]}]},{type:a,value:" to store the\nscreenshots and videos taken during the testing of your application. Many users\nwill opt to add these folders to their "},{type:b,tag:k,props:{},children:[{type:a,value:cS}]},{type:a,value:" file. Additionally, if you\nare storing sensitive environment variables in your configuration file\n("},{type:b,tag:k,props:{},children:[{type:a,value:cT}]},{type:a,value:" by default) or\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Fguides\u002Fenvironment-variables#Option-2-cypress-env-json"},children:[{type:b,tag:k,props:{},children:[{type:a,value:cU}]}]},{type:a,value:",\nthese should also be ignored when you check into source control."}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:I,props:{id:b$},children:[{type:b,tag:t,props:{href:"#Test-files",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:ca}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Test files are located in "},{type:b,tag:k,props:{},children:[{type:a,value:bu}]},{type:a,value:cV},{type:b,tag:u,props:{to:aw},children:[{type:a,value:cW}]},{type:a,value:" to another\ndirectory. Test files may be written as:"}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:k,props:{},children:[{type:a,value:".js"}]}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:k,props:{},children:[{type:a,value:".jsx"}]}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:k,props:{},children:[{type:a,value:".coffee"}]}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:k,props:{},children:[{type:a,value:".cjsx"}]}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Cypress also supports "},{type:b,tag:k,props:{},children:[{type:a,value:"ES2015"}]},{type:a,value:" out of the box. You can use either\n"},{type:b,tag:k,props:{},children:[{type:a,value:"ES2015 modules"}]},{type:a,value:aK},{type:b,tag:k,props:{},children:[{type:a,value:"CommonJS modules"}]},{type:a,value:". This means you can "},{type:b,tag:k,props:{},children:[{type:a,value:cX}]},{type:a,value:aK},{type:b,tag:k,props:{},children:[{type:a,value:cY}]},{type:a,value:"\nboth "},{type:b,tag:S,props:{},children:[{type:a,value:"npm packages"}]},{type:a,value:a_},{type:b,tag:S,props:{},children:[{type:a,value:"local relative modules"}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:U,props:{type:aq},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:b,tag:S,props:{className:[bt]},children:[{type:a,value:"Example Recipe"}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Check out our recipe using\n"},{type:b,tag:u,props:{to:"\u002Fexamples\u002Fexamples\u002Frecipes#Fundamentals"},children:[{type:a,value:"ES2015 and CommonJS modules"}]},{type:a,value:o}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"To see an example of every command used in Cypress, open the\n"},{type:b,tag:t,props:{href:"https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fcypress-example-kitchensink\u002Ftree\u002Fmaster\u002Fcypress\u002Fintegration\u002F2-advanced-examples",rel:[_,$,aa],target:ab},children:[{type:b,tag:k,props:{},children:[{type:a,value:"2-advanced-examples"}]},{type:a,value:" folder"}]},{type:a,value:"\nwithin your "},{type:b,tag:k,props:{},children:[{type:a,value:bu}]},{type:a,value:" folder."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"To start writing tests for your app, create a new file like "},{type:b,tag:k,props:{},children:[{type:a,value:"app_spec.js"}]},{type:a,value:" within\nyour "},{type:b,tag:k,props:{},children:[{type:a,value:bu}]},{type:a,value:" folder. Refresh your tests list in the Cypress Test\nRunner and your new file should have appeared in the list."}]},{type:a,value:f},{type:b,tag:I,props:{id:cb},children:[{type:b,tag:t,props:{href:"#Fixture-Files",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cc}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Fixtures are used as external pieces of static data that can be used by your\ntests. Fixture files are located in "},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Ffixtures"}]},{type:a,value:cV},{type:b,tag:u,props:{to:aw},children:[{type:a,value:cW}]},{type:a,value:" to another\ndirectory."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You would typically use them with the "},{type:b,tag:u,props:{to:"\u002Fapi\u002Fcommands\u002Ffixture"},children:[{type:b,tag:k,props:{},children:[{type:a,value:"cy.fixture()"}]}]},{type:a,value:"\ncommand and most often when you're stubbing\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Fguides\u002Fnetwork-requests"},children:[{type:a,value:cZ}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:I,props:{id:cd},children:[{type:b,tag:t,props:{href:"#Asset-Files",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:ce}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"There are some folders that may be generated after a test run, containing assets\nthat were generated during the test run."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You may consider adding these folders to your "},{type:b,tag:k,props:{},children:[{type:a,value:cS}]},{type:a,value:" file to ignore\nchecking these files into source control."}]},{type:a,value:f},{type:b,tag:ac,props:{id:"Download-Files"},children:[{type:b,tag:t,props:{href:"#Download-Files",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:"Download Files"}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Any files downloaded while testing an application's file download feature will\nbe stored in the "},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fconfiguration#Downloads"},children:[{type:b,tag:k,props:{},children:[{type:a,value:"downloadsFolder"}]}]},{type:a,value:"\nwhich is set to "},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fdownloads"}]},{type:a,value:bv}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,aJ]},children:[{type:b,tag:k,props:{},children:[{type:a,value:"\u002Fcypress\n  \u002Fdownloads\n    - records.csv\n"}]}]}]},{type:a,value:f},{type:b,tag:ac,props:{id:"Screenshot-Files"},children:[{type:b,tag:t,props:{href:"#Screenshot-Files",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:"Screenshot Files"}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If screenshots were taken via the "},{type:b,tag:u,props:{to:"\u002Fapi\u002Fcommands\u002Fscreenshot"},children:[{type:a,value:"cy.screenshot()"}]},{type:a,value:"\ncommand or automatically when a test fails, the screenshots are stored in the\n"},{type:b,tag:u,props:{to:cO},children:[{type:b,tag:k,props:{},children:[{type:a,value:cP}]}]},{type:a,value:" which is set\nto "},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fscreenshots"}]},{type:a,value:bv}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,aJ]},children:[{type:b,tag:k,props:{},children:[{type:a,value:"\u002Fcypress\n  \u002Fscreenshots\n    \u002Fapp_spec.js\n      - Navigates to main menu (failures).png\n"}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"To learn more about screenshots and settings available, see\n"},{type:b,tag:u,props:{to:c_},children:[{type:a,value:bw}]}]},{type:a,value:f},{type:b,tag:ac,props:{id:"Video-Files"},children:[{type:b,tag:t,props:{href:"#Video-Files",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:"Video Files"}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Any videos recorded of the run are stored in the\n"},{type:b,tag:u,props:{to:cQ},children:[{type:b,tag:k,props:{},children:[{type:a,value:cR}]}]},{type:a,value:" which is set to\n"},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fvideos"}]},{type:a,value:bv}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,aJ]},children:[{type:b,tag:k,props:{},children:[{type:a,value:"\u002Fcypress\n  \u002Fvideos\n    - app_spec.js.mp4\n"}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"To learn more about videos and settings available, see\n"},{type:b,tag:u,props:{to:c_},children:[{type:a,value:bw}]}]},{type:a,value:f},{type:b,tag:I,props:{id:cf},children:[{type:b,tag:t,props:{href:"#Plugins-file",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cg}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The plugins file is a special file that executes in Node before the project is\nloaded, before the browser launches, and during your test execution. While the\nCypress tests execute in the browser, the plugins file runs in the background\nNode process, giving your tests the ability to access the file system and the\nrest of the operating system by calling the "},{type:b,tag:u,props:{to:"\u002Fapi\u002Fcommands\u002Ftask"},children:[{type:a,value:"cy.task()"}]},{type:a,value:"\ncommand."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The plugins file is a good place to define how you want to bundle the spec files\nvia the "},{type:b,tag:u,props:{to:"\u002Fapi\u002Fplugins\u002Fpreprocessors-api"},children:[{type:a,value:"preprocessors"}]},{type:a,value:", how to find and launch\nthe browsers via the "},{type:b,tag:u,props:{to:"\u002Fapi\u002Fplugins\u002Fbrowser-launch-api"},children:[{type:a,value:"browser launch API"}]},{type:a,value:", and\nother cool things. Read our "},{type:b,tag:u,props:{to:"\u002Fguides\u002Ftooling\u002Fplugins-guide"},children:[{type:a,value:"plugins guide"}]},{type:a,value:" for\nmore details and examples."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The initial imported plugins file can be\n"},{type:b,tag:u,props:{to:aw},children:[{type:a,value:"configured to another file"}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:I,props:{id:ch},children:[{type:b,tag:t,props:{href:"#Support-file",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:ci}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"By default Cypress will automatically include the support file\n"},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fsupport\u002Findex.js"}]},{type:a,value:". This file runs "},{type:b,tag:S,props:{},children:[{type:a,value:aL}]},{type:a,value:" every single spec file. We\ndo this purely as a convenience mechanism so you don't have to import this file\nin every single one of your spec files."}]},{type:a,value:f},{type:b,tag:U,props:{type:a$},children:[{type:a,value:f},{type:b,tag:x,props:{name:aM},children:[{type:a,value:f}]},{type:a,value:"\n Keep in mind, when clicking \"Run all\nspecs\" after \n"},{type:b,tag:u,props:{to:aN},children:[{type:a,value:ax}]},{type:a,value:"\n, the code\nin the support file is executed once before all spec files, instead of once\nbefore each spec file. See \n"},{type:b,tag:t,props:{href:c$},children:[{type:a,value:bx}]},{type:a,value:"\n for more details.\n"}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The initial imported support file can be configured to another file or turned\noff completely using the\n"},{type:b,tag:u,props:{to:aw},children:[{type:a,value:"supportFile"}]},{type:a,value:" configuration."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The support file is a great place to put reusable behavior such as\n"},{type:b,tag:u,props:{to:"\u002Fapi\u002Fcypress-api\u002Fcustom-commands"},children:[{type:a,value:"custom commands"}]},{type:a,value:" or global overrides that you\nwant applied and available to all of your spec files."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"From your support file you can "},{type:b,tag:k,props:{},children:[{type:a,value:cX}]},{type:a,value:aK},{type:b,tag:k,props:{},children:[{type:a,value:cY}]},{type:a,value:" other files to keep things\norganized."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"We automatically seed an example support file, which has several commented out\nexamples."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You can define behaviors in a "},{type:b,tag:k,props:{},children:[{type:a,value:aL}]},{type:a,value:aK},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" within any of the\n"},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fsupport"}]},{type:a,value:" files:"}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:T}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:da},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:"log"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'I run before every test in every spec file!!!!!!'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fglobal-hooks.png",alt:"Global hooks for tests"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:U,props:{type:aq},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:b,tag:S,props:{},children:[{type:a,value:db}]},{type:a,value:" This example assumes you are already familiar with Mocha\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Fcore-concepts\u002Fwriting-and-organizing-tests#Hooks"},children:[{type:a,value:"hooks"}]},{type:a,value:o}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:ac,props:{id:bx},children:[{type:b,tag:t,props:{href:c$,ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:bx}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Cypress executes the support file before the spec file. For example when you\nclick on a test file named "},{type:b,tag:k,props:{},children:[{type:a,value:"spec-a.js"}]},{type:a,value:" via\n"},{type:b,tag:u,props:{to:aN},children:[{type:a,value:ax}]},{type:a,value:", then the Test Runner\nexecutes the files in the following order:"}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,dc]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dd}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:ay}]},{type:a,value:P}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,az]},children:[{type:a,value:aA}]},{type:b,tag:c,props:{className:[d,aB]},children:[{type:b,tag:c,props:{className:[d,e,aC]},children:[{type:a,value:am}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]},{type:a,value:de},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:b,tag:c,props:{className:[d,P]},children:[]},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aD}]},{type:a,value:P}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u003C!-- bundled spec file --\u003E"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:ay}]},{type:a,value:P}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,az]},children:[{type:a,value:aA}]},{type:b,tag:c,props:{className:[d,aB]},children:[{type:b,tag:c,props:{className:[d,e,aC]},children:[{type:a,value:am}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]},{type:a,value:df},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:b,tag:c,props:{className:[d,P]},children:[]},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aD}]},{type:a,value:P}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The same happens when using the\n"},{type:b,tag:u,props:{to:dg},children:[{type:a,value:by}]},{type:a,value:" command: a new browser\nwindow is opened for each support and spec file pair."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"But when you click on \"Run all specs\" button after\n"},{type:b,tag:u,props:{to:aN},children:[{type:a,value:ax}]},{type:a,value:", the Test Runner\nbundles and concatenates all specs together, in essence running scripts like\nshown below. This means the code in the support file is executed once before all\nspec files, instead of once before each spec file."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,dc]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dd}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:ay}]},{type:a,value:P}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,az]},children:[{type:a,value:aA}]},{type:b,tag:c,props:{className:[d,aB]},children:[{type:b,tag:c,props:{className:[d,e,aC]},children:[{type:a,value:am}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]},{type:a,value:de},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:b,tag:c,props:{className:[d,P]},children:[]},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aD}]},{type:a,value:P}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u003C!-- bundled first spec file, second spec file, etc --\u003E"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:ay}]},{type:a,value:P}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,az]},children:[{type:a,value:aA}]},{type:b,tag:c,props:{className:[d,aB]},children:[{type:b,tag:c,props:{className:[d,e,aC]},children:[{type:a,value:am}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]},{type:a,value:df},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:b,tag:c,props:{className:[d,P]},children:[]},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aD}]},{type:a,value:P}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:ay}]},{type:a,value:P}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,az]},children:[{type:a,value:aA}]},{type:b,tag:c,props:{className:[d,aB]},children:[{type:b,tag:c,props:{className:[d,e,aC]},children:[{type:a,value:am}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]},{type:a,value:"integration\u002Fspec-b.js"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:b,tag:c,props:{className:[d,P]},children:[]},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aD}]},{type:a,value:P}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:a,value:"\n...\n"},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:ay}]},{type:a,value:P}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,az]},children:[{type:a,value:aA}]},{type:b,tag:c,props:{className:[d,aB]},children:[{type:b,tag:c,props:{className:[d,e,aC]},children:[{type:a,value:am}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]},{type:a,value:"integration\u002Fspec-n.js"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:W}]}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:b,tag:c,props:{className:[d,P]},children:[]},{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,J]},children:[{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aD}]},{type:a,value:P}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:X}]}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:U,props:{type:aq},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Having a single support file when running all specs together might execute\n"},{type:b,tag:k,props:{},children:[{type:a,value:aL}]},{type:a,value:a_},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hooks in ways you may not anticipate. Read\n"},{type:b,tag:t,props:{href:bz,rel:[_,$,aa],target:ab},children:[{type:a,value:bA}]},{type:a,value:"\nfor examples."}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:I,props:{id:aH},children:[{type:b,tag:t,props:{href:"#Troubleshooting",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aH}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If Cypress does not find the spec files for some reason, you can troubleshoot\nits logic by opening or running Cypress with\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Ftroubleshooting#Print-DEBUG-logs"},children:[{type:a,value:"debug logs"}]},{type:a,value:" enabled:"}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,"language-shell"]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,dh,di]},children:[{type:a,value:dj}]},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:am}]},{type:a,value:"cypress:server:specs npx cypress "},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:"open"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"## or"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,dh,di]},children:[{type:a,value:dj}]},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:am}]},{type:a,value:"cypress:server:specs npx cypress run\n"}]}]}]},{type:a,value:f},{type:b,tag:av,props:{id:cj},children:[{type:b,tag:t,props:{href:"#Writing-tests",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:ck}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Cypress is built on top of "},{type:b,tag:u,props:{to:bB},children:[{type:a,value:bC}]},{type:a,value:dk},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fbundled-tools#Chai"},children:[{type:a,value:"Chai"}]},{type:a,value:". We support both Chai's "},{type:b,tag:k,props:{},children:[{type:a,value:"BDD"}]},{type:a,value:dk},{type:b,tag:k,props:{},children:[{type:a,value:"TDD"}]},{type:a,value:" assertion styles. Tests you write in Cypress will mostly adhere to this\nstyle."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If you're familiar with writing tests in JavaScript, then writing tests in\nCypress will be a breeze."}]},{type:a,value:f},{type:b,tag:I,props:{id:cl},children:[{type:b,tag:t,props:{href:"#Test-Structure",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cm}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The test interface, borrowed from\n"},{type:b,tag:u,props:{to:bB},children:[{type:a,value:bC}]},{type:a,value:", provides "},{type:b,tag:k,props:{},children:[{type:a,value:dl}]},{type:a,value:dm},{type:b,tag:k,props:{},children:[{type:a,value:dn}]},{type:a,value:do0},{type:b,tag:k,props:{},children:[{type:a,value:dp}]},{type:a,value:a_},{type:b,tag:k,props:{},children:[{type:a,value:dq}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:b,tag:k,props:{},children:[{type:a,value:dn}]},{type:a,value:dr},{type:b,tag:k,props:{},children:[{type:a,value:dl}]},{type:a,value:a_},{type:b,tag:k,props:{},children:[{type:a,value:dq}]},{type:a,value:dr},{type:b,tag:k,props:{},children:[{type:a,value:dp}]},{type:a,value:",\nso choose whatever terminology works best for you."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:ds}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Q]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:t},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:ar}]},{type:a,value:bc},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bd}]},{type:a,value:be},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,Q]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:t},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:ar}]},{type:a,value:bc},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bE}]},{type:a,value:be},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,Q]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dt}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:t},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:ar}]},{type:a,value:bc},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bF}]},{type:a,value:be},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,Q]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:du}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:t},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:ar}]},{type:a,value:bc},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:"*"}]},{type:a,value:be},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dv}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dw}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'Unit test our math functions'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bf}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'math'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dx}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:as}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dy}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aP}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bh}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bE}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dz}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'can divide numbers'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dt}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"27"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:as}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'can multiply numbers'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:du}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aP}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"4"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dA}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F -- End: Our Cypress Tests --"}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:I,props:{id:aU},children:[{type:b,tag:t,props:{href:"#Hooks",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aU}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Cypress also provides hooks (borrowed from\n"},{type:b,tag:u,props:{to:bB},children:[{type:a,value:bC}]},{type:a,value:")."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"These are helpful to set conditions that you want to run before a set of tests\nor before each test. They're also helpful to clean up conditions after a set of\ntests or after each test."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:aL}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dB}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs once before all tests"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:T}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dB}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs before every test block"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dC}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs after each test block"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs once all tests are done"}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'Hooks'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:aL}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs once before all tests in the block"}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:T}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs before each test in the block"}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dC}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs after each test in the block"}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F runs once after all tests in the block"}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:ac,props:{id:"The-order-of-hook-and-test-execution-is-as-follows"},children:[{type:b,tag:t,props:{href:"#The-order-of-hook-and-test-execution-is-as-follows",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:"The order of hook and test execution is as follows:"}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:dE},{type:b,tag:k,props:{},children:[{type:a,value:"before()"}]},{type:a,value:dF}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:dG},{type:b,tag:k,props:{},children:[{type:a,value:"beforeEach()"}]},{type:a,value:dH}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"Tests run"}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:dG},{type:b,tag:k,props:{},children:[{type:a,value:bJ}]},{type:a,value:dH}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:dE},{type:b,tag:k,props:{},children:[{type:a,value:bK}]},{type:a,value:dF}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:U,props:{type:a$},children:[{type:a,value:f},{type:b,tag:x,props:{name:aM},children:[{type:a,value:f}]},{type:a,value:"\n Before writing \n"},{type:b,tag:k,props:{},children:[{type:a,value:bK}]},{type:a,value:"\n or\n\n"},{type:b,tag:k,props:{},children:[{type:a,value:bJ}]},{type:a,value:"\n hooks, please see our\n\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fbest-practices#Using-after-or-afterEach-hooks"},children:[{type:a,value:"thoughts on the anti-pattern of cleaning up state with "},{type:b,tag:k,props:{},children:[{type:a,value:bK}]},{type:a,value:aK},{type:b,tag:k,props:{},children:[{type:a,value:bJ}]}]},{type:a,value:bi}]},{type:a,value:f},{type:b,tag:U,props:{type:a$},children:[{type:a,value:f},{type:b,tag:x,props:{name:aM},children:[{type:a,value:f}]},{type:a,value:dI},{type:b,tag:k,props:{},children:[{type:a,value:ae}]},{type:a,value:dJ},{type:b,tag:k,props:{},children:[{type:a,value:bf}]},{type:a,value:dK},{type:b,tag:t,props:{href:bz,rel:[_,$,aa],target:ab},children:[{type:a,value:bA}]},{type:a,value:bi}]},{type:a,value:f},{type:b,tag:I,props:{id:cn},children:[{type:b,tag:t,props:{href:"#Excluding-and-Including-Tests",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:co}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"To run a specified suite or test, append "},{type:b,tag:k,props:{},children:[{type:a,value:dL}]},{type:a,value:" to the function. All nested\nsuites will also be executed. This gives us the ability to run one test at a\ntime and is the recommended way to write a test suite."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:ds}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,Q]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:bL}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:bM}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bN},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bj}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:as}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bk}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bl}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:"&&"}]},{type:a,value:" num "},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bj}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aP}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bk}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bl}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:ar}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dN}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:bM}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bN},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bj}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:as}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bk}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bl}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:ar}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bO}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:bM}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bN},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bj}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aP}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bk}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bl}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,Q,ah]},children:[{type:a,value:ar}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dO}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dv}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:dw}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'Unit Test FizzBuzz'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,Q]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:"arr"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:" expected"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F loop through the array of nums and make"}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F sure they equal what is expected"}]},{type:a,value:"\n    arr"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:dP}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:bL}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:dM}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bL},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:"expected"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:dQ},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:"only"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dR}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aR}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bh}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dS}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aS}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'returns \"buzz\" when number is multiple of 5'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aR}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"10"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dA}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"25"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aS}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'returns \"fizzbuzz\" when number is multiple of both 3 and 5'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aR}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"15"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"30"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"60"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aS}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dN}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"To skip a specified suite or test, append "},{type:b,tag:k,props:{},children:[{type:a,value:".skip()"}]},{type:a,value:" to the function. All nested\nsuites will also be skipped."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:a,value:R},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:dT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dR}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:aQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aR}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bI}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bh}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dS}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aS}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:I,props:{id:cp},children:[{type:b,tag:t,props:{href:"#Test-Configuration",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aV}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"It is possible to apply "},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fconfiguration#Test-Configuration"},children:[{type:a,value:"test configuration"}]},{type:a,value:"\nvalues to a suite or test. Pass a configuration object to the test or suite\nfunction as the second argument."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:dU}]},{type:a,value:f},{type:b,tag:ac,props:{id:dV},children:[{type:b,tag:t,props:{href:"#Syntax",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:dV}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bm},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bn},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bo},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bf}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bm},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bn},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bo},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bm},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bn},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bo},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bH}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:bm},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bn},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:bo},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:I,props:{id:cq},children:[{type:b,tag:t,props:{href:"#Test-Configuration-1",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aV}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:dU}]},{type:a,value:f},{type:b,tag:ac,props:{id:"Allowed-config-values"},children:[{type:b,tag:t,props:{href:"#Allowed-config-values",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:"Allowed config values"}]},{type:a,value:f},{type:b,tag:x,props:{name:aM,color:"red"},children:[{type:a,value:f}]},{type:a,value:"\n \n"},{type:b,tag:S,props:{},children:[{type:a,value:db}]},{type:a,value:"\n Some\nconfiguration values are readonly and cannot be changed via test configuration.\nBe sure to review the list of\n\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fconfiguration##Test-Configuration"},children:[{type:a,value:"test configuration options"}]},{type:a,value:bi},{type:b,tag:ac,props:{id:"Suite-configuration"},children:[{type:b,tag:t,props:{href:"#Suite-configuration",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:"Suite configuration"}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If you want to target a suite of tests to run or be excluded when run in a\nspecific browser, you can override the "},{type:b,tag:k,props:{},children:[{type:a,value:dW}]},{type:a,value:" configuration within the suite\nconfiguration. The "},{type:b,tag:k,props:{},children:[{type:a,value:dW}]},{type:a,value:" option accepts the same arguments as\n"},{type:b,tag:u,props:{to:"\u002Fapi\u002Fcypress-api\u002Fisbrowser"},children:[{type:a,value:"Cypress.isBrowser()"}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The following suite of tests will be skipped if running tests in Chrome\nbrowsers."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,at]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'When NOT in Chrome'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:" browser"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'!chrome'"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'Shows warning'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'.browser-warning'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ao}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dX}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'For optimal viewing, use Chrome browser'"}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'Links to browser compatibility doc'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'a.browser-compat'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ao}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'have.attr'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'href'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:"and"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'include'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'browser-compatibility'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The following suite of tests will only execute when running in the Firefox\nbrowser. It will overwrite the viewport resolution in one of the tests, and will\nmerge any current environment variables with the provided ones."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,at]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'When in Firefox'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:"\n    browser"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'firefox'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n    viewportWidth"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dY}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n    viewportHeight"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dZ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n    env"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,bP]},children:[{type:a,value:"DEMO"}]},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,bp]},children:[{type:a,value:z}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,bP]},children:[{type:a,value:d_}]},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:d$}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'Sets the expected viewport and API URL'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:aF},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ea}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'viewportWidth'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dY}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:aF},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ea}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'viewportHeight'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dZ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:aF},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:eb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:d$}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:bg},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'Uses the closest API environment variable'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:"\n        env"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:"\n          "},{type:b,tag:c,props:{className:[d,bP]},children:[{type:a,value:d_}]},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ec}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:aF},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:eb}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ec}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F other environment variables remain unchanged"}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:a,value:aF},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bQ}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'DEMO'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:"be"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,bp]},children:[{type:a,value:z}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:ac,props:{id:"Single-test-configuration"},children:[{type:b,tag:t,props:{href:"#Single-test-configuration",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:"Single test configuration"}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You can configure the number of retry attempts during "},{type:b,tag:k,props:{},children:[{type:a,value:by}]},{type:a,value:" or\n"},{type:b,tag:k,props:{},children:[{type:a,value:ax}]},{type:a,value:". See "},{type:b,tag:u,props:{to:ed},children:[{type:a,value:ee}]},{type:a,value:" for more\ninformation."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,at]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'should redirect unauthenticated user to sign-in page'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:"\n    retries"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:"\n      runMode"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:as}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:"\n      openMode"},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:Z}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aO}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bq}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bR}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F ..."}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:I,props:{id:cr},children:[{type:b,tag:t,props:{href:"#Dynamically-Generate-Tests",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cs}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You can dynamically generate tests using JavaScript."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'if your app uses jQuery'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:";"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aR}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'mouseover'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'mouseout'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'mouseenter'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'mouseleave'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:aS}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:dP}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,an]},children:[{type:a,value:"event"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'triggers event: '"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bd}]},{type:a,value:ef},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F if your app uses jQuery, then we can trigger a jQuery"}]},{type:a,value:O},{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F event that causes the event callback to fire"}]},{type:a,value:"\n      cy"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'#with-jquery'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:"invoke"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'trigger'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:ef},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'#messages'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:au},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ao}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dX}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'the event '"}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bd}]},{type:a,value:" event "},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bd}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'was fired'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The code above will produce a suite with 4 tests:"}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,aJ]},children:[{type:b,tag:k,props:{},children:[{type:a,value:"\u003E if your app uses jQuery\n  \u003E triggers event: 'mouseover'\n  \u003E triggers event: 'mouseout'\n  \u003E triggers event: 'mouseenter'\n  \u003E triggers event: 'mouseleave'\n"}]}]}]},{type:a,value:f},{type:b,tag:I,props:{id:ct},children:[{type:b,tag:t,props:{href:"#Assertion-Styles",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cu}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Cypress supports both BDD ("},{type:b,tag:k,props:{},children:[{type:a,value:V}]},{type:a,value:bF},{type:b,tag:k,props:{},children:[{type:a,value:ao}]},{type:a,value:") and TDD ("},{type:b,tag:k,props:{},children:[{type:a,value:"assert"}]},{type:a,value:") style plain\nassertions. "},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fassertions"},children:[{type:a,value:"Read more about plain assertions."}]}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,al]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dx}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aE}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:as}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:dy}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:"\n  assert"},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:bD}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aP}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bh}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,p]},children:[{type:a,value:bE}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:dz}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'these numbers are equal'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:eg},{type:b,tag:u,props:{to:"\u002Fapi\u002Fcommands\u002Fshould"},children:[{type:a,value:".should()"}]},{type:a,value:" command and its alias\n"},{type:b,tag:u,props:{to:"\u002Fapi\u002Fcommands\u002Fand"},children:[{type:a,value:".and()"}]},{type:a,value:" can also be used to more easily chain assertions off\nof Cypress commands.\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Fcore-concepts\u002Fintroduction-to-cypress#Assertions"},children:[{type:a,value:"Read more about assertions."}]}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,at]},children:[{type:b,tag:k,props:{},children:[{type:a,value:aF},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:"wrap"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ba}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:bG}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ao}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'equal'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:as}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:av,props:{id:cv},children:[{type:b,tag:t,props:{href:"#Running-tests",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cw}]},{type:a,value:f},{type:b,tag:I,props:{id:cx},children:[{type:b,tag:t,props:{href:"#Run-a-single-spec-file",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cy}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"We suggest running test files individually by clicking on the spec filename to\nensure the best performance. For example the\n"},{type:b,tag:t,props:{href:"https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fcypress-example-realworld",rel:[_,$,aa],target:ab},children:[{type:a,value:"Cypress RealWorld App"}]},{type:a,value:"\nhas multiple test files, but below we run a single \"new-transaction.spec.ts\"\ntest file."}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Frun-single-spec.gif",alt:"Running a single spec"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:I,props:{id:cz},children:[{type:b,tag:t,props:{href:"#Run-all-specs",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cA}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You can run all spec files together by clicking the \"Run all specs\" button. This\nmode is equivalent to concatenating all spec files together into a single piece\nof test code."}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Frun-all-specs.gif",alt:"Running all specs"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:U,props:{type:a$},children:[{type:a,value:f},{type:b,tag:x,props:{name:aM},children:[{type:a,value:f}]},{type:a,value:dI},{type:b,tag:k,props:{},children:[{type:a,value:ae}]},{type:a,value:dJ},{type:b,tag:k,props:{},children:[{type:a,value:bf}]},{type:a,value:dK},{type:b,tag:t,props:{href:bz,rel:[_,$,aa],target:ab},children:[{type:a,value:bA}]},{type:a,value:bi}]},{type:a,value:f},{type:b,tag:I,props:{id:cB},children:[{type:b,tag:t,props:{href:"#Run-filtered-specs",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cC}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You can also run a subset of all specs by entering a text search filter. Only\nthe specs with relative file paths containing the search filter will remain and\nbe run as if concatenating all spec files together when clicking the \"Run N\nspecs\" button."}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"The search filter is case-insensitive; the filter \"ui\" will match both\n\"UI-spec.js\" and \"admin-ui-spec.js\" files."}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"The search filter is applied to the entire relative spec file path, thus you\ncan use folder names to limit the specs; the filter \"ui\" will match both\n\"admin-ui.spec.js\" and \"ui\u002Fadmin.spec.js\" files."}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Frun-selected-specs.gif",alt:"Running specs matching the search filter"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:av,props:{id:cD},children:[{type:b,tag:t,props:{href:"#Test-statuses",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cE}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"After the Cypress spec completes every test has one of 4 statuses: "},{type:b,tag:S,props:{},children:[{type:a,value:"passed"}]},{type:a,value:dm},{type:b,tag:S,props:{},children:[{type:a,value:eh}]},{type:a,value:do0},{type:b,tag:S,props:{},children:[{type:a,value:br}]},{type:a,value:", or "},{type:b,tag:S,props:{},children:[{type:a,value:"skipped"}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:I,props:{id:aW},children:[{type:b,tag:t,props:{href:"#Passed",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aW}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Passed tests have successfully completed all their commands without failing any\nassertions. The test screenshot below shows a passed test:"}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Fpassing-test.png",alt:"Test runner with a single passed test"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Note that a test can pass after several\n"},{type:b,tag:u,props:{to:ed},children:[{type:a,value:"test retries"}]},{type:a,value:". In that case the Command Log shows\nsome failed attempts, but ultimately the entire test finishes successfully."}]},{type:a,value:f},{type:b,tag:I,props:{id:aX},children:[{type:b,tag:t,props:{href:"#Failed",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aX}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Good news - the failed test has found a problem. Could be much worse - it could\nbe a user hitting this bug!"}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Ffailing-test.png",alt:"Test runner with a single failed test"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"After a test fails, the screenshots and videos can help find the problem so it\ncan be fixed."}]},{type:a,value:f},{type:b,tag:I,props:{id:aY},children:[{type:b,tag:t,props:{href:"#Pending",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aY}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"You can write "},{type:b,tag:ap,props:{},children:[{type:a,value:"placeholder"}]},{type:a,value:" tests in several ways as shown below, and Cypress\nknows NOT to run them. Cypress marks all the tests below as "},{type:b,tag:ap,props:{},children:[{type:a,value:br}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,at]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ei}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'is not written yet'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:dQ},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:dT}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ej}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,Q]},children:[{type:a,value:j}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bq}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bR}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ek}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bs}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:el}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bs}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:em}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:en}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ao}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:eo}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:"100"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:"xit"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'another test'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:F},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:V}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,bp]},children:[{type:a,value:ep}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,q]},children:[{type:a,value:Y}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,bp]},children:[{type:a,value:z}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"All 3 tests above are marked "},{type:b,tag:ap,props:{},children:[{type:a,value:br}]},{type:a,value:" when Cypress finishes running the spec\nfile."}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Fdifferent-pending.png",alt:"Test runner with three pending tests"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"So remember - if you (the test writer) knowingly skip a test using one of the\nabove three ways, Cypress counts it as a "},{type:b,tag:ap,props:{},children:[{type:a,value:br}]},{type:a,value:" test."}]},{type:a,value:f},{type:b,tag:I,props:{id:aZ},children:[{type:b,tag:t,props:{href:"#Skipped",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aZ}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The last test status is for tests that you "},{type:b,tag:ap,props:{},children:[{type:a,value:"meant"}]},{type:a,value:" to run, but these tests were\nskipped due to some run-time error. For example, imagine a group of tests\nsharing the same "},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hook - where you visit the page in the\n"},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hook."}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,at]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,E]},children:[{type:a,value:"\u002F\u002F\u002F \u003Creference types=\"cypress\" \u002F\u003E"}]},{type:a,value:ad},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:ae}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ei}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:T}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bq}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:bR}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'hides footer initially'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'.filters'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ao}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'not.exist'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:af},{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:R}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ej}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:ek}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bs}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:el}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bs}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:em}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:ai},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:aj}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:en}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:ao}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:eo}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:m}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,w]},children:[{type:a,value:aO}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:y},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If the "},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hook completes and both tests finish, two tests are passing."}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Ftwo-passing.png",alt:"Test runner showing two passing tests"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"But what happens if a command inside the "},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hook fails? For example,\nlet's pretend we want to visit a non-existent page "},{type:b,tag:k,props:{},children:[{type:a,value:"\u002Fdoes-not-exist"}]},{type:a,value:" instead of\nthe "},{type:b,tag:k,props:{},children:[{type:a,value:bF}]},{type:a,value:". If we change our "},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" to fail:"}]},{type:a,value:f},{type:b,tag:K,props:{className:[L]},children:[{type:b,tag:M,props:{className:[N,at]},children:[{type:b,tag:k,props:{},children:[{type:b,tag:c,props:{className:[d,j]},children:[{type:a,value:T}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,C,p]},children:[{type:a,value:D}]},{type:a,value:g},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:s}]},{type:a,value:da},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:o}]},{type:b,tag:c,props:{className:[d,v,j,q]},children:[{type:a,value:bq}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:i}]},{type:b,tag:c,props:{className:[d,n]},children:[{type:a,value:"'\u002Fdoes-not-exist'"}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:r}]},{type:b,tag:c,props:{className:[d,e]},children:[{type:a,value:h}]},{type:a,value:f}]}]}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"When Cypress starts executing the first test, the "},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hook fails. Now\nthe first test is marked as "},{type:b,tag:S,props:{},children:[{type:a,value:eh}]},{type:a,value:". BUT if the "},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hook failed\nonce, why would we execute it "},{type:b,tag:ap,props:{},children:[{type:a,value:"again"}]},{type:a,value:" before the second test? It would just fail\nthe same way! So Cypress "},{type:b,tag:ap,props:{},children:[{type:a,value:"skips"}]},{type:a,value:" the remaining tests in that block, because they\nwould also fail due to the "},{type:b,tag:k,props:{},children:[{type:a,value:T}]},{type:a,value:" hook failure."}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002F1-skipped.png",alt:"Test runner showing a skipped test"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If we collapse the test commands, we can see the empty box marking the skipped\ntest \"adds 2 todos\"."}]},{type:a,value:f},{type:b,tag:ag,props:{src:"\u002Fimg\u002Fguides\u002Fcore-concepts\u002Fskipped.png",alt:"Test runner showing one failed and one skipped test"},children:[{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The tests that were meant to be executed but were skipped due to some run-time\nproblem are marked \"skipped\" by Cypress."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:b,tag:S,props:{},children:[{type:a,value:"Tip:"}]},{type:a,value:" read the blog post\n"},{type:b,tag:t,props:{href:"https:\u002F\u002Fglebbahmutov.com\u002Fblog\u002Fcypress-test-statuses\u002F",rel:[_,$,aa],target:ab},children:[{type:a,value:"Cypress Test Statuses"}]},{type:a,value:"\nfor more examples explaining the reasoning behind these test statuses. Read the\nblog post\n"},{type:b,tag:t,props:{href:"https:\u002F\u002Fglebbahmutov.com\u002Fblog\u002Fwriting-tests-progress\u002F",rel:[_,$,aa],target:ab},children:[{type:a,value:"Writing Test Progress"}]},{type:a,value:"\nto learn how to use the pending tests to tracking the test strategy\nimplementation."}]},{type:a,value:f},{type:b,tag:av,props:{id:cF},children:[{type:b,tag:t,props:{href:"#Watching-tests",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cG}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"When running in using "},{type:b,tag:u,props:{to:aN},children:[{type:a,value:ax}]},{type:a,value:",\nCypress watches the filesystem for changes to your spec files. Soon after adding\nor updating a test Cypress will reload it and run all of the tests in that spec\nfile."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"This makes for a productive development experience because you can add and edit\ntests as you're implementing a feature and the Cypress user interface will\nalways reflect the results of your latest edits."}]},{type:a,value:f},{type:b,tag:U,props:{type:aq},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Remember to use\n"},{type:b,tag:u,props:{to:"\u002Fguides\u002Fcore-concepts\u002Fwriting-and-organizing-tests#Excluding-and-Including-Tests"},children:[{type:b,tag:k,props:{},children:[{type:a,value:dL}]}]},{type:a,value:"\nto limit which tests are run: this can be especially useful when you've got a\nlot of tests in a single spec file that you're constantly editing; consider also\nsplitting your tests into smaller files each dealing with logically related\nbehavior."}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:I,props:{id:cH},children:[{type:b,tag:t,props:{href:"#What-is-watched",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cI}]},{type:a,value:f},{type:b,tag:ac,props:{id:eq},children:[{type:b,tag:t,props:{href:"#Files",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:eq}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fconfiguration"},children:[{type:a,value:"Configuration file ("},{type:b,tag:k,props:{},children:[{type:a,value:cT}]},{type:a,value:") by default"}]}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:u,props:{to:"\u002Fguides\u002Fguides\u002Fenvironment-variables"},children:[{type:a,value:cU}]}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:ac,props:{id:er},children:[{type:b,tag:t,props:{href:"#Folders",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:er}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"Integration directory ("},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fintegration\u002F"}]},{type:a,value:bS}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"Support directory ("},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fsupport\u002F"}]},{type:a,value:bS}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"Plugins directory ("},{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Fplugins\u002F"}]},{type:a,value:bS}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The folder, the files within the folder, and all child folders and their files\n(recursively) are watched."}]},{type:a,value:f},{type:b,tag:U,props:{type:aq},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Those folder paths refer to the\n"},{type:b,tag:u,props:{to:aw},children:[{type:a,value:"default folder paths"}]},{type:a,value:". If\nyou've configured Cypress to use different folder paths then the folders\nspecific to your configuration will be watched."}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:I,props:{id:cJ},children:[{type:b,tag:t,props:{href:"#What-isn-t-watched",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:cK}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Everything else; this includes, but isn't limited to, the following:"}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:a,value:"Your application code"}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:k,props:{},children:[{type:a,value:"node_modules"}]}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:k,props:{},children:[{type:a,value:"cypress\u002Ffixtures\u002F"}]}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If you're developing using a modern JS-based web application stack then you've\nlikely got support for some form of hot module replacement which is responsible\nfor watching your application code—HTML, CSS, JS, etc.—and\ntransparently reloading your application in response to changes."}]},{type:a,value:f},{type:b,tag:I,props:{id:aI},children:[{type:b,tag:t,props:{href:"#Configuration",ariaHidden:z,tabIndex:A},children:[{type:b,tag:c,props:{className:[x,B]},children:[]}]},{type:a,value:aI}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Set the "},{type:b,tag:u,props:{to:"\u002Fguides\u002Freferences\u002Fconfiguration#Global"},children:[{type:b,tag:k,props:{},children:[{type:a,value:es}]}]},{type:a,value:"\nconfiguration property to "},{type:b,tag:k,props:{},children:[{type:a,value:ep}]},{type:a,value:" to disable file watching."}]},{type:a,value:f},{type:b,tag:U,props:{type:"warning"},children:[{type:a,value:f},{type:b,tag:l,props:{},children:[{type:b,tag:S,props:{},children:[{type:a,value:"Nothing"}]},{type:a,value:" is watched during\n"},{type:b,tag:u,props:{to:dg},children:[{type:a,value:by}]},{type:a,value:o}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:eg},{type:b,tag:k,props:{},children:[{type:a,value:es}]},{type:a,value:" property is only in effect when running Cypress using\n"},{type:b,tag:u,props:{to:aN},children:[{type:a,value:ax}]},{type:a,value:o}]},{type:a,value:f}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"The component responsible for the file-watching behavior in Cypress is the\n"},{type:b,tag:t,props:{href:et,rel:[_,$,aa],target:ab},children:[{type:b,tag:k,props:{},children:[{type:a,value:"webpack-preprocessor"}]}]},{type:a,value:".\nThis is the default file-watcher packaged with Cypress."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"If you need further control of the file-watching behavior you can configure this\npreprocessor explicitly: it exposes options that allow you to configure behavior\nsuch as "},{type:b,tag:ap,props:{},children:[{type:a,value:"what"}]},{type:a,value:" is watched and the delay before emitting an \"update\" event after\na change."}]},{type:a,value:f},{type:b,tag:l,props:{},children:[{type:a,value:"Cypress also ships other "},{type:b,tag:u,props:{to:"\u002Fplugins\u002Fdirectory"},children:[{type:a,value:"file-watching preprocessors"}]},{type:a,value:";\nyou'll have to configure these explicitly if you want to use them."}]},{type:a,value:f},{type:b,tag:ak,props:{},children:[{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:t,props:{href:"https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fcypress-watch-preprocessor",rel:[_,$,aa],target:ab},children:[{type:a,value:"Cypress Watch Preprocessor"}]}]},{type:a,value:f},{type:b,tag:G,props:{},children:[{type:b,tag:t,props:{href:et,rel:[_,$,aa],target:ab},children:[{type:a,value:"Cypress webpack Preprocessor"}]}]},{type:a,value:f}]}]},dir:"\u002Fguides\u002Fcore-concepts",path:"\u002Fguides\u002Fcore-concepts\u002Fwriting-and-organizing-tests",extension:".md",createdAt:eu,updatedAt:eu},sidebarItems:[{title:"Overview",slug:"overview",children:[{title:"Why Cypress?",slug:"why-cypress"},{title:"Key Differences",slug:"key-differences"}]},{title:"Getting Started",slug:"getting-started",children:[{title:"Installing Cypress",slug:"installing-cypress"},{title:"Writing Your First Test",slug:"writing-your-first-test"},{title:"Testing Your App",slug:"testing-your-app"}]},{title:"Core Concepts",slug:"core-concepts",children:[{title:"Introduction to Cypress",slug:"introduction-to-cypress"},{title:bW,slug:bV},{title:"Retry-ability",slug:"retry-ability"},{title:"Interacting with Elements",slug:"interacting-with-elements"},{title:"Variables and Aliases",slug:"variables-and-aliases"},{title:"Conditional Testing",slug:"conditional-testing"},{title:"The Test Runner",slug:"test-runner"},{title:"Cypress Studio",slug:"cypress-studio"}]},{title:"Dashboard",slug:"dashboard",children:[{title:bT,slug:bU},{title:"Projects",slug:"projects"},{title:"Runs",slug:"runs"},{title:"Organizations",slug:"organizations"},{title:"Users",slug:"users"},{title:"Bitbucket Integration",slug:"bitbucket-integration"},{title:"GitHub Integration",slug:"github-integration"},{title:"GitLab Integration",slug:"gitlab-integration"},{title:"Jira Integration",slug:"jira-integration"},{title:"Slack Integration",slug:"slack-integration"},{title:"Analytics",slug:"analytics"},{title:"Flaky Test Management",slug:"flaky-test-management"},{title:"Smart Orchestration",slug:"smart-orchestration"}]},{title:"Guides",slug:"guides",children:[{title:"Command Line",slug:"command-line"},{title:"Module API",slug:"module-api"},{title:"Debugging",slug:"debugging"},{title:cZ,slug:"network-requests"},{title:ee,slug:"test-retries"},{title:"Parallelization",slug:"parallelization"},{title:"Environment Variables",slug:"environment-variables"},{title:"Stubs, Spies, and Clocks",slug:"stubs-spies-and-clocks"},{title:bw,slug:"screenshots-and-videos"},{title:"Launching Browsers",slug:"launching-browsers"},{title:"Cross Browser Testing",slug:"cross-browser-testing"},{title:"Web Security",slug:"web-security"}]},{title:"Testing Strategies",slug:"testing-strategies",children:[{title:"Auth0 Authentication",slug:"auth0-authentication"},{title:"Amazon Cognito Authentication",slug:"amazon-cognito-authentication"},{title:"Okta Authentication",slug:"okta-authentication"},{title:"Google Authentication",slug:"google-authentication"},{title:"Working with GraphQL",slug:"working-with-graphql"}]},{title:"Continuous Integration",slug:"continuous-integration",children:[{title:bT,slug:bU},{title:"CI Provider Examples",slug:"ci-provider-examples"},{title:"CircleCI",slug:"circleci"},{title:"GitHub Actions",slug:"github-actions"},{title:"GitLab CI",slug:"gitlab-ci"},{title:"Bitbucket Pipelines",slug:"bitbucket-pipelines"},{title:"AWS CodeBuild",slug:"aws-codebuild"}]},{title:"Component Testing",slug:"component-testing",children:[{title:bT,slug:bU},{title:"Framework Configuration",slug:"framework-configuration"}]},{title:"Migrating to Cypress",slug:"migrating-to-cypress",children:[{title:"Protractor",slug:"protractor"}]},{title:"Tooling",slug:"tooling",children:[{title:"IDE Integration",slug:"IDE-integration"},{title:"Plugins",slug:"plugins-guide"},{title:"Reporters",slug:"reporters"},{title:"TypeScript",slug:"typescript-support"},{title:"Visual Testing",slug:"visual-testing"},{title:"Code Coverage",slug:"code-coverage"}]},{title:"References",slug:"references",children:[{title:"Assertions",slug:"assertions"},{title:aI,slug:cN},{title:"Client Certificates",slug:"client-certificates"},{title:"Proxy Configuration",slug:"proxy-configuration"},{title:cL,slug:"best-practices"},{title:"Error Messages",slug:"error-messages"},{title:"Bundled Tools",slug:"bundled-tools"},{title:"Trade-offs",slug:"trade-offs"},{title:aH,slug:"troubleshooting"},{title:"Changelog",slug:"changelog"},{title:"Migration Guide",slug:"migration-guide"},{title:"Roadmap",slug:"roadmap"},{title:"Experiments",slug:"experiments"}]}],metaDescription:"What you'll learn How to organize your test and support files. What languages are supported in your test files. How Cypress handles unit tests vs",path:"core-concepts\u002Fwriting-and-organizing-tests",banner:ev}],fetch:[],mutations:ev}}("text","element","span","token","punctuation","\n"," ",")","(","function","code","p",",","string",".","operator","property-access","}","{","a","nuxt-link","method","number","icon","\n  ","true",-1,"icon-link","arrow","=\u003E","comment","\n    ","li",3,"h3","tag","div","nuxt-content-highlight","pre","line-numbers","\n      ","script","keyword","it","strong","beforeEach","alert","expect","\"","\u003E","to",":","nofollow","noopener","noreferrer","_blank","h4","\n\n","describe","\n\n  ","docs-image","control-flow","\n    cy","get","ul","language-javascript","=","parameter","should","em","info","return","3","language-js","\n        ","h2","\u002Fguides\u002Freferences\u002Fconfiguration#Folders-Files","cypress open","\u003C","attr-name","src","attr-value","attr-equals","\u003C\u002F","eq","cy",2,"Troubleshooting","Configuration","language-text"," or ","before","exclamation-triangle","\u002Fguides\u002Fguides\u002Fcommand-line#cypress-open","2","5","numsExpectedToEq","[","]","equal","Hooks","Test Configuration","Passed","Failed","Pending","Skipped"," and ","danger","add"," b"," a ","+"," b\n","context","\n\n    ","12","\n.\n","%","===","0","name"," config"," fn","boolean","visit","pending","type","alert-header","cypress\u002Fintegration"," by default.","Screenshots and Videos","Execution","cypress run","https:\u002F\u002Fglebbahmutov.com\u002Fblog\u002Frun-all-specs\u002F","Be careful when running all specs together","\u002Fguides\u002Freferences\u002Fbundled-tools#Mocha","Mocha","subtract","-","\u002F","1","specify","9","afterEach()","after()","num","if","num ","'fizz'","constant","env","'\u002F'"," by default)","Introduction","introduction","writing-and-organizing-tests","Writing and Organizing Tests","Folder-structure","Folder structure","Configuring-Folder-Structure","Configuring Folder Structure","Test-files","Test files","Fixture-Files","Fixture Files","Asset-Files","Asset Files","Plugins-file","Plugins file","Support-file","Support file","Writing-tests","Writing tests","Test-Structure","Test Structure","Excluding-and-Including-Tests","Excluding and Including Tests","Test-Configuration","Test-Configuration-1","Dynamically-Generate-Tests","Dynamically Generate Tests","Assertion-Styles","Assertion Styles","Running-tests","Running tests","Run-a-single-spec-file","Run a single spec file","Run-all-specs","Run all specs","Run-filtered-specs","Run filtered specs","Test-statuses","Test statuses","Watching-tests","Watching tests","What-is-watched","What is watched?","What-isn-t-watched","What isn't watched?","Best Practices","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5XQOK0v_YRE","configuration","\u002Fguides\u002Freferences\u002Fconfiguration#Screenshots","screenshotsFolder","\u002Fguides\u002Freferences\u002Fconfiguration#Videos","videosFolder",".gitignore","cypress.json","cypress.env.json"," by default, but can be\n","configured","import","require","Network Requests","\u002Fguides\u002Fguides\u002Fscreenshots-and-videos#Screenshots","#Execution","\n  cy","Note:","language-html","\u003C!-- bundled support file --\u003E","support\u002Findex.js","integration\u002Fspec-a.js","\u002Fguides\u002Fguides\u002Fcommand-line#cypress-run","assign-left","variable","DEBUG"," and\n","describe()",",\n","context()",", ","it()","specify()"," is identical to ","\u002F\u002F -- Start: Our Application Code --","divide","multiply","\u002F\u002F -- End: Our Application Code --","\u002F\u002F -- Start: Our Cypress Tests --","'can add numbers'","'can subtract numbers'","7","20","\u002F\u002F root-level hook","afterEach","after","All "," hooks run (once)","Any "," hooks run","\n Be wary of root-level hooks, as they\ncould execute in a surprising order when clicking the \"Run all specs\" button.\nInstead place them inside \n","\n or \n","\n suites for isolation. Read\n\n",".only","fizzbuzz","'fizzbuzz'","'buzz'","forEach","\n\n  it","'returns \"fizz\" when number is multiple of 3'","18","skip","This configuration will take effect during the suite or tests where they are set\nthen return to their previous default values after the suite or tests are\ncomplete.","Syntax","browser","'contain'","1024","700","API","'http:\u002F\u002Flocalhost:9000'","config","'API'","'http:\u002F\u002Flocalhost:3003'","\u002Fguides\u002Fguides\u002Ftest-retries","Test Retries"," event","The ","failed","'TodoMVC'","'adds 2 todos'","'.new-todo'","'learn testing{enter}'","'be cool{enter}'","'.todo-list li'","'have.length'","false","Files","Folders","watchForFileChanges","https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fcypress\u002Ftree\u002Fmaster\u002Fnpm\u002Fwebpack-preprocessor","2021-12-03T21:31:10.570Z",void 0)));