UNPKG

unexpected

Version:
437 lines (341 loc) 24.9 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"> <link rel="stylesheet" href="../../../static/normalize.css" type="text/css" media="screen" /> <link rel="stylesheet" href="../../../static/main.css" type="text/css" media="screen" /> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="../../../static/bug-icon-black.ico"> <title>any - to be a</title> </head> <body class="sidebar-hidden has-sidebar"> <header> <div class="logo-icon"></div> <nav> <ul> <li class="menu-toggle-item"> <button class="menu-toggle" onclick="toggleSidebar()"></button> </li> <li class=""><a href="../../..">Unexpected</a></li> <li class="active"><a href="../to-be">Assertions</a></li> <li class=""><a href="../../../api/addAssertion">API</a></li> <li class=""><a href="../../../plugins">Plugins</a></li> </ul> </nav> <div class="search" style="visibility: hidden"> <input id="search" placeholder="Search..." value=""> <div id="searchDropDown" class="dropDown"> <ul id="searchResults"></ul> </div> </div> </header> <section id="assertions"> <nav id="assertion-menu" class="sidebar js-remember-scroll-position"> <ul> <li> <h3>any</h3> <ul> <li class=""> <a href="../to-be">to be</a> </li> <li class="active"> <a href="">to be a</a> </li> <li class=""> <a href="../to-be-defined">to be defined</a> </li> <li class=""> <a href="../to-be-falsy">to be falsy</a> </li> <li class=""> <a href="../to-be-null">to be null</a> </li> <li class=""> <a href="../to-be-ok">to be ok</a> </li> <li class=""> <a href="../to-be-truthy">to be truthy</a> </li> <li class=""> <a href="../to-be-undefined">to be undefined</a> </li> <li class=""> <a href="../to-equal">to equal</a> </li> <li class=""> <a href="../to-satisfy">to satisfy</a> </li> <li class=""> <a href="../when-passed-as-parameter-to">when passed as parameter to</a> </li> </ul> </li> <li> <h3>string</h3> <ul> <li class=""> <a href="../../string/to-be">to be</a> </li> <li class=""> <a href="../../string/to-be-empty">to be empty</a> </li> <li class=""> <a href="../../string/to-be-greater-than">to be greater than</a> </li> <li class=""> <a href="../../string/to-be-greater-than-or-equal-to">to be greater than or equal to</a> </li> <li class=""> <a href="../../string/to-be-less-than">to be less than</a> </li> <li class=""> <a href="../../string/to-be-less-than-or-equal-to">to be less than or equal to</a> </li> <li class=""> <a href="../../string/to-be-non-empty">to be non-empty</a> </li> <li class=""> <a href="../../string/to-be-within">to be within</a> </li> <li class=""> <a href="../../string/to-begin-with">to begin with</a> </li> <li class=""> <a href="../../string/to-contain">to contain</a> </li> <li class=""> <a href="../../string/to-end-with">to end with</a> </li> <li class=""> <a href="../../string/to-have-length">to have length</a> </li> <li class=""> <a href="../../string/to-match">to match</a> </li> </ul> </li> <li> <h3>number</h3> <ul> <li class=""> <a href="../../number/to-be-close-to">to be close to</a> </li> <li class=""> <a href="../../number/to-be-finite">to be finite</a> </li> <li class=""> <a href="../../number/to-be-greater-than">to be greater than</a> </li> <li class=""> <a href="../../number/to-be-greater-than-or-equal-to">to be greater than or equal to</a> </li> <li class=""> <a href="../../number/to-be-infinite">to be infinite</a> </li> <li class=""> <a href="../../number/to-be-less-than">to be less than</a> </li> <li class=""> <a href="../../number/to-be-less-than-or-equal-to">to be less than or equal to</a> </li> <li class=""> <a href="../../number/to-be-NaN">to be NaN</a> </li> <li class=""> <a href="../../number/to-be-negative">to be negative</a> </li> <li class=""> <a href="../../number/to-be-positive">to be positive</a> </li> <li class=""> <a href="../../number/to-be-within">to be within</a> </li> </ul> </li> <li> <h3>boolean</h3> <ul> <li class=""> <a href="../../boolean/to-be-false">to be false</a> </li> <li class=""> <a href="../../boolean/to-be-true">to be true</a> </li> </ul> </li> <li> <h3>object</h3> <ul> <li class=""> <a href="../../object/to-be-canonical">to be canonical</a> </li> <li class=""> <a href="../../object/to-have-key">to have key</a> </li> <li class=""> <a href="../../object/to-have-keys">to have keys</a> </li> <li class=""> <a href="../../object/to-have-keys-satisfying">to have keys satisfying</a> </li> <li class=""> <a href="../../object/to-have-properties">to have properties</a> </li> <li class=""> <a href="../../object/to-have-property">to have property</a> </li> <li class=""> <a href="../../object/to-have-values-satisfying">to have values satisfying</a> </li> </ul> </li> <li> <h3>function</h3> <ul> <li class=""> <a href="../../function/to-call-the-callback">to call the callback</a> </li> <li class=""> <a href="../../function/to-call-the-callback-with-error">to call the callback with error</a> </li> <li class=""> <a href="../../function/to-call-the-callback-without-error">to call the callback without error</a> </li> <li class=""> <a href="../../function/to-error">to error</a> </li> <li class=""> <a href="../../function/to-have-arity">to have arity</a> </li> <li class=""> <a href="../../function/to-throw">to throw</a> </li> </ul> </li> <li> <h3>Promise</h3> <ul> <li class=""> <a href="../../Promise/to-be-fulfilled">to be fulfilled</a> </li> <li class=""> <a href="../../Promise/to-be-rejected">to be rejected</a> </li> <li class=""> <a href="../../Promise/when-fulfilled">when fulfilled</a> </li> <li class=""> <a href="../../Promise/when-rejected">when rejected</a> </li> </ul> </li> <li> <h3>Error</h3> <ul> <li class=""> <a href="../../Error/to-have-message">to have message</a> </li> </ul> </li> <li> <h3>array-like</h3> <ul> <li class=""> <a href="../../array-like/to-be-empty">to be empty</a> </li> <li class=""> <a href="../../array-like/to-be-non-empty">to be non-empty</a> </li> <li class=""> <a href="../../array-like/to-contain">to contain</a> </li> <li class=""> <a href="../../array-like/to-have-items-satisfying">to have items satisfying</a> </li> <li class=""> <a href="../../array-like/to-have-length">to have length</a> </li> <li class=""> <a href="../../array-like/when-passed-as-parameters-to">when passed as parameters to</a> </li> </ul> </li> <li> <h3>Buffer</h3> <ul> <li class=""> <a href="../../Buffer/when-decoded-as">when decoded as</a> </li> </ul> </li> </ul> </nav> <div class="main" tabindex="-1"> <div class="content"> <h1>to be a</h1> <p>Asserts that the subject is an instance of a given type.</p> <p>This assertion make use of the type system in Unexpected. That means you can assertion that a value is an instance of a type specified by it&#39;s name.</p> <p>For more information abort the type system see: <a href="/api/addType/">Types</a></p> <div class="code lang-javascript"> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #0086b3">true</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'boolean'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #0086b3">5</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'number'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #df5000">'abc'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'string'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span>expect<span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'function'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">({</span>foo<span style="color: #000000">:</span>&nbsp;<span style="color: #0086b3">123</span><span style="color: #000000">},</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'object'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">([</span><span style="color: #0086b3">123</span><span style="color: #000000">],</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'array'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #183691">/regex/</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'regexp'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #183691">/regex/</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'regex'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #183691">/regex/</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'regular&nbsp;expression'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #a71d5d">new</span>&nbsp;Error<span style="color: #000000">(),</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'Error'</span><span style="color: #000000">);</span></div> </div><p>The assertions also respect the inheritance chain:</p> <div class="code lang-javascript"> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span>expect<span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'function'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span>expect<span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'object'</span><span style="color: #000000">);</span></div> </div><p>Aliases are provided for common types:</p> <div class="code lang-javascript"> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #0086b3">true</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a&nbsp;boolean'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #0086b3">5</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a&nbsp;number'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #df5000">'abc'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a&nbsp;string'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span>expect<span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a&nbsp;function'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">({</span>foo<span style="color: #000000">:</span>&nbsp;<span style="color: #0086b3">123</span><span style="color: #000000">},</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an&nbsp;object'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">([</span><span style="color: #0086b3">123</span><span style="color: #000000">],</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an&nbsp;array'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #183691">/regex/</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a&nbsp;regexp'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #183691">/regex/</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a&nbsp;regex'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #183691">/regex/</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a&nbsp;regular&nbsp;expression'</span><span style="color: #000000">);</span></div> </div><p>If you provide a constructor as the type the assertion will use <code>instanceof</code>.</p> <div class="code lang-javascript"> <div><span style="color: #a71d5d">function</span>&nbsp;<span style="color: #000000">Person</span><span style="color: #000000">(</span>name<span style="color: #000000">)</span>&nbsp;<span style="color: #000000">{</span></div> <div>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #a71d5d">this</span><span style="color: #000000">.</span>name&nbsp;<span style="color: #a71d5d">=</span>&nbsp;name<span style="color: #000000">;</span></div> <div><span style="color: #000000">}</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #a71d5d">new</span>&nbsp;Person<span style="color: #000000">(</span><span style="color: #df5000">'John&nbsp;Doe'</span><span style="color: #000000">),</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;Person<span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #a71d5d">new</span>&nbsp;Person<span style="color: #000000">(</span><span style="color: #df5000">'John&nbsp;Doe'</span><span style="color: #000000">),</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an'</span><span style="color: #000000">,</span>&nbsp;Object<span style="color: #000000">);</span></div> </div><p>In case of a failing expectation you get the following output:</p> <div class="code lang-javascript"> <div><span style="color: #000000">expect</span><span style="color: #000000">({</span>&nbsp;<span style="color: #0086b3">0</span><span style="color: #000000">:</span>&nbsp;<span style="color: #df5000">'foo'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #0086b3">1</span><span style="color: #000000">:</span>&nbsp;<span style="color: #df5000">'bar'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #0086b3">2</span><span style="color: #000000">:</span>&nbsp;<span style="color: #df5000">'baz'</span>&nbsp;<span style="color: #000000">},</span>&nbsp;<span style="color: #df5000">'to&nbsp;be&nbsp;an&nbsp;array'</span><span style="color: #000000">);</span></div> </div><div class="output"> <div><span style="color: red; font-weight: bold">expected</span>&nbsp;{&nbsp;<span style="color: #0086b3">0</span>:&nbsp;<span style="color: #df5000">'foo'</span>,&nbsp;<span style="color: #0086b3">1</span>:&nbsp;<span style="color: #df5000">'bar'</span>,&nbsp;<span style="color: #0086b3">2</span>:&nbsp;<span style="color: #df5000">'baz'</span>&nbsp;}&nbsp;<span style="color: red; font-weight: bold">to&nbsp;be&nbsp;an&nbsp;array</span></div> </div><p>This assertion can be negated using the <code>not</code> flag:</p> <div class="code lang-javascript"> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #0086b3">true</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'not&nbsp;to&nbsp;be&nbsp;an&nbsp;object'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #df5000">'5'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'not&nbsp;to&nbsp;be&nbsp;a'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'number'</span><span style="color: #000000">);</span></div> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #df5000">'abc'</span><span style="color: #000000">,</span>&nbsp;<span style="color: #df5000">'not&nbsp;to&nbsp;be&nbsp;an'</span><span style="color: #000000">,</span>&nbsp;Object<span style="color: #000000">);</span></div> </div><p>In case of a failing expectation you get the following output:</p> <div class="code lang-javascript"> <div><span style="color: #000000">expect</span><span style="color: #000000">(</span><span style="color: #a71d5d">function</span>&nbsp;<span style="color: #000000">()</span>&nbsp;<span style="color: #000000">{</span>&nbsp;<span style="color: #a71d5d">return</span>&nbsp;<span style="color: #df5000">'wat'</span><span style="color: #000000">;</span>&nbsp;<span style="color: #000000">},</span>&nbsp;<span style="color: #df5000">'not&nbsp;to&nbsp;be&nbsp;an'</span><span style="color: #000000">,</span>&nbsp;Object<span style="color: #000000">);</span></div> </div><div class="output"> <div><span style="color: red; font-weight: bold">expected</span>&nbsp;<span style="color: #a71d5d">function</span>&nbsp;<span style="color: #000000">()</span>&nbsp;<span style="color: #000000">{</span>&nbsp;<span style="color: #a71d5d">return</span>&nbsp;<span style="color: #df5000">'wat'</span><span style="color: #000000">;</span>&nbsp;<span style="color: #000000">}</span>&nbsp;<span style="color: red; font-weight: bold">not&nbsp;to&nbsp;be&nbsp;an</span>&nbsp;Object</div> </div> </div> </div> </section> <script type="text/javascript"> baseUrl = '../../..'; </script> <script type="text/javascript" src="../../../static/toggleSidebar.js"></script> <script type="text/javascript" src="../../../static/rememberScrollPosition.js"></script> <script type="text/javascript" src="../../../static/focusMain.js"></script> <script type="text/javascript" src="../../../static/search.js"></script> </body> </html>