diff --git a/test/_fixture.js b/test/_fixture.js index 5f1771d..3627ecc 100644 --- a/test/_fixture.js +++ b/test/_fixture.js @@ -1,4 +1,6 @@ 'use strict'; const chalk = require('..'); +const cherr = require('../stderr'); console.log(chalk.hex('#ff6159')('test')); +console.error(cherr.hex('#ffe861')('test stderr')); diff --git a/test/_supports-color.js b/test/_supports-color.js index 490c323..b5c0f78 100644 --- a/test/_supports-color.js +++ b/test/_supports-color.js @@ -7,6 +7,12 @@ const DEFAULT = { hasBasic: true, has256: true, has16m: true + }, + stderr: { + level: 3, + hasBasic: true, + has256: true, + has16m: true } }; diff --git a/test/stderr.js b/test/stderr.js new file mode 100644 index 0000000..c54041c --- /dev/null +++ b/test/stderr.js @@ -0,0 +1,27 @@ +import path from 'path'; +import test from 'ava'; +import execa from 'execa'; + +// Spoof supports-color +require('./_supports-color')(__dirname); + +const cherr = require('../stderr'); + +test('stderr don\'t output colors when manually disabled', t => { + cherr.enabled = false; + t.is(cherr.red('foo'), 'foo'); + cherr.enabled = true; +}); + +test('stderr enable/disable colors based on overall chalk enabled property, not individual instances', t => { + cherr.enabled = false; + const {red} = cherr; + t.false(red.enabled); + cherr.enabled = true; + t.true(red.enabled); + cherr.enabled = true; +}); + +test('disable colors if they are not supported', async t => { + t.is(await execa.stderr('node', [path.join(__dirname, '_fixture')]), 'test stderr'); +});