@@ -6,27 +6,69 @@ import stripAnsi from "strip-ansi";
6
6
test . beforeEach ( async ( t ) => {
7
7
t . context . verboseLogStub = sinon . stub ( ) ;
8
8
t . context . setLogLevelStub = sinon . stub ( ) ;
9
+ t . context . isLogLevelEnabledStub = sinon . stub ( ) . returns ( true ) ;
10
+ t . context . getVersionStub = sinon . stub ( ) . returns ( "1.0.0" ) ;
9
11
t . context . logger = await esmock ( "../../../../lib/cli/middlewares/logger.js" , {
12
+ "../../../../lib/cli/version.js" : {
13
+ getVersion : t . context . getVersionStub
14
+ } ,
10
15
"@ui5/logger" : {
11
16
getLogger : ( ) => ( {
12
17
verbose : t . context . verboseLogStub ,
13
18
} ) ,
14
19
setLogLevel : t . context . setLogLevelStub ,
20
+ isLogLevelEnabled : t . context . isLogLevelEnabledStub ,
15
21
}
16
22
} ) ;
17
23
} ) ;
18
24
19
25
test . serial ( "init logger" , async ( t ) => {
20
- const { logger, setLogLevelStub} = t . context ;
26
+ const { logger, setLogLevelStub, isLogLevelEnabledStub , verboseLogStub , getVersionStub } = t . context ;
21
27
await logger . initLogger ( { } ) ;
22
28
t . is ( setLogLevelStub . callCount , 0 , "setLevel has not been called" ) ;
29
+ t . is ( isLogLevelEnabledStub . callCount , 1 , "isLogLevelEnabled has been called once" ) ;
30
+ t . is ( isLogLevelEnabledStub . firstCall . firstArg , "verbose" ,
31
+ "isLogLevelEnabled has been called with expected argument" ) ;
32
+ t . is ( getVersionStub . callCount , 1 , "getVersion has been called once" ) ;
33
+ t . is ( verboseLogStub . callCount , 2 , "log.verbose has been called twice" ) ;
34
+ t . is ( verboseLogStub . firstCall . firstArg , "using @ui5/cli version 1.0.0" ,
35
+ "log.verbose has been called with expected argument on first call" ) ;
36
+ t . is ( verboseLogStub . secondCall . firstArg , `using node version ${ process . version } ` ,
37
+ "log.verbose has been called with expected argument on second call" ) ;
23
38
} ) ;
24
39
25
40
test . serial ( "With log-level flag" , async ( t ) => {
26
41
const { logger, setLogLevelStub} = t . context ;
27
42
await logger . initLogger ( { loglevel : "silly" } ) ;
28
43
t . is ( setLogLevelStub . callCount , 1 , "setLevel has been called once" ) ;
29
- t . is ( setLogLevelStub . getCall ( 0 ) . args [ 0 ] , "silly" , "sets log level to verbose" ) ;
44
+ t . is ( setLogLevelStub . getCall ( 0 ) . args [ 0 ] , "silly" , "sets log level to silly" ) ;
45
+ } ) ;
46
+
47
+ test . serial ( "With default log-level flag" , async ( t ) => {
48
+ const { logger, setLogLevelStub} = t . context ;
49
+ await logger . initLogger ( { loglevel : "info" } ) ;
50
+ t . is ( setLogLevelStub . callCount , 0 , "setLevel has not been called" ) ;
51
+ } ) ;
52
+
53
+ test . serial ( "With verbose flag" , async ( t ) => {
54
+ const { logger, setLogLevelStub} = t . context ;
55
+ await logger . initLogger ( { verbose : true } ) ;
56
+ t . is ( setLogLevelStub . callCount , 1 , "setLevel has been called once" ) ;
57
+ t . is ( setLogLevelStub . getCall ( 0 ) . args [ 0 ] , "verbose" , "sets log level to verbose" ) ;
58
+ } ) ;
59
+
60
+ test . serial ( "With perf flag" , async ( t ) => {
61
+ const { logger, setLogLevelStub} = t . context ;
62
+ await logger . initLogger ( { perf : true } ) ;
63
+ t . is ( setLogLevelStub . callCount , 1 , "setLevel has been called once" ) ;
64
+ t . is ( setLogLevelStub . getCall ( 0 ) . args [ 0 ] , "perf" , "sets log level to perf" ) ;
65
+ } ) ;
66
+
67
+ test . serial ( "With silent flag" , async ( t ) => {
68
+ const { logger, setLogLevelStub} = t . context ;
69
+ await logger . initLogger ( { silent : true } ) ;
70
+ t . is ( setLogLevelStub . callCount , 1 , "setLevel has been called once" ) ;
71
+ t . is ( setLogLevelStub . getCall ( 0 ) . args [ 0 ] , "silent" , "sets log level to silent" ) ;
30
72
} ) ;
31
73
32
74
test . serial ( "With log-level and verbose flag" , async ( t ) => {
@@ -37,6 +79,16 @@ test.serial("With log-level and verbose flag", async (t) => {
37
79
t . is ( setLogLevelStub . getCall ( 1 ) . args [ 0 ] , "verbose" , "sets log level to verbose" ) ;
38
80
} ) ;
39
81
82
+ test . serial ( "With log-level, verbose, perf and silent flag" , async ( t ) => {
83
+ const { logger, setLogLevelStub} = t . context ;
84
+ await logger . initLogger ( { loglevel : "silly" , verbose : true , perf : true , silent : true } ) ;
85
+ t . is ( setLogLevelStub . callCount , 4 , "setLevel has been called four times" ) ;
86
+ t . is ( setLogLevelStub . getCall ( 0 ) . args [ 0 ] , "silly" , "sets log level to verbose" ) ;
87
+ t . is ( setLogLevelStub . getCall ( 1 ) . args [ 0 ] , "perf" , "sets log level to perf" ) ;
88
+ t . is ( setLogLevelStub . getCall ( 2 ) . args [ 0 ] , "verbose" , "Third sets log level to verbose" ) ;
89
+ t . is ( setLogLevelStub . getCall ( 3 ) . args [ 0 ] , "silent" , "sets log level to silent" ) ;
90
+ } ) ;
91
+
40
92
import path from "node:path" ;
41
93
import { execa } from "execa" ;
42
94
import { fileURLToPath } from "node:url" ;
0 commit comments