From a3388f003a94d259826638418b888304de02041a Mon Sep 17 00:00:00 2001 From: aleksey Date: Tue, 5 Jul 2022 17:10:27 +0300 Subject: [PATCH] fix: crash on attempt to uncolorize Symbol --- test/uncolorize.test.js | 19 +++++++++++++++++++ uncolorize.js | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/test/uncolorize.test.js b/test/uncolorize.test.js index 6c4dcea..52da897 100644 --- a/test/uncolorize.test.js +++ b/test/uncolorize.test.js @@ -83,6 +83,25 @@ describe('uncolorize', () => { } )); + it('uncolorize() not crashing with Symbol()', assumeFormatted( + combine( + format(info => { + info.level = info.level.toUpperCase(); + return info; + })(), + colorize(), + uncolorize() + ), + infoify({ level: 'info', message: Symbol() }), + info => { + assume(info.level).is.a('string'); + assume(info.message).is.a('string'); + + assume(info.level).equals('INFO'); + assume(info.message).equals('Symbol()'); + } + )); + it('uncolorize({ level: false }) removes color from { message, [MESSAGE] }', assumeFormatted( addAndRemoveColors({ level: false }), infoify({ level: 'info', message: 'whatever' }), diff --git a/uncolorize.js b/uncolorize.js index 8bd864e..c3c020f 100644 --- a/uncolorize.js +++ b/uncolorize.js @@ -16,11 +16,11 @@ module.exports = format((info, opts) => { } if (opts.messageĀ !== false) { - info.message = colors.strip(info.message); + info.message = colors.strip(String(info.message)); } if (opts.raw !== false && info[MESSAGE]) { - info[MESSAGE] = colors.strip(info[MESSAGE]); + info[MESSAGE] = colors.strip(String(info[MESSAGE])); } return info;