diff --git a/package-lock.json b/package-lock.json index 125cded..b30bbcb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -130,7 +130,7 @@ }, "any-promise": { "version": "1.3.0", - "resolved": "https://npm-registry.harver-dev.com/any-promise/-/any-promise-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", "dev": true }, @@ -230,7 +230,7 @@ }, "becke-ch--regex--s0-0-v1--base--pl--lib": { "version": "1.4.0", - "resolved": "https://npm-registry.harver-dev.com/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", "integrity": "sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=", "dev": true }, @@ -412,7 +412,7 @@ }, "cli-table3": { "version": "0.5.1", - "resolved": "https://npm-registry.harver-dev.com/cli-table3/-/cli-table3-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "dev": true, "requires": { @@ -996,7 +996,7 @@ }, "d": { "version": "1.0.1", - "resolved": "https://npm-registry.harver-dev.com/d/-/d-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, "requires": { @@ -1230,7 +1230,7 @@ }, "duration": { "version": "0.2.2", - "resolved": "https://npm-registry.harver-dev.com/duration/-/duration-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz", "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", "dev": true, "requires": { @@ -1293,7 +1293,7 @@ }, "es6-iterator": { "version": "2.0.3", - "resolved": "https://npm-registry.harver-dev.com/es6-iterator/-/es6-iterator-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { @@ -2455,7 +2455,7 @@ }, "is-generator": { "version": "1.0.3", - "resolved": "https://npm-registry.harver-dev.com/is-generator/-/is-generator-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-generator/-/is-generator-1.0.3.tgz", "integrity": "sha1-wUwhBX7TbjKNuANHlmxpP4hjifM=", "dev": true }, @@ -2633,6 +2633,15 @@ "walk-back": "^3.0.1" } }, + "json-colorizer": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json-colorizer/-/json-colorizer-2.2.2.tgz", + "integrity": "sha512-56oZtwV1piXrQnRNTtJeqRv+B9Y/dXAYLqBBaYl/COcUdoZxgLBLAO88+CnkbT6MxNs0c5E9mPBIb2sFcNz3vw==", + "requires": { + "chalk": "^2.4.1", + "lodash.get": "^4.4.2" + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://npm-registry.harver-dev.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -2688,7 +2697,7 @@ }, "knuth-shuffle-seeded": { "version": "1.0.6", - "resolved": "https://npm-registry.harver-dev.com/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", "integrity": "sha1-AfG2VzOqdUDuCNiwF0Fk0iCB5OE=", "dev": true, "requires": { @@ -2819,7 +2828,7 @@ }, "lower-case": { "version": "1.1.4", - "resolved": "https://npm-registry.harver-dev.com/lower-case/-/lower-case-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, @@ -2993,7 +3002,7 @@ }, "mz": { "version": "2.7.0", - "resolved": "https://npm-registry.harver-dev.com/mz/-/mz-2.7.0.tgz", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, "requires": { @@ -3022,7 +3031,7 @@ }, "next-tick": { "version": "1.0.0", - "resolved": "https://npm-registry.harver-dev.com/next-tick/-/next-tick-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, @@ -3034,7 +3043,7 @@ }, "no-case": { "version": "2.3.2", - "resolved": "https://npm-registry.harver-dev.com/no-case/-/no-case-2.3.2.tgz", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { @@ -3221,7 +3230,7 @@ }, "pad-right": { "version": "0.2.2", - "resolved": "https://npm-registry.harver-dev.com/pad-right/-/pad-right-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", "dev": true, "requires": { @@ -3544,7 +3553,7 @@ }, "repeat-string": { "version": "1.6.1", - "resolved": "https://npm-registry.harver-dev.com/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, @@ -3643,7 +3652,7 @@ }, "seed-random": { "version": "2.2.0", - "resolved": "https://npm-registry.harver-dev.com/seed-random/-/seed-random-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=", "dev": true }, @@ -3790,7 +3799,7 @@ }, "source-map": { "version": "0.5.6", - "resolved": "https://npm-registry.harver-dev.com/source-map/-/source-map-0.5.6.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true }, @@ -3893,7 +3902,7 @@ }, "stack-chain": { "version": "2.0.0", - "resolved": "https://npm-registry.harver-dev.com/stack-chain/-/stack-chain-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-2.0.0.tgz", "integrity": "sha512-GGrHXePi305aW7XQweYZZwiRwR7Js3MWoK/EHzzB9ROdc75nCnjSJVi21rdAGxFl+yCx2L2qdfl5y7NO4lTyqg==", "dev": true }, @@ -4225,7 +4234,7 @@ }, "thenify-all": { "version": "1.6.0", - "resolved": "https://npm-registry.harver-dev.com/thenify-all/-/thenify-all-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", "dev": true, "requires": { @@ -4249,7 +4258,7 @@ }, "title-case": { "version": "2.1.1", - "resolved": "https://npm-registry.harver-dev.com/title-case/-/title-case-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "dev": true, "requires": { @@ -4381,7 +4390,7 @@ }, "upper-case": { "version": "1.1.3", - "resolved": "https://npm-registry.harver-dev.com/upper-case/-/upper-case-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, @@ -4395,7 +4404,7 @@ }, "util-arity": { "version": "1.1.0", - "resolved": "https://npm-registry.harver-dev.com/util-arity/-/util-arity-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz", "integrity": "sha1-WdAa8f2z/t4KxOYysKtfbOl8kzA=", "dev": true }, diff --git a/package.json b/package.json index 5abac40..b731d76 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "chai-match": "^1.1.1", "chalk": "^2.4.2", "cookie": "^0.4.0", + "json-colorizer": "^2.2.2", "jsonpath-plus": "^1.0.0", "openapi-schema-to-json-schema": "^2.2.0", "superagent": "^5.1.0", diff --git a/src/world.js b/src/world.js index fd00da2..0e40543 100644 --- a/src/world.js +++ b/src/world.js @@ -18,6 +18,7 @@ const { parse: parseUrl } = require('url'); const chalk = require('chalk'); const request = require('superagent'); const SwaggerParser = require('swagger-parser'); +const colorize = require('json-colorizer'); const agents = new Map(); const responseCache = new Map(); @@ -52,6 +53,16 @@ class World { this.env = process.env.TEST_ENV || null; this.responseVars = []; this.userVars = []; + + this.debugLogOptions = { + pretty: true, + colors: { + // Colors convention can be negotiated. + STRING_KEY: 'green', + STRING_LITERAL: 'yellow', + NUMBER_LITERAL: 'red', + }, + }; } /** @@ -289,7 +300,11 @@ async function printDebug(info) { if (this.debug.length) { console.log('\n' + sep + '\n'); for (const line of this.debug) { - console.log(line); + try { + console.log(colorize(line, this.debugLogOptions)); + } catch (error){ + console.log(line); + } } console.log('\n' + sep + '\n'); } @@ -304,7 +319,7 @@ async function printDebug(info) { console.log('Url:\n'); console.log(this.req.url); console.log('\nResponse body:\n'); - console.log(res.body); + console.log(colorize(res.body, this.debugLogOptions)); console.log('\n' + sep + '\n'); }