[{"data":1,"prerenderedAt":345},["ShallowReactive",2],{"term-c\u002Fchai":3,"related-c\u002Fchai":331},{"id":4,"title":5,"acronym":6,"body":7,"category":313,"description":314,"difficulty":315,"extension":316,"letter":317,"meta":318,"navigation":114,"path":319,"related":320,"seo":325,"sitemap":326,"stem":329,"subcategory":6,"__hash__":330},"terms\u002Fterms\u002Fc\u002Fchai.md","Chai",null,{"type":8,"value":9,"toc":307},"minimark",[10,15,32,36,51,55,296,300,303],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18,19,23,24,27,28,31],"p",{},"Chai is an assertion library that makes your test checks read like English. Instead of ",[20,21,22],"code",{},"assert.equal(x, 5)"," you can write ",[20,25,26],{},"expect(x).to.equal(5)"," or even ",[20,29,30],{},"x.should.equal(5)",". It's grammar school for your tests — everything sounds more natural.",[11,33,35],{"id":34},"real-talk","Real Talk",[16,37,38,39,42,43,46,47,50],{},"Chai is a BDD\u002FTDD assertion library for Node.js and browsers, commonly paired with Mocha. It provides three assertion styles: ",[20,40,41],{},"assert"," (classical), ",[20,44,45],{},"expect"," (BDD chainable), and ",[20,48,49],{},"should"," (extends objects). Chai plugins extend it with additional matchers.",[11,52,54],{"id":53},"show-me-the-code","Show Me The Code",[56,57,62],"pre",{"className":58,"code":59,"language":60,"meta":61,"style":61},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const { expect } = require('chai');\n\nexpect([1, 2, 3]).to.have.lengthOf(3);\nexpect('hello').to.be.a('string');\nexpect({ name: 'Alice' }).to.deep.equal({ name: 'Alice' });\nexpect(fn).to.throw(TypeError);\n","javascript","",[20,63,64,109,116,167,210,274],{"__ignoreMap":61},[65,66,69,73,77,81,84,87,91,94,97,101,103,106],"span",{"class":67,"line":68},"line",1,[65,70,72],{"class":71},"spNyl","const",[65,74,76],{"class":75},"sMK4o"," {",[65,78,80],{"class":79},"sTEyZ"," expect ",[65,82,83],{"class":75},"}",[65,85,86],{"class":75}," =",[65,88,90],{"class":89},"s2Zo4"," require",[65,92,93],{"class":79},"(",[65,95,96],{"class":75},"'",[65,98,100],{"class":99},"sfazB","chai",[65,102,96],{"class":75},[65,104,105],{"class":79},")",[65,107,108],{"class":75},";\n",[65,110,112],{"class":67,"line":111},2,[65,113,115],{"emptyLinePlaceholder":114},true,"\n",[65,117,119,121,124,128,131,134,136,139,142,145,148,150,153,155,158,160,163,165],{"class":67,"line":118},3,[65,120,45],{"class":89},[65,122,123],{"class":79},"([",[65,125,127],{"class":126},"sbssI","1",[65,129,130],{"class":75},",",[65,132,133],{"class":126}," 2",[65,135,130],{"class":75},[65,137,138],{"class":126}," 3",[65,140,141],{"class":79},"])",[65,143,144],{"class":75},".",[65,146,147],{"class":79},"to",[65,149,144],{"class":75},[65,151,152],{"class":79},"have",[65,154,144],{"class":75},[65,156,157],{"class":89},"lengthOf",[65,159,93],{"class":79},[65,161,162],{"class":126},"3",[65,164,105],{"class":79},[65,166,108],{"class":75},[65,168,170,172,174,176,179,181,183,185,187,189,192,194,197,199,201,204,206,208],{"class":67,"line":169},4,[65,171,45],{"class":89},[65,173,93],{"class":79},[65,175,96],{"class":75},[65,177,178],{"class":99},"hello",[65,180,96],{"class":75},[65,182,105],{"class":79},[65,184,144],{"class":75},[65,186,147],{"class":79},[65,188,144],{"class":75},[65,190,191],{"class":79},"be",[65,193,144],{"class":75},[65,195,196],{"class":89},"a",[65,198,93],{"class":79},[65,200,96],{"class":75},[65,202,203],{"class":99},"string",[65,205,96],{"class":75},[65,207,105],{"class":79},[65,209,108],{"class":75},[65,211,213,215,217,220,224,227,230,233,235,238,240,242,244,246,249,251,254,256,258,260,262,264,266,268,270,272],{"class":67,"line":212},5,[65,214,45],{"class":89},[65,216,93],{"class":79},[65,218,219],{"class":75},"{",[65,221,223],{"class":222},"swJcz"," name",[65,225,226],{"class":75},":",[65,228,229],{"class":75}," '",[65,231,232],{"class":99},"Alice",[65,234,96],{"class":75},[65,236,237],{"class":75}," }",[65,239,105],{"class":79},[65,241,144],{"class":75},[65,243,147],{"class":79},[65,245,144],{"class":75},[65,247,248],{"class":79},"deep",[65,250,144],{"class":75},[65,252,253],{"class":89},"equal",[65,255,93],{"class":79},[65,257,219],{"class":75},[65,259,223],{"class":222},[65,261,226],{"class":75},[65,263,229],{"class":75},[65,265,232],{"class":99},[65,267,96],{"class":75},[65,269,237],{"class":75},[65,271,105],{"class":79},[65,273,108],{"class":75},[65,275,277,279,282,284,286,288,291,294],{"class":67,"line":276},6,[65,278,45],{"class":89},[65,280,281],{"class":79},"(fn)",[65,283,144],{"class":75},[65,285,147],{"class":79},[65,287,144],{"class":75},[65,289,290],{"class":89},"throw",[65,292,293],{"class":79},"(TypeError)",[65,295,108],{"class":75},[11,297,299],{"id":298},"when-youll-hear-this","When You'll Hear This",[16,301,302],{},"\"Use Chai's deep.equal for comparing objects in Mocha tests.\" \u002F \"Chai makes assertions read almost like natural language.\"",[304,305,306],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":61,"searchDepth":111,"depth":111,"links":308},[309,310,311,312],{"id":13,"depth":111,"text":14},{"id":34,"depth":111,"text":35},{"id":53,"depth":111,"text":54},{"id":298,"depth":111,"text":299},"testing","Chai is an assertion library that makes your test checks read like English. Instead of `assert.equal(x, 5)` you can write `expect(x).to.","intermediate","md","c",{},"\u002Fterms\u002Fc\u002Fchai",[321,322,323,324],"Mocha","Assertion","Jest","BDD",{"title":5,"description":314},{"changefreq":327,"priority":328},"weekly",0.7,"terms\u002Fc\u002Fchai","LFQLNqJnJX6Z91XWYZC4CQ5RBtv5wRFcm8Vi7UYXLXg",[332,336,339,342],{"title":322,"path":333,"acronym":6,"category":313,"difficulty":334,"description":335},"\u002Fterms\u002Fa\u002Fassertion","beginner","An assertion is your test saying 'I DEMAND this is true!'. It's you checking that the result is what you expected.",{"title":324,"path":337,"acronym":324,"category":313,"difficulty":315,"description":338},"\u002Fterms\u002Fb\u002Fbdd","BDD is like writing your tests in plain English so your non-coder boss can also understand them.",{"title":323,"path":340,"acronym":6,"category":313,"difficulty":334,"description":341},"\u002Fterms\u002Fj\u002Fjest","Jest is the most popular JavaScript testing framework.",{"title":321,"path":343,"acronym":6,"category":313,"difficulty":315,"description":344},"\u002Fterms\u002Fm\u002Fmocha","Mocha is an older, flexible JavaScript test runner that lets you pick your own assertion library and mocking tools.",1776518264442]