Skip to content

Commit b06c613

Browse files
author
DavertMik
committed
improved output
1 parent 8686aed commit b06c613

File tree

11 files changed

+51
-48
lines changed

11 files changed

+51
-48
lines changed

lib/effects.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import recorder from './recorder.js'
22
import output from './output.js'
3-
const { debug } = output
43
import store from './store.js'
54
import event from './event.js'
65
import container from './container.js'
@@ -131,7 +130,7 @@ async function hopeThat(callback) {
131130
recorder.session.catch(err => {
132131
result = false
133132
const msg = err.inspect ? err.inspect() : err.toString()
134-
debug(`Unsuccessful assertion > ${msg}`)
133+
output.debug(`Unsuccessful assertion > ${msg}`)
135134
event.dispatcher.once(event.test.finished, test => {
136135
test.notes.push({ type: 'conditionalError', text: msg })
137136
})
@@ -212,7 +211,7 @@ async function retryTo(callback, maxTries, pollInterval = 200) {
212211
recorder.session.catch(err => {
213212
recorder.session.restore(`${sessionName} ${tries}`)
214213
if (tries <= maxTries) {
215-
debug(`Error ${err}... Retrying`)
214+
output.debug(`Error ${err}... Retrying`)
216215
recorder.add(`${sessionName} ${tries}`, () => setTimeout(tryBlock, pollInterval))
217216
} else {
218217
// if maxTries reached
@@ -267,7 +266,7 @@ async function tryTo(callback) {
267266
() => {
268267
recorder.session.start(sessionName)
269268
isAutoRetriesEnabled = store.autoRetries
270-
if (isAutoRetriesEnabled) debug('Auto retries disabled inside tryTo effect')
269+
if (isAutoRetriesEnabled) output.debug('Auto retries disabled inside tryTo effect')
271270
store.autoRetries = false
272271
callback()
273272
recorder.add(() => {
@@ -278,7 +277,7 @@ async function tryTo(callback) {
278277
recorder.session.catch(err => {
279278
result = false
280279
const msg = err.inspect ? err.inspect() : err.toString()
281-
debug(`Unsuccessful try > ${msg}`)
280+
output.debug(`Unsuccessful try > ${msg}`)
282281
recorder.session.restore(sessionName)
283282
return result
284283
})

lib/event.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import debugModule from 'debug'
22
const debug = debugModule('codeceptjs:event')
33
import events from 'events'
44
import output from './output.js'
5-
const { error } = output
65

76
const dispatcher = new events.EventEmitter()
87

@@ -154,8 +153,8 @@ export default {
154153
try {
155154
this.dispatcher.emit.apply(this.dispatcher, arguments)
156155
} catch (err) {
157-
error(`Error processing ${event} event:`)
158-
error(err.stack)
156+
output.error(`Error processing ${event} event:`)
157+
output.error(err.stack)
159158
}
160159
},
161160

lib/listener/config.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import event from '../event.js'
22
import recorder from '../recorder.js'
33
import { deepMerge, deepClone, ucfirst } from '../utils.js'
44
import output from '../output.js'
5-
const { debug } = output
65
/**
76
* Enable Helpers to listen to test events
87
*/
@@ -18,14 +17,14 @@ export default function () {
1817
const oldConfig = { ...helper.options }
1918
try {
2019
helper._setConfig(deepMerge(deepClone(oldConfig), config))
21-
debug(`[${ucfirst(type)} Config] ${helper.constructor.name} ${JSON.stringify(config)}`)
20+
output.debug(`[${ucfirst(type)} Config] ${helper.constructor.name} ${JSON.stringify(config)}`)
2221
} catch (err) {
2322
recorder.throw(err)
2423
return
2524
}
2625
event.dispatcher.once(event[type].after, () => {
2726
helper._setConfig(oldConfig)
28-
debug(`[${ucfirst(type)} Config] Reverted for ${helper.constructor.name}`)
27+
output.debug(`[${ucfirst(type)} Config] Reverted for ${helper.constructor.name}`)
2928
})
3029
}
3130

lib/listener/helpers.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import event from '../event.js'
33
import recorder from '../recorder.js'
44
import store from '../store.js'
55
import output from '../output.js'
6-
const { error } = output
76
/**
87
* Enable Helpers to listen to test events
98
*/
@@ -39,30 +38,30 @@ export default function () {
3938

4039
event.dispatcher.on(event.test.started, test => {
4140
runHelpersHook('_test', test)
42-
recorder.catch(e => error(e))
41+
recorder.catch(e => output.error(e))
4342
})
4443

4544
event.dispatcher.on(event.test.before, test => {
4645
// schedule config to revert changes
4746
runAsyncHelpersHook('_before', test, true)
48-
recorder.catchWithoutStop(e => error(e))
47+
recorder.catchWithoutStop(e => output.error(e))
4948
})
5049

5150
event.dispatcher.on(event.test.passed, test => {
5251
runAsyncHelpersHook('_passed', test, true)
5352
// should not fail test execution, so errors should be caught
54-
recorder.catchWithoutStop(e => error(e))
53+
recorder.catchWithoutStop(e => output.error(e))
5554
})
5655

5756
event.dispatcher.on(event.test.failed, test => {
5857
runAsyncHelpersHook('_failed', test, true)
5958
// should not fail test execution, so errors should be caught
60-
recorder.catchWithoutStop(e => error(e))
59+
recorder.catchWithoutStop(e => output.error(e))
6160
})
6261

6362
event.dispatcher.on(event.test.after, () => {
6463
runAsyncHelpersHook('_after', {}, true)
65-
recorder.catchWithoutStop(e => error(e))
64+
recorder.catchWithoutStop(e => output.error(e))
6665
})
6766

6867
event.dispatcher.on(event.step.before, step => {

lib/output.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ let newline = true
2121
* @alias output
2222
* @namespace
2323
*/
24-
export default {
24+
const output = {
2525
colors,
2626
styles,
2727
print,
@@ -61,7 +61,7 @@ export default {
6161
debug(msg) {
6262
const _msg = isMaskedData() ? maskSensitiveData(msg) : msg
6363
if (outputLevel >= 2) {
64-
print(' '.repeat(this.stepShift), styles.debug(`${figures.pointerSmall} ${_msg}`))
64+
print(' '.repeat(output.stepShift), styles.debug(`${figures.pointerSmall} ${_msg}`))
6565
}
6666
},
6767

@@ -72,7 +72,7 @@ export default {
7272
log(msg) {
7373
const _msg = isMaskedData() ? maskSensitiveData(msg) : msg
7474
if (outputLevel >= 3) {
75-
print(' '.repeat(this.stepShift), styles.log(truncate(` ${_msg}`, this.spaceShift)))
75+
print(' '.repeat(output.stepShift), styles.log(truncate(` ${_msg}`, output.stepShift)))
7676
}
7777
},
7878

@@ -98,7 +98,7 @@ export default {
9898
* @param {string} msg
9999
*/
100100
plugin(pluginName, msg = '') {
101-
this.debug(`<${pluginName}> ${msg}`)
101+
output.debug(`<${pluginName}> ${msg}`)
102102
},
103103

104104
/**
@@ -118,14 +118,14 @@ export default {
118118
let stepLine = step.toCliStyled ? step.toCliStyled() : step.toString()
119119
if (step.metaStep && outputLevel >= 1) {
120120
// this.stepShift += 2;
121-
stepLine = colors.dim(truncate(stepLine, this.spaceShift))
121+
stepLine = colors.dim(truncate(stepLine, output.stepShift))
122122
}
123123
if (step.comment) {
124124
stepLine += colors.grey(step.comment.split('\n').join('\n' + ' '.repeat(4)))
125125
}
126126

127127
const _stepLine = isMaskedData() ? maskSensitiveData(stepLine) : stepLine
128-
print(' '.repeat(this.stepShift), truncate(_stepLine, this.spaceShift))
128+
print(' '.repeat(output.stepShift), truncate(_stepLine, output.stepShift))
129129
},
130130

131131
/** @namespace */
@@ -282,3 +282,5 @@ function truncate(msg, gap = 0) {
282282
function isMaskedData() {
283283
return global.maskSensitiveData === true || false
284284
}
285+
286+
export default output

lib/parser.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import parseFunctionModule from 'parse-function'
66
const parseFunction = _interopDefault(parseFunctionModule)
77
const parser = parseFunction({ parse: acorn.parse, ecmaVersion: 11, plugins: ['objectRestSpread'] })
88
import output from './output.js'
9-
const { error } = output
109

1110
parser.use(destructuredArgs)
1211

@@ -20,7 +19,7 @@ function getParams(fn) {
2019
try {
2120
const reflected = parser.parse(fn)
2221
if (reflected.args.length > 1 || reflected.args[0] === 'I') {
23-
error('Error: old CodeceptJS v2 format detected. Upgrade your project to the new format -> https://bit.ly/codecept3Up')
22+
output.error('Error: old CodeceptJS v2 format detected. Upgrade your project to the new format -> https://bit.ly/codecept3Up')
2423
}
2524
if (reflected.destructuredArgs.length > 0) reflected.args = [...reflected.destructuredArgs]
2625
const params = reflected.args.map(p => {
@@ -33,7 +32,7 @@ function getParams(fn) {
3332
return params
3433
} catch (err) {
3534
console.log(`Error in ${fn.toString()}`)
36-
error(err)
35+
output.error(err)
3736
}
3837
}
3938

lib/plugin/auth.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import store from '../store.js'
88
import event from '../event.js'
99
import recorder from '../recorder.js'
1010
import output from '../output.js'
11-
const { debug } = output
1211

1312
const defaultUser = {
1413
fetch: I => I.grabCookie(),
@@ -292,12 +291,12 @@ export default function (config) {
292291

293292
if (isPlaywrightSession() && test?.opts?.cookies) {
294293
if (test.opts.user == name) {
295-
debug(`Cookies already loaded for ${name}`)
294+
output.debug(`Cookies already loaded for ${name}`)
296295

297296
alreadyLoggedIn(name)
298297
return
299298
} else {
300-
debug(`Cookies already loaded for ${test.opts.user}, but not for ${name}`)
299+
output.debug(`Cookies already loaded for ${test.opts.user}, but not for ${name}`)
301300
await I.deleteCookie()
302301
}
303302
}
@@ -317,11 +316,11 @@ export default function (config) {
317316
section.end()
318317
const cookies = await userSession.fetch(I)
319318
if (!cookies) {
320-
debug("Cannot save user session with empty cookies from auto login's fetch method")
319+
output.debug("Cannot save user session with empty cookies from auto login's fetch method")
321320
return
322321
}
323322
if (config.saveToFile) {
324-
debug(`Saved user session into file for ${name}`)
323+
output.debug(`Saved user session into file for ${name}`)
325324
fs.writeFileSync(path.join(global.output_dir, `${name}_session.json`), JSON.stringify(cookies))
326325
}
327326
store[`${name}_session`] = cookies
@@ -339,13 +338,13 @@ export default function (config) {
339338
}
340339
section.end()
341340
recorder.session.catch(err => {
342-
debug(`Failed auto login for ${name} due to ${err}`)
343-
debug('Logging in again')
341+
output.debug(`Failed auto login for ${name} due to ${err}`)
342+
output.debug('Logging in again')
344343
recorder.session.start('auto login')
345344
return loginAndSave()
346345
.then(() => {
347346
recorder.add(() => recorder.session.restore('auto login'))
348-
recorder.catch(() => debug('continue'))
347+
recorder.catch(() => output.debug('continue'))
349348
})
350349
.catch(err => {
351350
recorder.session.restore('auto login')
@@ -365,7 +364,7 @@ export default function (config) {
365364
const suite = store.currentSuite
366365
if (!suite) return
367366

368-
debug(`enabling auth as ${name} for each test of suite ${suite.title}`)
367+
output.debug(`enabling auth as ${name} for each test of suite ${suite.title}`)
369368

370369
// we are setting test opts so they can be picked up by Playwright if it starts browser for this test
371370
suite.eachTest(test => {
@@ -420,7 +419,7 @@ function loadCookiesFromFile(config) {
420419
} catch (err) {
421420
throw new Error(`Could not load session from ${fileName}\n${err}`)
422421
}
423-
debug(`Loaded user session for ${name}`)
422+
output.debug(`Loaded user session for ${name}`)
424423
}
425424
}
426425

lib/plugin/autoDelay.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import recorder from '../recorder.js'
77
import event from '../event.js'
88

99
import output from '../output.js'
10-
const { log } = output
1110
const standardActingHelpers = Container.STANDARD_ACTING_HELPERS
1211

1312
const methodsToDelay = ['click', 'fillField', 'checkOption', 'pressKey', 'doubleClick', 'rightClick']
@@ -76,7 +75,7 @@ export default function (config) {
7675

7776
recorder.add('auto-delay', async () => {
7877
if (store.debugMode) return // no need to delay in debug
79-
log(`Delaying for ${config.delayBefore}ms`)
78+
output.log(`Delaying for ${config.delayBefore}ms`)
8079
return new Promise(resolve => {
8180
setTimeout(resolve, config.delayBefore)
8281
})
@@ -88,7 +87,7 @@ export default function (config) {
8887

8988
recorder.add('auto-delay', async () => {
9089
if (store.debugMode) return // no need to delay in debug
91-
log(`Delaying for ${config.delayAfter}ms`)
90+
output.log(`Delaying for ${config.delayAfter}ms`)
9291
return new Promise(resolve => {
9392
setTimeout(resolve, config.delayAfter)
9493
})

lib/recorder.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ export default {
202202

203203
const retryRules = this.retries.slice().reverse()
204204
return promiseRetry(Object.assign(defaultRetryOptions, retryOpts), (retry, number) => {
205-
if (number > 1) log(`${currentQueue()}Retrying... Attempt #${number}`)
205+
if (number > 1) output.log(`${currentQueue()}Retrying... Attempt #${number}`)
206206
const [promise, timer] = getTimeoutPromise(timeout, taskName)
207207
return Promise.race([promise, Promise.resolve(res).then(fn)])
208208
.finally(() => clearTimeout(timer))

lib/step/record.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import event from '../event.js'
22
import recorder from '../recorder.js'
33
import StepConfig from './config.js'
44
import output from '../output.js'
5-
const { debug } = output
65
import store from '../store.js'
76
import { TIMEOUT_ORDER } from '../timeout.js'
87
import retryStep from './retry.js'
@@ -16,12 +15,12 @@ function recordStep(step, args) {
1615
const { opts, timeout, retry } = stepConfig.getConfig()
1716

1817
if (opts) {
19-
debug(`Step ${step.name}: options applied ${JSON.stringify(opts)}`)
18+
output.debug(`Step ${step.name}: options applied ${JSON.stringify(opts)}`)
2019
store.stepOptions = opts
2120
step.opts = opts
2221
}
2322
if (timeout) {
24-
debug(`Step ${step.name} timeout ${timeout}s`)
23+
output.debug(`Step ${step.name} timeout ${timeout}s`)
2524
step.setTimeout(timeout * 1000, TIMEOUT_ORDER.codeLimitTime)
2625
}
2726
if (retry) retryStep(retry)

0 commit comments

Comments
 (0)