-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathmultiple-instances.test.js
53 lines (42 loc) · 1.39 KB
/
multiple-instances.test.js
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
jest.setTimeout(1e4);
const dbus = require('dbus-next');
const Player = require('../dist');
let initErrors = [];
let playerName = 'multiple_instances';
function errorHandler(err) {
console.log(err.stack);
initErrors.push(err);
}
let player1 = Player({
name: playerName,
identity: 'Node.js media player',
supportedUriSchemes: ['file'],
supportedMimeTypes: ['audio/mpeg', 'application/ogg'],
supportedInterfaces: ['player']
});
player1.on('error', errorHandler);
let player2 = Player({
name: playerName,
identity: 'Node.js media player',
supportedUriSchemes: ['file'],
supportedMimeTypes: ['audio/mpeg', 'application/ogg'],
supportedInterfaces: ['player']
});
player2.on('error', errorHandler);
let bus = dbus.sessionBus();
afterAll(() => {
player1._bus.disconnect();
player2._bus.disconnect();
bus.disconnect();
});
test('creating two players with the same name on the same bus should create the second one as an instance', async () => {
let dbusObj = await bus.getProxyObject('org.freedesktop.DBus', '/org/freedesktop/DBus');
let dbusIface = dbusObj.getInterface('org.freedesktop.DBus');
let names = await dbusIface.ListNames();
expect(initErrors).toHaveLength(0);
let expectedIfaces = [
`org.mpris.MediaPlayer2.${playerName}`,
`org.mpris.MediaPlayer2.${playerName}.instance${process.pid}`,
];
expect(names).toEqual(expect.arrayContaining(expectedIfaces));
});