@@ -11,7 +11,7 @@ const fs = require('fs');
1111const { URL } = require ( 'url' ) ;
1212
1313const WebSocket = require ( '..' ) ;
14- const { EMPTY_BUFFER , GUID , NOOP } = require ( '../lib/constants' ) ;
14+ const { EMPTY_BUFFER , GUID , kListener , NOOP } = require ( '../lib/constants' ) ;
1515
1616class CustomAgent extends http . Agent {
1717 addRequest ( ) { }
@@ -2157,88 +2157,82 @@ describe('WebSocket', () => {
21572157
21582158 assert . strictEqual ( listeners . length , 2 ) ;
21592159 assert . strictEqual ( listeners [ 0 ] , NOOP ) ;
2160- assert . strictEqual ( listeners [ 1 ] . _listener , NOOP ) ;
2160+ assert . strictEqual ( listeners [ 1 ] [ kListener ] , NOOP ) ;
21612161
21622162 ws . onclose = NOOP ;
21632163
21642164 listeners = ws . listeners ( 'close' ) ;
21652165
21662166 assert . strictEqual ( listeners . length , 2 ) ;
21672167 assert . strictEqual ( listeners [ 0 ] , NOOP ) ;
2168- assert . strictEqual ( listeners [ 1 ] . _listener , NOOP ) ;
2168+ assert . strictEqual ( listeners [ 1 ] [ kListener ] , NOOP ) ;
21692169 } ) ;
21702170
2171- it ( 'adds listeners for custom events with `addEventListener`' , ( ) => {
2171+ it ( 'supports the `addEventListener` method' , ( ) => {
2172+ const events = [ ] ;
21722173 const ws = new WebSocket ( 'ws://localhost' , { agent : new CustomAgent ( ) } ) ;
21732174
2174- ws . addEventListener ( 'foo' , NOOP ) ;
2175- assert . strictEqual ( ws . listeners ( 'foo' ) [ 0 ] , NOOP ) ;
2175+ ws . addEventListener ( 'foo' , ( ) => { } ) ;
2176+ assert . strictEqual ( ws . listenerCount ( 'foo' ) , 0 ) ;
21762177
2177- //
2178- // Fails silently when the `listener` is not a function.
2179- //
2180- ws . addEventListener ( 'bar' , { } ) ;
2181- assert . strictEqual ( ws . listeners ( 'bar' ) . length , 0 ) ;
2182- } ) ;
2178+ ws . addEventListener ( 'open' , ( ) => {
2179+ events . push ( 'open' ) ;
2180+ assert . strictEqual ( ws . listenerCount ( 'open' ) , 1 ) ;
2181+ } ) ;
21832182
2184- it ( 'allows to add one time listeners with `addEventListener`' , ( done ) => {
2185- const ws = new WebSocket ( 'ws://localhost' , { agent : new CustomAgent ( ) } ) ;
2183+ assert . strictEqual ( ws . listenerCount ( 'open' ) , 1 ) ;
21862184
21872185 ws . addEventListener (
2188- 'foo ' ,
2186+ 'message ' ,
21892187 ( ) => {
2190- assert . strictEqual ( ws . listenerCount ( 'foo' ) , 0 ) ;
2191- done ( ) ;
2188+ events . push ( 'message' ) ;
2189+ assert . strictEqual ( ws . listenerCount ( 'message' ) , 0 ) ;
21922190 } ,
21932191 { once : true }
21942192 ) ;
21952193
2196- assert . strictEqual ( ws . listenerCount ( 'foo' ) , 1 ) ;
2197- ws . emit ( 'foo' ) ;
2194+ assert . strictEqual ( ws . listenerCount ( 'message' ) , 1 ) ;
2195+
2196+ ws . emit ( 'open' ) ;
2197+ ws . emit ( 'message' , EMPTY_BUFFER , false ) ;
2198+
2199+ assert . deepStrictEqual ( events , [ 'open' , 'message' ] ) ;
21982200 } ) ;
21992201
22002202 it ( 'supports the `removeEventListener` method' , ( ) => {
22012203 const ws = new WebSocket ( 'ws://localhost' , { agent : new CustomAgent ( ) } ) ;
22022204
22032205 ws . addEventListener ( 'message' , NOOP ) ;
22042206 ws . addEventListener ( 'open' , NOOP ) ;
2205- ws . addEventListener ( 'foo' , NOOP ) ;
22062207
2207- assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] . _listener , NOOP ) ;
2208- assert . strictEqual ( ws . listeners ( 'open' ) [ 0 ] . _listener , NOOP ) ;
2209- assert . strictEqual ( ws . listeners ( 'foo' ) [ 0 ] , NOOP ) ;
2208+ assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] [ kListener ] , NOOP ) ;
2209+ assert . strictEqual ( ws . listeners ( 'open' ) [ 0 ] [ kListener ] , NOOP ) ;
22102210
22112211 ws . removeEventListener ( 'message' , ( ) => { } ) ;
22122212
2213- assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] . _listener , NOOP ) ;
2213+ assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] [ kListener ] , NOOP ) ;
22142214
22152215 ws . removeEventListener ( 'message' , NOOP ) ;
22162216 ws . removeEventListener ( 'open' , NOOP ) ;
2217- ws . removeEventListener ( 'foo' , NOOP ) ;
22182217
22192218 assert . strictEqual ( ws . listenerCount ( 'message' ) , 0 ) ;
22202219 assert . strictEqual ( ws . listenerCount ( 'open' ) , 0 ) ;
2221- assert . strictEqual ( ws . listenerCount ( 'foo' ) , 0 ) ;
22222220
22232221 ws . addEventListener ( 'message' , NOOP , { once : true } ) ;
22242222 ws . addEventListener ( 'open' , NOOP , { once : true } ) ;
2225- ws . addEventListener ( 'foo' , NOOP , { once : true } ) ;
22262223
2227- assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] . _listener , NOOP ) ;
2228- assert . strictEqual ( ws . listeners ( 'open' ) [ 0 ] . _listener , NOOP ) ;
2229- assert . strictEqual ( ws . listeners ( 'foo' ) [ 0 ] , NOOP ) ;
2224+ assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] [ kListener ] , NOOP ) ;
2225+ assert . strictEqual ( ws . listeners ( 'open' ) [ 0 ] [ kListener ] , NOOP ) ;
22302226
22312227 ws . removeEventListener ( 'message' , ( ) => { } ) ;
22322228
2233- assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] . _listener , NOOP ) ;
2229+ assert . strictEqual ( ws . listeners ( 'message' ) [ 0 ] [ kListener ] , NOOP ) ;
22342230
22352231 ws . removeEventListener ( 'message' , NOOP ) ;
22362232 ws . removeEventListener ( 'open' , NOOP ) ;
2237- ws . removeEventListener ( 'foo' , NOOP ) ;
22382233
22392234 assert . strictEqual ( ws . listenerCount ( 'message' ) , 0 ) ;
22402235 assert . strictEqual ( ws . listenerCount ( 'open' ) , 0 ) ;
2241- assert . strictEqual ( ws . listenerCount ( 'foo' ) , 0 ) ;
22422236 } ) ;
22432237
22442238 it ( 'wraps text data in a `MessageEvent`' , ( done ) => {
0 commit comments