From 21448e0e9c25e1aac018539de4871feece616b93 Mon Sep 17 00:00:00 2001 From: Josh Pike Date: Thu, 26 Apr 2018 15:54:22 +0700 Subject: [PATCH] improved tests to handle newlines --- tests/basic-test.js | 21 +++++++++++++++++---- tests/safe-test.js | 21 +++++++++++++++++---- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/tests/basic-test.js b/tests/basic-test.js index fda8af4..b22a9e7 100644 --- a/tests/basic-test.js +++ b/tests/basic-test.js @@ -1,5 +1,5 @@ var assert = require('assert'), - colors = require('../lib/index'); + colors = require('../lib/index'); var s = 'string'; @@ -43,8 +43,21 @@ aE(s, 'yellow', 33); assert.equal(s, 'string'); -colors.setTheme({error:'red'}); +var testStringWithNewLines = s + ` +` + s; -assert.equal(typeof("astring".red),'string'); -assert.equal(typeof("astring".error),'string'); +// single style +assert.equal(testStringWithNewLines.red, '\x1b[31m' + s + '\n' + s + '\x1b[39m'); +var testStringWithNewLinesStyled = s.underline + ` +` + s.bold; + +// nested styles +assert.equal(testStringWithNewLinesStyled.red, '\x1b[31m' + '\x1b[4m' + s + '\x1b[24m' + '\n' + '\x1b[1m' + s + '\x1b[22m' + '\x1b[39m'); + +colors.setTheme({ error: 'red' }); + +assert.equal(typeof ("astring".red), 'string'); +assert.equal(typeof ("astring".error), 'string'); + +assert.equal(s, 'string'); diff --git a/tests/safe-test.js b/tests/safe-test.js index daad4f9..7d13129 100644 --- a/tests/safe-test.js +++ b/tests/safe-test.js @@ -1,5 +1,5 @@ var assert = require('assert'), - colors = require('../safe'); + colors = require('../safe'); var s = 'string'; @@ -39,7 +39,20 @@ aE(s, 'red', 31); aE(s, 'yellow', 33); assert.equal(s, 'string'); -colors.setTheme({error:'red'}); -assert.equal(typeof(colors.red("astring")), 'string'); -assert.equal(typeof(colors.error("astring")), 'string'); \ No newline at end of file +var testStringWithNewLines = s + ` +` + s; + +// single style +assert.equal(colors.red(testStringWithNewLines), '\x1b[31m' + s + '\x1b[39m' + '\n' + '\x1b[31m' + s + '\x1b[39m'); + +var testStringWithNewLinesStyled = colors.underline(s) + ` +` + colors.bold(s); + +// nested styles +assert.equal(colors.red(testStringWithNewLinesStyled), '\x1b[31m' + '\x1b[4m' + s + '\x1b[24m' + '\x1b[39m' + '\n' + '\x1b[31m' + '\x1b[1m' + s + '\x1b[22m' + '\x1b[39m'); + +colors.setTheme({ error: 'red' }); + +assert.equal(typeof (colors.red("astring")), 'string'); +assert.equal(typeof (colors.error("astring")), 'string'); \ No newline at end of file