File tree 3 files changed +101
-21
lines changed
3 files changed +101
-21
lines changed Original file line number Diff line number Diff line change 10
10
'use strict' ;
11
11
12
12
const chalk = require ( 'chalk' ) ;
13
- let isVerbose = false ;
14
- let quiet = false ;
15
- let messages = {
16
- debug : [ ] ,
17
- warning : [ ] ,
13
+
14
+ const messagesKeys = [
15
+ 'debug' ,
16
+ 'recommendation' ,
17
+ 'warning' ,
18
+ ] ;
19
+ const defaultConfig = {
20
+ isVerbose : false ,
21
+ quiet : false
22
+ } ;
23
+
24
+ let messages = { } ;
25
+ let config = { } ;
26
+
27
+ const reset = function ( ) {
28
+ messages = { } ;
29
+ for ( let messageKey of messagesKeys ) {
30
+ messages [ messageKey ] = [ ] ;
31
+ }
32
+ config = Object . assign ( { } , defaultConfig ) ;
18
33
} ;
34
+ reset ( ) ;
19
35
20
36
function log ( message ) {
21
- if ( quiet ) {
37
+ if ( config . quiet ) {
22
38
return ;
23
39
}
24
40
@@ -29,31 +45,36 @@ module.exports = {
29
45
debug ( message ) {
30
46
messages . debug . push ( message ) ;
31
47
32
- if ( isVerbose ) {
33
- log ( `${ chalk . bgBlack . white ( ' DEBUG ' ) } ${ message } ` ) ;
48
+ if ( config . isVerbose ) {
49
+ log ( `${ chalk . bgBlack . white ( ' DEBUG ' ) } ${ message } ` ) ;
34
50
}
35
51
} ,
36
52
37
- warning ( message ) {
38
- messages . warning . push ( message ) ;
53
+ recommendation ( message ) {
54
+ messages . recommendation . push ( message ) ;
39
55
40
- log ( `${ chalk . bgYellow . black ( ' WARNING ' ) } ${ chalk . yellow ( message ) } ` ) ;
56
+ log ( `${ chalk . bgBlue . white ( ' RECOMMEND ' ) } ${ message } ` ) ;
41
57
} ,
42
58
43
- clearMessages ( ) {
44
- messages . debug = [ ] ;
45
- messages . warning = [ ] ;
59
+ warning ( message ) {
60
+ messages . warning . push ( message ) ;
61
+
62
+ log ( `${ chalk . bgYellow . black ( ' WARNING ' ) } ${ chalk . yellow ( message ) } ` ) ;
46
63
} ,
47
64
48
65
getMessages ( ) {
49
66
return messages ;
50
67
} ,
51
68
52
- quiet ( ) {
53
- quiet = true ;
69
+ quiet ( setQuiet = true ) {
70
+ config . quiet = setQuiet ;
71
+ } ,
72
+
73
+ verbose ( setVerbose = true ) {
74
+ config . isVerbose = setVerbose ;
54
75
} ,
55
76
56
- verbose ( ) {
57
- isVerbose = true ;
77
+ reset ( ) {
78
+ reset ( ) ;
58
79
}
59
80
} ;
Original file line number Diff line number Diff line change @@ -15,8 +15,6 @@ const RuntimeConfig = require('../../lib/config/RuntimeConfig');
15
15
const validator = require ( '../../lib/config/validator' ) ;
16
16
const logger = require ( '../../lib/logger' ) ;
17
17
18
- logger . quiet ( ) ;
19
-
20
18
function createConfig ( ) {
21
19
const runtimeConfig = new RuntimeConfig ( ) ;
22
20
runtimeConfig . context = __dirname ;
@@ -77,7 +75,8 @@ describe('The validator function', () => {
77
75
config . addEntry ( 'main' , './main' ) ;
78
76
config . runtimeConfig . useDevServer = true ;
79
77
80
- logger . clearMessages ( ) ;
78
+ logger . reset ( ) ;
79
+ logger . quiet ( ) ;
81
80
validator ( config ) ;
82
81
83
82
expect ( logger . getMessages ( ) . warning ) . to . have . lengthOf ( 1 ) ;
Original file line number Diff line number Diff line change
1
+ /*
2
+ * This file is part of the Symfony package.
3
+ *
4
+ * (c) Fabien Potencier <fabien@symfony.com>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+ 'use strict' ;
11
+
12
+ const expect = require ( 'chai' ) . expect ;
13
+ require ( '../lib/context' ) . runtimeConfig = { } ;
14
+ const logger = require ( '../lib/logger' ) ;
15
+
16
+ describe ( 'logger' , ( ) => {
17
+ beforeEach ( ( ) => {
18
+ logger . reset ( ) ;
19
+ } ) ;
20
+
21
+ afterEach ( ( ) => {
22
+ logger . reset ( ) ;
23
+ } ) ;
24
+
25
+ it ( 'Smoke test for log methods' , ( ) => {
26
+
27
+ const methods = [
28
+ 'debug' ,
29
+ 'recommendation' ,
30
+ 'warning' ,
31
+ ] ;
32
+ const testString = 'TEST MESSAGE' ;
33
+ const expectedMessages = {
34
+ debug : [ testString ] ,
35
+ recommendation : [ testString ] ,
36
+ warning : [ testString ] ,
37
+ } ;
38
+
39
+ logger . quiet ( ) ;
40
+ logger . verbose ( ) ;
41
+
42
+ for ( let loggerMethod of methods ) {
43
+ logger [ loggerMethod ] ( testString ) ;
44
+ }
45
+
46
+ // clone the object so the afterEach doesn't clear out before
47
+ // a failure message is shown
48
+ const actualMessages = Object . assign ( { } , logger . getMessages ( ) ) ;
49
+ expect ( actualMessages ) . to . deep . equal ( expectedMessages ) ;
50
+ } ) ;
51
+
52
+ it ( 'test reset()' , ( ) => {
53
+ logger . debug ( 'DEBUG!' ) ;
54
+ logger . reset ( ) ;
55
+
56
+ const actualMessages = Object . assign ( { } , logger . getMessages ( ) ) ;
57
+
58
+ expect ( actualMessages . debug ) . to . have . lengthOf ( 0 ) ;
59
+ } ) ;
60
+ } ) ;
You can’t perform that action at this time.
0 commit comments