

<!DOCTYPE html>
<html lang="en" data-herman="root">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1">

  
  <title>Changelog | True Documentation</title>

  <link href="assets/img/favicon.ico" rel="shortcut icon">
  <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,600|Source+Sans+Pro:400,400i,700,700i" rel="stylesheet">

  <link rel="stylesheet" href="assets/webpack/app_styles.min.css" />

  

  
</head>
<body data-herman="body">
  <svg xmlns="http://www.w3.org/2000/svg" hidden>
  <symbol id="icon-logo" viewBox="0 0 16 16">
    <path d="M.2 8L0 7.8v-.2C.8 6.9 1.9 5.9 2.7 5l.4.3c-.5.8-1.1 1.6-1.8 2.3 1 1.2 1 1.3 1.7 2.4l-.4.3c-.4-.4-.5-.6-1-1C1 8.6 1.1 8.7.2 8zM13 10c.6-1.1.7-1.1 1.7-2.4-.6-.6-1.3-1.5-1.7-2.3l.3-.3c.8.8 1.8 1.8 2.7 2.6v.2l-.8.7c-.3.3-1.2 1.1-1.8 1.7L13 10z"/><path d="M2.6 13.1H3c.9 0 1.1-.2 1.1-1.4V4.2c0-1.1-.2-1.4-1.1-1.4h-.4v-.6h4.5v.7h-.3c-.9 0-1.1.2-1.1 1.4v3.2h4.6V4.2c0-1.1-.2-1.4-1.1-1.4h-.3v-.6h4.5v.7H13c-.9 0-1.1.2-1.1 1.4v7.5c0 1.1.2 1.4 1.1 1.4h.4v.7H8.9v-.7h.3c.9 0 1.1-.2 1.1-1.4V8.2H5.7v3.5c0 1.1.2 1.4 1.1 1.4h.3v.7H2.6v-.7z"/>
  </symbol>
  <symbol id="icon-menu" viewBox="0 0 24 28">
    <path d="M24 21v2c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1v-2c0-.547.453-1 1-1h22c.547 0 1 .453 1 1zm0-8v2c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1v-2c0-.547.453-1 1-1h22c.547 0 1 .453 1 1zm0-8v2c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1V5c0-.547.453-1 1-1h22c.547 0 1 .453 1 1z"/>
  </symbol>
</svg>

  <div data-region="app">
    <header data-region="banner">
      
  <button data-nav-toggle data-toggle="button" aria-controls="nav" aria-pressed="false" type="button" data-toggle-synced="false">
    
  <svg data-icon="menu" data-icon-size="nav-icon" ><title>menu</title><use xlink:href="#icon-menu" />
  </svg>

  </button>


      <div class="project-title">
        <a href="index.html" rel="home" class="project-name">True</a>
        
          <span class="project-version">6.0.0</span>
        
      </div>
    </header>

    <div data-region="container">
      
  <nav data-region="nav" data-toggle="target" id="nav" data-target-id="nav" aria-expanded="false" data-auto-closing="false" data-auto-closing-on-any-click="false">
    <form action="search.html">
      <input type="text" name="q" placeholder="Search…" required minlength="3">
    </form>

    <div class="nav-subsection">
      <h3 class="nav-home">
        
        <a href="index.html" data-nav="is-not-active">True</a>
      </h3>

      
      
        <ul>
          
            
            <li class="nav-item">
              <a href="CHANGELOG.html" data-nav="is-active">Changelog</a>
            </li>
          
            
            <li class="nav-item">
              <a href="CONTRIBUTING.html" data-nav="is-not-active">Contributing</a>
            </li>
          
            
            <li class="nav-item">
              <a href="LICENSE.html" data-nav="is-not-active">BSD3 License</a>
            </li>
          
        </ul>
      
    </div>

    
    <div class="nav-subsection">
      <ul>
            <li class="nav-subsection">
              <h3 class="nav-title">Structure</h3>
              <ul>
                
  
    <li class="nav-item">
      <a href="api-settings.html" data-nav="is-not-active">Optional Configuration</a>
    </li>
  
  
    <li class="nav-item">
      <a href="api-test.html" data-nav="is-not-active">Describing Tests</a>
    </li>
  
  
    <li class="nav-item">
      <a href="api-report.html" data-nav="is-not-active">Reporting Results</a>
    </li>
  </ul>
            </li>
            <li class="nav-subsection">
              <h3 class="nav-title">Assertions</h3>
              <ul>
                
  
    <li class="nav-item">
      <a href="api-assert-values.html" data-nav="is-not-active">Testing Return<span class="widont">&nbsp;</span>Values</a>
    </li>
  
  
    <li class="nav-item">
      <a href="api-assert-output.html" data-nav="is-not-active">Testing CSS<span class="widont">&nbsp;</span>Output</a>
    </li>
  
  
    <li class="nav-item">
      <a href="api-errors.html" data-nav="is-not-active">Catching &amp; Testing<span class="widont">&nbsp;</span>Errors</a>
    </li>
  </ul>
            </li></ul>
    </div>

    
    

    
      <aside class="footer-credit">
        <a href="http://oddbird.net/herman/" class="footer-icon">
          
  <svg data-icon="logo" data-icon-size="footer-logo" ><use xlink:href="#icon-logo" />
  </svg>

        </a>
        <span>
          Documented with
          <a href="http://oddbird.net/herman/" class="footer-link">
            Herman
          </a>
        </span>
        <span>
          by
          <a href="http://oddbird.net/" class="footer-link">
            OddBird
          </a>
        </span>
      </aside>
    
  </nav>


      <main data-region="main">
        
  <nav class="breadcrumb">
    
    <a href="index.html" >True</a> »
    <strong>Changelog</strong>
  </nav>


        <div data-page="CHANGELOG">
          
  <div class="text-block">
    <h1 id="true-changelog">True Changelog</h1>
