From 7a8dd2c361e981eeeff6cb7b6854b28f2e341106 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Thu, 7 May 2020 15:34:09 -0700 Subject: [PATCH] feat(console): allow page.on('console', console.log) (#2145) --- src/console.ts | 5 +++++ test/page.spec.js | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/console.ts b/src/console.ts index a5c660e1a5..0e40887ed4 100644 --- a/src/console.ts +++ b/src/console.ts @@ -15,6 +15,7 @@ */ import * as js from './javascript'; +import * as util from 'util'; export type ConsoleMessageLocation = { url?: string, @@ -52,4 +53,8 @@ export class ConsoleMessage { location(): ConsoleMessageLocation { return this._location; } + + [util.inspect.custom]() { + return this.text(); + } } diff --git a/test/page.spec.js b/test/page.spec.js index eff81d10e9..e09259b1f4 100644 --- a/test/page.spec.js +++ b/test/page.spec.js @@ -16,6 +16,7 @@ */ const path = require('path'); +const util = require('util'); const vm = require('vm'); const {FFOX, CHROMIUM, WEBKIT} = require('./utils').testOptions(browserType); @@ -169,6 +170,15 @@ describe('Page.Events.Console', function() { await page.evaluate(() => { for (let i = 0; i < 2; ++i ) console.log('hello'); } ); expect(messages).toEqual(['hello', 'hello']); }); + it('should use text() for inspection', async({page}) => { + let text; + const inspect = value => { + text = util.inspect(value); + } + page.on('console', inspect); + await page.evaluate(() => console.log('Hello world')); + expect(text).toEqual('Hello world'); + }); it('should work for different console API calls', async({page, server}) => { const messages = []; page.on('console', msg => messages.push(msg));