-
Notifications
You must be signed in to change notification settings - Fork 19
/
index.spec.js
69 lines (55 loc) · 1.47 KB
/
index.spec.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
const xpcConnect = require('./index');
test('test bluetooth connectivity', done => {
let bluedService = new xpcConnect('com.apple.blued');
bluedService.on('error', function(message) {
console.log('error: ' + JSON.stringify(message, undefined, 2));
});
bluedService.on('event', function(event) {
console.log('event: ' + JSON.stringify(event, undefined, 2));
});
bluedService.setup();
bluedService.sendMessage({
kCBMsgId: 1,
kCBMsgArgs: {
kCBMsgArgAlert: 1,
kCBMsgArgName: 'node'
}
});
setTimeout(function() {
bluedService.shutdown();
done();
}, 500);
});
test('multiple setups should fail', () => {
let svc = new xpcConnect('com.apple.blued');
svc.setup();
expect(svc.setup).toThrow();
svc.shutdown();
});
test('send before setup should fail', () => {
let svc = new xpcConnect('com.apple.blued');
expect(svc.sendMessage).toThrow();
});
test('can shutdown immediately after setup', () => {
let svc = new xpcConnect('com.apple.blued');
svc.setup();
svc.shutdown();
});
test('can shutdown immediately after receiving message', done => {
let svc = new xpcConnect('com.apple.blued');
let fn = (response) => {
console.log('response: ', JSON.stringify(response, undefined, 2));
svc.shutdown();
done();
};
svc.on('error', fn);
svc.on('event', fn);
svc.setup();
svc.sendMessage({
kCBMsgId: 1,
kCBMsgArgs: {
kCBMsgArgAlert: 1,
kCBMsgArgName: 'node'
}
});
});