<h2 id="6-0-0-07-22-20-">6.0.0 (07/22/20)</h2>
<ul>
<li>BREAKING: Switch to <a href="https://sass-lang.com/dart-sass">Dart Sass</a> with <a href="https://sass-lang.com/blog/the-module-system-is-launched">Sass
module system</a>,
dropping support for <a href="https://github.com/sass/node-sass">Node<span class="widont">&nbsp;</span>Sass</a>.</li>
<li>BREAKING: Drop support for node &lt;<span class="widont">&nbsp;</span>10</li>
<li>BREAKING: Rename <code>$true-terminal-output</code> setting to <code>$terminal-output</code>
when importing as a module (with <code>@use</code>).
Projects not using Sass modules can still
<code>@import '&lt;path&gt;/sass-true/sass/true'</code>
and access the setting as <code>$true-terminal-output</code></li>
<li>FEATURE: Added <code>_index.scss</code> at the project root,
for simpler import path: <code>@use '&lt;path&gt;/sass-true'</code></li>
<li>FEATURE: New <code>sass/_throw.scss</code> module provides:
<ul>
<li><code>error()</code> function &amp; mixin for establishing “catchable”<span class="widont">&nbsp;</span>errors</li>
<li>global <code>$catch-errors</code> toggles how <code>error()</code> output is<span class="widont">&nbsp;</span>handled</li>
</ul>
</li>
<li>FEATURE: Support testing <code>content</code> properties which include a curly<span class="widont">&nbsp;</span>brace.</li>
<li>Update dependencies</li>
</ul>
<h2 id="5-0-0-06-03-19-">5.0.0 (06/03/19)</h2>
<ul>
<li>BREAKING: Update API for <code>runSass</code>, which now accepts two arguments: a
<code>sassOptions</code> object and a <code>trueOptions</code> object.</li>
<li>BREAKING: Drop support for node &lt;<span class="widont">&nbsp;</span>8</li>
<li>Add docs and testing for usage with Jest
<a href="https://github.com/oddbird/true/issues/135">#135</a></li>
<li>Add <code>sass</code> option to <code>runSass</code> for passing a different Sass implementation
than <code>node-sass</code> <a href="https://github.com/oddbird/true/issues/137">#137</a></li>
<li>Remove <code>node-sass</code> from <code>peerDependencies</code></li>
<li>Fix deprecated use of <code>assert.fail</code>
<a href="https://github.com/oddbird/true/issues/138">#138</a></li>
<li>Update dev dependencies</li>
</ul>
<h2 id="4-0-0-04-09-18-">4.0.0 (04/09/18)</h2>
<ul>
<li>BREAKING: Move <code>node-sass</code> to <code>peerDependencies</code></li>
<li>Update dependencies</li>
<li>Add JS coverage<span class="widont">&nbsp;</span>reporting</li>
</ul>
<h2 id="3-1-0-03-06-18-">3.1.0 (03/06/18)</h2>
<ul>
<li>NEW: Add <code>contains()</code> mixin for more minute output comparisons.
Works the same as <code>expect()</code>, but doesn’t require a complete<span class="widont">&nbsp;</span>match.</li>
<li>Update docs</li>
</ul>
<h2 id="3-0-2-10-6-17-">3.0.2 (10/6/17)</h2>
<ul>
<li>Dependency updates</li>
</ul>
<h2 id="3-0-1-9-13-17-">3.0.1 (9/13/17)</h2>
<ul>
<li>Update docs</li>
</ul>
<h2 id="3-0-0-8-26-17-">3.0.0 (8/26/17)</h2>
<ul>
<li>Update dependencies &amp;<span class="widont">&nbsp;</span>release</li>
</ul>
<h2 id="3-0-0-beta-1-6-1-17-">3.0.0-beta.1 (6/1/17)</h2>
<ul>
<li>Added <code>describe</code> and <code>it</code> mixins,
as alias for <code>test-module</code> and <code>test</code> respectively.</li>
<li>Added <code>$inspect</code> argument to <code>assert-equal</code> and <code>assert-unequal</code> mixins,
for comparing <code>inspect($assert) == inspect($expected)</code>
instead of <code>$assert == $expected</code>.
This helps with several of the equality edge-cases listed below
(rounding and<span class="widont">&nbsp;</span>units).</li>
<li>BREAKING: No more Ruby gem or Ruby<span class="widont">&nbsp;</span>CLI</li>
<li>BREAKING: No more bower<span class="widont">&nbsp;</span>package</li>
<li>BREAKING: Removes special-handling of equality,
in favor of allowing Sass to determine the best comparisons.
There are a few edge-cases to be aware of:
<ul>
<li>In some versions of Sass,
manipulated numbers and colors are compared without rounding,
so <code>1/3 != 0.333333</code> and <code>lighten(#246, 15%) != #356a9f</code>.
Use the <code>$inspect</code> argument to compare rounded output<span class="widont">&nbsp;</span>values.</li>
<li>In all versions of Sass,
unitless numbers are considered comparable to all units,
so <code>1 == 1x</code> where <code>x</code> represents any unit.
Use the <code>$inspect</code> argument to compare output values with<span class="widont">&nbsp;</span>units.</li>
<li>Lists compare both values and delimiter,
so <code>(one two three) != (one, two, three)</code>.
This can be particularly confusing for single-item lists,
which still have a delimiter assigned,
even though it is not<span class="widont">&nbsp;</span>used.</li>
</ul>
</li>
</ul>
<h2 id="2-2-2-4-11-17-">2.2.2 (4/11/17)</h2>
<ul>
<li><code>assert-true</code> returns false on empty strings and<span class="widont">&nbsp;</span>lists</li>
<li><code>assert-false</code> returns true on empty strings and<span class="widont">&nbsp;</span>lists</li>
<li>Module/Test/Assertion stats are included in<span class="widont">&nbsp;</span>reports</li>
</ul>
<h2 id="2-2-1-2-7-17-">2.2.1 (2/7/17)</h2>
<ul>
<li>Output CSS context around Mocha parsing<span class="widont">&nbsp;</span>errors.</li>
<li>Added <code>$fail-on-error</code> argument to <code>report()</code> mixin.
Set to <code>true</code> if you need the Sass compiler to fail
on broken<span class="widont">&nbsp;</span>tests.</li>
<li>Fix bug with <code>assert-false</code> causing it to fail on <code>null</code> values.</li>
<li>Allow unquoted descriptions and test/module<span class="widont">&nbsp;</span>names.</li>
<li>Fix bug throwing off test-count and<span class="widont">&nbsp;</span>reporting.</li>
</ul>
<h2 id="2-1-4-12-22-16-">2.1.4 (12/22/16)</h2>
<ul>
<li>Fix default assertion<span class="widont">&nbsp;</span>messages</li>
<li>Upgrade dependencies</li>
</ul>
<h2 id="2-0-2-5-13-15-">2.0.2 (5/13/15)</h2>
<ul>
<li>Fixes debug inspector.</li>
</ul>
<h2 id="2-0-1-5-9-15-">2.0.1 (5/9/15)</h2>
<ul>
<li>Improve internal logic, and namespace private functions behind <code>_true-*</code>.</li>
<li>Add <code>assert()</code>, <code>input</code>, and <code>expect</code> mixins for testing CSS<span class="widont">&nbsp;</span>output.</li>
<li>Support for LibSass.</li>
<li>Add Mocha JS integration.
— Create NPM<span class="widont">&nbsp;</span>package.</li>
<li>Simplify output options down to single <code>$true-terminal-output</code> setting.</li>
<li>Add eyeglass support.</li>
</ul>
<h2 id="1-0-1-10-18-14-">1.0.1 (10/18/14)</h2>
<ul>
<li>LibSass 3.0 compatability.</li>
</ul>
<h2 id="1-0-0-10-3-14-">1.0.0 (10/3/14)</h2>
<ul>
<li>Add command-line interface: <code>true-cli &lt;path-to-file&gt;</code></li>
<li>Use <code>-s</code> flag for silent<span class="widont">&nbsp;</span>output</li>
<li>Check for unit differences between<span class="widont">&nbsp;</span>numbers.</li>
<li>Add assertion-failure details to css<span class="widont">&nbsp;</span>output.</li>
</ul>
<h2 id="0-2-0-7-15-14-">0.2.0 (7/15/14)</h2>
<ul>
<li>Simplified reporting in both terminal and<span class="widont">&nbsp;</span>CSS.</li>
<li>Remove <code>default-module-output</code>, <code>$default-test-output</code> and <code>$default-final-output</code>.
Replace them with <code>$true</code> settings map: <code>(output: css, summary: terminal css)</code>.
<code>output</code> handles test/module output, <code>summary</code> handles final output.
Assertions are always output to the terminal if they<span class="widont">&nbsp;</span>fail.</li>
<li>Update to use Sass map<span class="widont">&nbsp;</span>variables.</li>
<li>Add <code>report</code> function and <code>report</code> mixin, for reporting final<span class="widont">&nbsp;</span>results.</li>
<li>Only register as a compass extension if compass is present.
Compass is no longer an explicit<span class="widont">&nbsp;</span>dependency.</li>
<li>Adjust the output styles to work with Sass 3.4
and have more visual<span class="widont">&nbsp;</span>consistency.</li>
</ul>
<h2 id="0-1-5-6-10-13-">0.1.5 (6/10/13)</h2>
<ul>
<li>Append actual results to custom failure<span class="widont">&nbsp;</span>messages.</li>
</ul>
<h2 id="0-1-4-6-9-13-">0.1.4 (6/9/13)</h2>
<ul>
<li>Null result is considered a<span class="widont">&nbsp;</span>failure.</li>
<li>Allow output to be turned off for certain<span class="widont">&nbsp;</span>modules/tests/assertions.</li>
</ul>
<h2 id="0-1-3-6-7-13-">0.1.3 (6/7/13)</h2>
<ul>
<li>Nest assertions within <code>test() {}</code> named tests.</li>
<li>Cleaner css output.</li>
</ul>
<h2 id="0-1-2-6-7-13-">0.1.2 (6/7/13)</h2>
<ul>
<li>Use nesting for modules with <code>test-module() {}</code></li>
<li>Added failure message argument to all<span class="widont">&nbsp;</span>assertions.</li>
</ul>
<h2 id="0-1-1-6-6-13-">0.1.1 (6/6/13)</h2>
<ul>
<li>Fix bug in <code>lib/true.rb</code> compass plugin<span class="widont">&nbsp;</span>registration.</li>
</ul>
<h2 id="0-1-0-6-6-13-">0.1.0 (6/6/13)</h2>
<ul>
<li><code>assert-true()</code>, <code>assert-false()</code>, <code>assert-equal()</code>, and <code>assert-unequal()</code>.</li>
<li><code>pass()</code> and <code>fail()</code> for tracking and reporting individual<span class="widont">&nbsp;</span>results.</li>
<li><code>start-test-module()</code> and <code>report-test-result()</code> for module<span class="widont">&nbsp;</span>results.</li>
<li>Includes tests of the testing<span class="widont">&nbsp;</span>tools!</li>
</ul>

  </div>

        </div>
      </main>
    </div>
  </div>

  <script type="text/javascript" src="assets/webpack/runtime.min.js"></script>
  <script type="text/javascript" src="assets/webpack/common.min.js"></script>
  <script type="text/javascript" src="assets/webpack/app.min.js"></script>
  
</body>
</html>
