Skip to content

Commit a5afdca

Browse files
authored
Tuya: Add isUsed function (#1834)
1 parent 0e3c876 commit a5afdca

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

server/services/tuya/index.js

+13
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const logger = require('../../utils/logger');
22
const tuyaController = require('./api/tuya.controller');
33

44
const TuyaHandler = require('./lib');
5+
const { STATUS } = require('./lib/utils/tuya.constants');
56

67
module.exports = function TuyaService(gladys, serviceId) {
78
const tuyaHandler = new TuyaHandler(gladys, serviceId);
@@ -29,9 +30,21 @@ module.exports = function TuyaService(gladys, serviceId) {
2930
await tuyaHandler.disconnect();
3031
}
3132

33+
/**
34+
* @public
35+
* @description Test if Tuya is running.
36+
* @returns {Promise<boolean>} Returns true if Tuya is used.
37+
* @example
38+
* const used = await gladys.services.tuya.isUsed();
39+
*/
40+
async function isUsed() {
41+
return tuyaHandler.status === STATUS.CONNECTED && tuyaHandler.connector !== null;
42+
}
43+
3244
return Object.freeze({
3345
start,
3446
stop,
47+
isUsed,
3548
device: tuyaHandler,
3649
controllers: tuyaController(tuyaHandler),
3750
});

server/test/services/tuya/index.test.js

+14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
const sinon = require('sinon');
2+
const { expect } = require('chai');
23
const proxyquire = require('proxyquire').noCallThru();
4+
const { STATUS } = require('../../../services/tuya/lib/utils/tuya.constants');
35

46
const { assert, fake } = sinon;
57

@@ -36,4 +38,16 @@ describe('TuyaService', () => {
3638
assert.notCalled(tuyaService.device.init);
3739
assert.calledOnce(tuyaService.device.disconnect);
3840
});
41+
42+
it('isUsed: should return false, service not used', async () => {
43+
const used = await tuyaService.isUsed();
44+
expect(used).to.equal(false);
45+
});
46+
47+
it('isUsed: should return true, service is used', async () => {
48+
tuyaService.device.status = STATUS.CONNECTED;
49+
tuyaService.device.connector = {};
50+
const used = await tuyaService.isUsed();
51+
expect(used).to.equal(true);
52+
});
3953
});

0 commit comments

Comments
 (0)