From 55c31fc3004487fea5ce812708ff49116e9fe623 Mon Sep 17 00:00:00 2001 From: Christian Bromann Date: Tue, 29 Mar 2022 12:43:42 +0200 Subject: [PATCH] Sanitize script command logs --- packages/wdio-utils/src/utils.ts | 4 ++++ packages/wdio-utils/tests/utils.test.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/packages/wdio-utils/src/utils.ts b/packages/wdio-utils/src/utils.ts index 4cdab2a839b..0fbc52ced4a 100644 --- a/packages/wdio-utils/src/utils.ts +++ b/packages/wdio-utils/src/utils.ts @@ -5,6 +5,7 @@ import type { Services, Clients } from '@wdio/types' const SCREENSHOT_REPLACEMENT = '""' const SCRIPT_PLACEHOLDER = '""' +const REGEX_SCRIPT_NAME = /return \(function (\w+)/ /** * overwrite native element commands with user defined @@ -97,6 +98,9 @@ export function transformCommandLogResult (result: { file?: string, script?: str return SCREENSHOT_REPLACEMENT } else if (typeof result.script === 'string' && isBase64(result.script)) { return SCRIPT_PLACEHOLDER + } else if (typeof result.script === 'string' && result.script.match(REGEX_SCRIPT_NAME)) { + const newScript = result.script.match(REGEX_SCRIPT_NAME)![1] + return { ...result, script: `${newScript}(...) [${Buffer.byteLength(result.script, 'utf-8')} bytes]` } } return result diff --git a/packages/wdio-utils/tests/utils.test.ts b/packages/wdio-utils/tests/utils.test.ts index 05dffa0e9e6..d259f651f3f 100644 --- a/packages/wdio-utils/tests/utils.test.ts +++ b/packages/wdio-utils/tests/utils.test.ts @@ -46,6 +46,10 @@ describe('utils', () => { expect(transformCommandLogResult({ script: 'foo' })).toEqual({ script: 'foo' }) expect(transformCommandLogResult({ script: (Buffer.from('some script payload')).toString('base64') })) .toBe('""') + + expect(transformCommandLogResult({ script: 'return foobar' })).toEqual({ script: 'return foobar' }) + expect(transformCommandLogResult({ script: 'return (function isElementDisplayed(element) {\n...' })) + .toEqual({ script: 'isElementDisplayed(...) [50 bytes]' }) }) describe('overwriteElementCommands', () => {