0.0.9 • Published 2 years ago

@jest-automation/console v0.0.9

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Console

This package allows the console object to be reconfigured to support groups, which are disabled by default in node.

Grouping can be enabled by calling useConsoleGroups, and disabled with disableConsoleGroups.

To start a console group call console.group('some title here'), and to end it call console.groupEnd().

For example take the following code:

console.group('Outer Group');
console.group('Inner Group');
console.log('Http Request Sent');
console.log('Http Response Received');  
console.groupEnd();
console.groupEnd();

Which will produce the following output

Outer Group
  Inner Group
     [Log]
     Http Request Sent
     /path/to/file:8:11

     [Log]
     Http Response Received
     /path/to/file:9:11

Checked Grouping

To confirm groups are being ended when expected, the startGroup and endGroup functions can be used.

startGroup takes a ConsoleGroupToken or a string and begins a console group. endGroup also takes a ConsoleGroupToken or a string, and will raise a warning message if groups are being ended in the wrong order.

ConsoleGroupToken

The ConsoleGroupToken is an empty enum. It can be replaced by custom enum values by declaring the type somewhere in your project.

// in 'typings.d.ts' or similar file
declare module "@jest-automation/console" {
    export enum ConsoleGroupToken {
        Scenario = 'Scenario',
        Test = 'Test'
    }
}

Which can now be used directly

startGroup(ConsoleGroupToken.Scenario)

startGroup can also accept additional values which will be displayed in the group title

startGroup(ConsoleGroupToken.Scenario, 'first', 1)
// prints 
// Scenario: first, 1

Grouping

Alternatively the grouping function can be used. grouping takes a title and an action. The action is executed and the group is closed again before the error is propagated.

Grouping will return the value of an action directly. If the action returns a promise, then grouping can be awaited

grouping('a group', ()=>{
    doStuff()
})

await grouping('an async group', async ()=>{
    return someAsyncJob()
})

Async

Grouping only makes sense in a synchronous context. Groups should only be written outside of async functions which are not immediately awaited.

However async actions can be run within a group - just be sure they're all completed before ending it.

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago