UNPKG

@palekseii/homebridge-tuya-platform

Version:

Fork version of official Tuya Homebridge plugin. Brings a bunch of bug fix and new device support.

82 lines (66 loc) 2.28 kB
/* eslint-disable no-console */ import { describe, expect, test } from '@jest/globals'; import TuyaOpenAPI from '../src/core/TuyaOpenAPI'; import TuyaDevice from '../src/device/TuyaDevice'; import TuyaHomeDeviceManager from '../src/device/TuyaHomeDeviceManager'; import { config, expectDevice, expectSuccessResponse } from './util'; const { options } = config; if (options.projectType === '2') { const api = new TuyaOpenAPI(TuyaOpenAPI.Endpoints.CHINA, options.accessId, options.accessKey); const deviceManager = new TuyaHomeDeviceManager(api); describe('TuyaOpenAPI', () => { test('homeLogin()', async () => { await api.homeLogin(options.countryCode, options.username, options.password, options.appSchema); expect(api.isLogin()).toBeTruthy(); }); test('_refreshAccessTokenIfNeed()', async () => { api.tokenInfo.expire = 0; await api._refreshAccessTokenIfNeed(''); }); }); describe('TuyaHomeDeviceManager', () => { const homeIDList: number[] = []; test('getHomeList()', async () => { const res = await deviceManager.getHomeList(); expectSuccessResponse(res); for (const { home_id } of res.result) { homeIDList.push(home_id); } }); test('updateDevices()', async () => { const devices = await deviceManager.updateDevices(homeIDList); expect(devices).not.toBeNull(); for (const device of devices) { expectDevice(device); } }, 30 * 1000); test('updateDevice()', async () => { let device: TuyaDevice | null = Array.from(deviceManager.devices)[0]; expectDevice(device); device = await deviceManager.updateDevice(device.id); expectDevice(device!); }); }); describe('TuyaOpenMQ', () => { test('start()', async () => { await new Promise((resolve, reject) => { deviceManager.mq._onConnect = () => { console.log('TuyaOpenMQ connected'); resolve(null); }; deviceManager.mq._onError = (err) => { console.log('TuyaOpenMQ error:', err); reject(err); }; deviceManager.mq.start(); }); }); test('stop()', async () => { deviceManager.mq.stop(); }); }); } else { test('', async () => { // }); }