File: ve.FakePeer.test.js

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (55 lines) | stat: -rw-r--r-- 1,232 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*!
 * VisualEditor FakePeer tests.
 *
 * @copyright See AUTHORS.txt
 */

QUnit.module( 've.FakePeer' );

QUnit.test( 'interactions', ( assert ) => {
	const log = [];
	const done = assert.async();
	const finalCheck = function () {
		const expectedLog = [
			'peer0open p0',
			'peer1open p1',
			'peer0conn',
			'conn1open',
			'conn0open',
			'conn1data hello'
		];
		assert.deepEqual( log, expectedLog, 'log' );
		done();
	};

	const mkPeer = function () {
		// return new Peer( undefined, { host: 'localhost', port: 9000, path: '/myapp' } );
		return new ve.FakePeer();
	};
	const peer0 = mkPeer();
	peer0.on( 'open', ( peer0Id ) => {
		log.push( 'peer0open ' + peer0Id );
		const peer1 = mkPeer();
		peer1.on( 'open', ( id ) => {
			log.push( 'peer1open ' + id );
			const conn1 = peer1.connect( peer0Id );
			conn1.on( 'open', () => {
				log.push( 'conn1open' );
			} );
			conn1.on( 'data', ( data ) => {
				log.push( 'conn1data ' + data );
				finalCheck();
			} );
		} );
	} );
	peer0.on( 'connection', ( conn0 ) => {
		log.push( 'peer0conn' );
		conn0.on( 'open', () => {
			log.push( 'conn0open' );
			conn0.send( 'hello' );
		} );
		conn0.on( 'data', ( data ) => {
			log.push( 'conn0data ' + data );
		} );
	} );
} );