- FEATURE: If True
sass
option is not specified, True will automatically attempt to useembedded-sass
, thensass
. #290 - INTERNAL: Add
sass
andsass-embedded
as optional peer-dependencies. - INTERNAL: Update dependencies
- FEATURE: Add True
sass
option (string
or Sass implementation instance, defaults to'sass'
) to allow using eithersass
orembedded-sass
. - FEATURE: Add the
Node.js package importer
to the Sass
importers
option by default, if Dart Sass v1.71 or later is available. Users can opt out by providing their ownimporters
option, e.g.{ importers: [] }
. - BREAKING: Drop support for node < 18
- INTERNAL: Remove
sass
as a peer-dependency. - INTERNAL: Update dependencies
- FEATURE: Validate
runSass
arguments and warn if using v6 API. - DOCUMENTATION: Add note that
{ style: 'compressed' }
is not supported. - DOCUMENTATION: Add note about possible Jest error and workaround.
- INTERNAL: Update dependencies
- FEATURE:
contains()
checks multiple block with matching selectors. #243 - BREAKING: Upgrade to newer Sass API
- Add True
sourceType
option (path
[default] orstring
) - Reverse order of expected arguments to
runSass
: 1) True options, 2) source path (or string), 3) optional Sass options - Note that some of the Sass options have changed. For example,
includePaths
is nowloadPaths
,outputStyle
is nowstyle
,importer
is nowimporters
, etc. See the Dart Sass documentation for more details.
- Add True
- BREAKING: Require
sass
(>=1.45.0
) as a peer-dependency, removing Truesass
option - BREAKING: Drop support for node < 14.15.0
- INTERNAL: Use both Jest and Mocha for internal testing
- INTERNAL: Remove documentation from npm package
- INTERNAL: Update dependencies
runSass
arguments have changed:
v6:
const path = require('path');
const sass = require('node-sass');
const sassTrue = require('sass-true');
const sassFile = path.join(__dirname, 'test.scss');
sassTrue.runSass(
// Sass options [required]
{ file: sassFile, includePaths: ['node_modules'] },
// True options [required]
{ describe, it, sass },
);
const sassString = `
h1 {
font-size: 40px;
}`;
sassTrue.runSass(
// Sass options [required]
{
data: sassString,
includePaths: ['node_modules'],
},
// True options [required]
{ describe, it, sass },
);
v7:
const path = require('path');
const sassTrue = require('sass-true');
const sassFile = path.join(__dirname, 'test.scss');
sassTrue.runSass(
// True options [required]
{ describe, it },
// Sass source (path) [required]
sassFile,
// Sass options [optional]
{ loadPaths: ['node_modules'] },
);
const sassString = `
h1 {
font-size: 40px;
}`;
sassTrue.runSass(
// True options [required]
{ describe, it, sourceType: 'string' },
// Sass source (string) [required]
sassString,
// Sass options [optional]
{ loadPaths: ['node_modules'] },
);
- BREAKING: Upgrade to newer Sass API
- Add True
sourceType
option (path
[default] orstring
) - Reverse order of expected arguments to
runSass
: 1) True options, 2) source path (or string), 3) optional Sass options
- Add True
- BREAKING: Require
sass
as a peer-dependency, removing Truesass
option - BREAKING: Drop support for node < 14.15.0
- INTERNAL: Use both Jest and Mocha for internal testing
- INTERNAL: Update dependencies
- No changes since v6.1.0-beta.1
- FEATURE: Clearer formatting of failing test diffs #210
- INTERNAL: Limit files included in npm package #189
- INTERNAL: Convert JS to TypeScript and bundle type definitions #212 -- thanks to @robertmaier for the initial PR #206
- INTERNAL: Remove documentation static-site from True repository
- INTERNAL: Use Jest for internal testing (replaces Mocha)
- INTERNAL: Switch from Travis CI to GitHub Actions for CI
- INTERNAL: Update dependencies
- Remove eyeglass specific-version requirement.
- Update documentation
- BREAKING: Switch to Dart Sass with Sass module system, dropping support for Node Sass.
- BREAKING: Drop support for node < 10
- BREAKING: Rename
$true-terminal-output
setting to$terminal-output
when importing as a module (with@use
). Projects not using Sass modules can still@import '<path>/sass-true/sass/true'
and access the setting as$true-terminal-output
- FEATURE: Added
_index.scss
at the project root, for simpler import path:@use '<path>/sass-true'
- FEATURE: New
sass/_throw.scss
module provides:error()
function & mixin for establishing "catchable" errors- global
$catch-errors
toggles howerror()
output is handled
- FEATURE: Support testing
content
properties which include a curly brace. - Update dependencies
- BREAKING: Update API for
runSass
, which now accepts two arguments: asassOptions
object and atrueOptions
object. - BREAKING: Drop support for node < 8
- Add docs and testing for usage with Jest #135
- Add
sass
option torunSass
for passing a different Sass implementation thannode-sass
#137 - Remove
node-sass
frompeerDependencies
- Fix deprecated use of
assert.fail
#138 - Update dev dependencies
- BREAKING: Move
node-sass
topeerDependencies
- Update dependencies
- Add JS coverage reporting
- NEW: Add
contains()
mixin for more minute output comparisons. Works the same asexpect()
, but doesn't require a complete match. - Update docs
- Dependency updates
- Update docs
- Update dependencies & release
- Added
describe
andit
mixins, as alias fortest-module
andtest
respectively. - Added
$inspect
argument toassert-equal
andassert-unequal
mixins, for comparinginspect($assert) == inspect($expected)
instead of$assert == $expected
. This helps with several of the equality edge-cases listed below (rounding and units). - BREAKING: No more Ruby gem or Ruby CLI
- BREAKING: No more bower package
- 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:
- In some versions of Sass,
manipulated numbers and colors are compared without rounding,
so
1/3 != 0.333333
andlighten(#246, 15%) != #356a9f
. Use the$inspect
argument to compare rounded output values. - In all versions of Sass,
unitless numbers are considered comparable to all units,
so
1 == 1x
wherex
represents any unit. Use the$inspect
argument to compare output values with units. - Lists compare both values and delimiter,
so
(one two three) != (one, two, three)
. This can be particularly confusing for single-item lists, which still have a delimiter assigned, even though it is not used.
- In some versions of Sass,
manipulated numbers and colors are compared without rounding,
so
assert-true
returns false on empty strings and listsassert-false
returns true on empty strings and lists- Module/Test/Assertion stats are included in reports
- Output CSS context around Mocha parsing errors.
- Added
$fail-on-error
argument toreport()
mixin. Set totrue
if you need the Sass compiler to fail on broken tests. - Fix bug with
assert-false
causing it to fail onnull
values. - Allow unquoted descriptions and test/module names.
- Fix bug throwing off test-count and reporting.
- Fix default assertion messages
- Upgrade dependencies
- Fixes debug inspector.
- Improve internal logic, and namespace private functions behind
_true-*
. - Add
assert()
,input
, andexpect
mixins for testing CSS output. - Support for LibSass.
- Add Mocha JS integration. — Create NPM package.
- Simplify output options down to single
$true-terminal-output
setting. - Add eyeglass support.
- LibSass 3.0 compatability.
- Add command-line interface:
true-cli <path-to-file>
- Use
-s
flag for silent output - Check for unit differences between numbers.
- Add assertion-failure details to css output.
- Simplified reporting in both terminal and CSS.
- Remove
default-module-output
,$default-test-output
and$default-final-output
. Replace them with$true
settings map:(output: css, summary: terminal css)
.output
handles test/module output,summary
handles final output. Assertions are always output to the terminal if they fail. - Update to use Sass map variables.
- Add
report
function andreport
mixin, for reporting final results. - Only register as a compass extension if compass is present. Compass is no longer an explicit dependency.
- Adjust the output styles to work with Sass 3.4 and have more visual consistency.
- Append actual results to custom failure messages.
- Null result is considered a failure.
- Allow output to be turned off for certain modules/tests/assertions.
- Nest assertions within
test() {}
named tests. - Cleaner css output.
- Use nesting for modules with
test-module() {}
- Added failure message argument to all assertions.
- Fix bug in
lib/true.rb
compass plugin registration.
assert-true()
,assert-false()
,assert-equal()
, andassert-unequal()
.pass()
andfail()
for tracking and reporting individual results.start-test-module()
andreport-test-result()
for module results.- Includes tests of the testing tools!