@@ -7,156 +7,162 @@ function setupLogging(category, options) {
7
7
var msgs = [ ] ;
8
8
9
9
var fakeMailer = {
10
- send_mail : function ( msg , callback ) {
11
- msgs . push ( msg )
10000
;
12
- callback ( null , true ) ;
13
- }
10
+ createTransport : function ( name , options ) {
11
+ return {
12
+ config : options ,
13
+ sendMail : function ( msg , callback ) {
14
+ msgs . push ( msg ) ;
15
+ callback ( null , true ) ;
16
+ }
17
+ } ;
18
+ }
14
19
} ;
15
20
16
21
var smtpModule = sandbox . require ( '../lib/appenders/smtp' , {
17
- requires : {
18
- 'nodemailer' : fakeMailer
19
- }
22
+ requires : {
23
+ 'nodemailer' : fakeMailer
24
+ }
20
25
} ) ;
21
26
22
27
log4js . addAppender ( smtpModule . configure ( options ) , category ) ;
23
28
24
29
return {
25
- logger : log4js . getLogger ( category ) ,
26
- mailer : fakeMailer ,
27
- results : msgs
30
+ logger : log4js . getLogger ( category ) ,
31
+ mailer : fakeMailer ,
32
+ results : msgs
28
33
} ;
29
34
}
30
35
31
36
function checkMessages ( result , sender , subject ) {
32
37
for ( var i = 0 ; i < result . results . length ; ++ i ) {
33
- assert . equal ( result . results [ i ] . sender , sender ? sender : result . mailer . SMTP . user ) ;
34
- assert . equal ( result . results [ i ] . to , 'recipient@domain.com' ) ;
35
- assert . equal ( result . results [ i ] . subject , subject ? subject : 'Log event #' + ( i + 1 ) ) ;
36
- assert . ok ( new RegExp ( '.+Log event #' + ( i + 1 ) + '\n$' ) . test ( result . results [ i ] . body ) ) ;
38
+ assert . equal ( result . results [ i ] . from , sender ) ;
39
+ assert . equal ( result . results [ i ] . to , 'recipient@domain.com' ) ;
40
+ assert . equal ( result . results [ i ] . subject , subject ? subject : 'Log event #' + ( i + 1 ) ) ;
41
+ assert . ok ( new RegExp ( '.+Log event #' + ( i + 1 ) + '\n$' ) . test ( result . results [ i ] . text ) ) ;
37
42
}
38
43
}
39
44
40
45
log4js . clearAppenders ( ) ;
41
46
vows . describe ( 'log4js smtpAppender' ) . addBatch ( {
42
47
'minimal config' : {
43
- topic : function ( ) {
44
- var setup = setupLogging ( 'minimal config' , {
45
- recipients : 'recipient@domain.com' ,
46
- smtp : {
47
- port : 25 ,
48
- user : 'user@domain.com'
48
+ topic : function ( ) {
49
+ var setup = setupLogging ( 'minimal config' , {
50
+ recipients : 'recipient@domain.com' ,
51
+ transport : "SMTP" ,
52
+ SMTP : {
53
+ port : 25 ,
54
+ auth : {
55
+ user : 'user@domain.com'
56
+ }
57
+ }
58
+ } ) ;
59
+ setup . logger . info ( 'Log event #1' ) ;
60
+ return setup ;
61
+ } ,
62
+ 'there should be one message only' : function ( result ) {
63
+ assert . equal ( result . results . length , 1 ) ;
64
+ } ,
65
+ 'message should contain proper data' : function ( result ) {
66
+ checkMessages ( result ) ;
49
67
}
50
- } ) ;
51
- setup . logger . info ( 'Log event #1' ) ;
52
- return setup ;
53
- } ,
54
- 'mailer should be configured properly' : function ( result ) {
55
- assert . ok ( result . mailer . SMTP ) ;
56
- assert . equal ( result . mailer . SMTP . port , 25 ) ;
57
- assert . equal ( r
1241
esult . mailer . SMTP . user , 'user@domain.com' ) ;
58
- } ,
59
- 'there should be one message only' : function ( result ) {
60
- assert . equal ( result . results . length , 1 ) ;
61
- } ,
62
- 'message should contain proper data' : function ( result ) {
63
- checkMessages ( result ) ;
64
- }
65
68
} ,
66
69
'fancy config' : {
67
- topic : function ( ) {
68
- var setup = setupLogging ( 'fancy config' , {
69
- recipients : 'recipient@domain.com' ,
70
- sender : 'sender@domain.com' ,
71
- subject : 'This is subject' ,
72
- smtp : {
73
- port : 25 ,
74
- user : 'user@domain.com'
70
+ topic : function ( ) {
71
+ var setup = setupLogging ( 'fancy config' , {
72
+ recipients : 'recipient@domain.com' ,
73
+ sender : 'sender@domain.com' ,
74
+ subject : 'This is subject' ,
75
+ transport : "SMTP" ,
76
+ SMTP : {
77
+ port : 25 ,
78
+ auth : {
79
+ user : 'user@domain.com'
80
+ }
81
+ }
82
+ } ) ;
83
+ setup . logger . info ( 'Log event #1' ) ;
84
+ return setup ;
85
+ } ,
86
+ 'there should be one message only' : function ( result ) {
87
+ assert . equal ( result . results . length , 1 ) ;
88
+ } ,
89
+ 'message should contain proper data' : function ( result ) {
90
+ checkMessages ( result , 'sender@domain.com' , 'This is subject' ) ;
75
91
}
76
- } ) ;
77
- setup . logger . info ( 'Log event #1' ) ;
78
- return setup ;
79
- } ,
80
- 'mailer should be configured properly' : function ( result ) {
81
- assert . ok ( result . mailer . SMTP ) ;
82
- assert . equal ( result . mailer . SMTP . port , 25 ) ;
83
- assert . equal ( result . mailer . SMTP . user , 'user@domain.com' ) ;
84
- } ,
85
- 'there should be one message only' : function ( result ) {
86
- assert . equal ( result . results . length , 1 ) ;
87
- } ,
88
- 'message should contain proper data' : function ( result ) {
89
- checkMessages ( result , 'sender@domain.com' , 'This is subject' ) ;
90
- }
91
92
} ,
92
93
'separate email for each event' : {
93
- topic : function ( ) {
94
- var self = this ;
95
- var setup = setupLogging ( 'separate email for each event' , {
96
- recipients : 'recipient@domain.com' ,
97
- smtp : {
98
- port : 25 ,
99
- user : 'user@domain.com'
94
+ topic : function ( ) {
95
+ var self = this ;
96
+ var setup = setupLogging ( 'separate email for each event' , {
97
+ recipients : 'recipient@domain.com' ,
98
+ transport : "SMTP" ,
99
+ SMTP : {
100
+ port : 25 ,
101
+ auth : {
102
+ user : 'user@domain.com'
103
+ }
104
+ }
105
+ } ) ;
106
+ setTimeout ( function ( ) {
107
+ setup . logger . info ( 'Log event #1' ) ;
108
+ } , 0 ) ;
109
+ setTimeout ( function ( ) {
110
+ setup . logger . info ( 'Log event #2' ) ;
111
+ } , 500 ) ;
112
+ setTimeout ( function ( ) {
113
+ setup . logger . info ( 'Log event #3' ) ;
114
+ } , 1050 ) ;
115
+ setTimeout ( function ( ) {
116
+ self . callback ( null , setup ) ;
117
+ } , 2100 ) ;
118
+ } ,
119
+ 'there should be three messages' : function ( result ) {
120
+ assert . equal ( result . results . length , 3 ) ;
121
+ } ,
122
+ 'messages should contain proper data' : function ( result ) {
123
+ checkMessages ( result ) ;
100
124
}
101
- } ) ;
102
- setTimeout ( function ( ) {
103
- setup . logger . info ( 'Log event #1' ) ;
104
- } , 0 ) ;
105
- setTimeout ( function ( ) {
106
- setup . logger . info ( 'Log event #2' ) ;
107
- } , 500 ) ;
108
- setTimeout ( function ( ) {
109
- setup . logger . info ( 'Log event #3' ) ;
110
- } , 1050 ) ;
111
- setTimeout ( function ( ) {
112
- self . callback ( null , setup ) ;
113
- } , 2100 ) ;
114
- } ,
115
- 'there should be three messages' : function ( result ) {
116
- assert . equal ( result . results . length , 3 ) ;
117
- } ,
118
- 'messages should contain proper data' : function ( result ) {
119
- checkMessages ( result ) ;
120
- }
121
125
} ,
122
126
'multiple events in one email' : {
123
- topic : function ( ) {
124
- var self = this ;
125
- var setup = setupLogging ( 'multiple events in one email' , {
126
- recipients : 'recipient@domain.com' ,
127
- sendInterval : 1 ,
128
- smtp : {
129
- port : 25 ,
130
- user : 'user@domain.com'
127
+ topic : function ( ) {
128
+ var self = this ;
129
+ var setup = setupLogging ( 'multiple events in one email' , {
130
+ recipients : 'recipient@domain.com' ,
131
+ sendInterval : 1 ,
132
+ transport : "SMTP" ,
133
+ SMTP : {
134
+ port : 25 ,
135
+ auth : {
136
+ user : 'user@domain.com'
137
+ }
138
+ }
139
+ } ) ;
140
+ setTimeout ( function ( ) {
141
+ setup . logger . info ( 'Log event #1' ) ;
142
+ } , 0 ) ;
143
+ setTimeout ( function ( ) {
144
+ setup . logger . info ( 'Log event #2' ) ;
145
+ } , 500 ) ;
146
+ setTimeout ( function ( ) {
147
+ setup . logger . info ( 'Log event #3' ) ;
148
+ } , 1050 ) ;
149
+ setTimeout ( function ( ) {
150
+ self . callback ( null , setup ) ;
151
+ } , 2100 ) ;
152
+ } ,
153
+ 'there should be two messages' : function ( result ) {
154
+ assert . equal ( result . results . length , 2 ) ;
155
+ } ,
156
+ 'messages should contain proper data' : function ( result ) {
157
+ assert . equal ( result . results [ 0 ] . to , 'recipient@domain.com' ) ;
158
+ assert . equal ( result . results [ 0 ] . subject , 'Log event #1' ) ;
159
+ assert . equal ( result . results [ 0 ] . text . match ( new RegExp ( '.+Log event #[1-2]$' , 'gm' ) ) . length , 2 ) ;
160
+
161
+ assert . equal ( result . results [ 1 ] . to , 'recipient@domain.com' ) ;
162
+ assert . equal ( result . results [ 1 ] . subject , 'Log event #3' ) ;
163
+ assert . ok ( new RegExp ( '.+Log event #3\n$' ) . test ( result . results [ 1 ] . text ) ) ;
131
164
}
132
- } ) ;
133
- setTimeout ( function ( ) {
134
- setup . logger . info ( 'Log event #1' ) ;
135
- } , 0 ) ;
136
- setTimeout ( function ( ) {
137
- setup . logger . info ( 'Log event #2' ) ;
138
- } , 500 ) ;
139
- setTimeout ( function ( ) {
140
- setup . logger . info ( 'Log event #3' ) ;
141
- } , 1050 ) ;
142
- setTimeout ( function ( ) {
143
- self . callback ( null , setup ) ;
144
- } , 2100 ) ;
145
- } ,
146
- 'there should be two messages' : function ( result ) {
147
- assert . equal ( result . results . length , 2 ) ;
148
- } ,
149
- 'messages should contain proper data' : function ( result ) {
150
- assert . equal ( result . results [ 0 ] . sender , result . mailer . SMTP . user ) ;
151
- assert . equal ( result . results [ 0 ] . to , 'recipient@domain.com' ) ;
152
- assert . equal ( result . results [ 0 ] . subject , 'Log event #1' ) ;
153
- assert . equal ( result . results [ 0 ] . body . match ( new RegExp ( '.+Log event #[1-2]$' , 'gm' ) ) . length , 2 ) ;
154
-
155
- assert . equal ( result . results [ 1 ] . sender , result . mailer . SMTP . user ) ;
156
- assert . equal ( result . results [ 1 ] . to , 'recipient@domain.com' ) ;
157
- assert . equal ( result . results [ 1 ] . subject , 'Log event #3' ) ;
158
- assert . ok ( new RegExp ( '.+Log event #3\n$' ) . test ( result . results [ 1 ] . body ) ) ;
159
- }
160
165
}
161
166
162
167
} ) . export ( module ) ;
168
+
0 commit comments