@tdengine/websocket
Version:
The websocket Node.js connector for TDengine. TDengine versions 3.3.2.0 and above are recommended to use this connector.
187 lines (186 loc) • 7.29 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const wsConnectorPool_1 = require("../../src/client/wsConnectorPool");
const config_1 = require("../../src/common/config");
const wsSql_1 = require("../../src/sql/wsSql");
const utils_1 = require("../utils");
const log_1 = require("../../src/common/log");
let dns = 'ws://localhost:6041';
let password1 = 'Ab1!@#$%,.:?<>;~';
let password2 = 'Bc%^&*()-_+=[]{}';
(0, log_1.setLevel)("debug");
beforeAll(async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
await wsSql.exec(`CREATE USER user1 PASS '${password1}'`);
await wsSql.exec(`CREATE USER user2 PASS '${password2}'`);
await wsSql.exec('create database if not exists power KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;');
await (0, utils_1.Sleep)(100);
await wsSql.exec('use power');
await wsSql.exec('CREATE STABLE if not exists meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);');
await wsSql.close();
});
describe('TDWebSocket.WsSql()', () => {
jest.setTimeout(20 * 1000);
test('normal connect', async () => {
let wsSql = null;
let conf = new config_1.WSConfig('');
conf.setUrl(dns);
conf.setUser('root');
conf.setPwd('taosdata');
conf.setDb('power');
conf.setTimeOut(6000);
wsSql = await wsSql_1.WsSql.open(conf);
expect(wsSql.state()).toBeGreaterThan(0);
await wsSql.close();
});
test('special characters connect1', async () => {
let wsSql = null;
let conf = new config_1.WSConfig(dns);
conf.setUser('user1');
conf.setPwd(password1);
wsSql = await wsSql_1.WsSql.open(conf);
expect(wsSql.state()).toBeGreaterThan(0);
let version = await wsSql.version();
expect(version).not.toBeNull();
expect(version).not.toBeUndefined();
await wsSql.close();
});
test('special characters connect2', async () => {
let wsSql = null;
let conf = new config_1.WSConfig(dns);
conf.setUser('user2');
conf.setPwd(password2);
wsSql = await wsSql_1.WsSql.open(conf);
expect(wsSql.state()).toBeGreaterThan(0);
let version = await wsSql.version();
expect(version).not.toBeNull();
expect(version).not.toBeUndefined();
await wsSql.close();
});
test('connect db with error', async () => {
expect.assertions(1);
let wsSql = null;
try {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
conf.setDb('jest');
wsSql = await wsSql_1.WsSql.open(conf);
}
catch (e) {
let err = e;
expect(err.message).toMatch('Database not exist');
}
finally {
if (wsSql) {
await wsSql.close();
}
}
});
test('get taosc version', async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
let version = await wsSql.version();
await wsSql.close();
console.log(version);
expect(version).toBeTruthy();
});
test('show databases', async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
let taosResult = await wsSql.exec('show databases');
await wsSql.close();
console.log(taosResult);
expect(taosResult).toBeTruthy();
});
test('create databases', async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
let taosResult = await wsSql.exec('create database if not exists power KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;');
await wsSql.close();
console.log(taosResult);
expect(taosResult).toBeTruthy();
});
test('create stable', async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
let taosResult = await wsSql.exec('use power');
console.log(taosResult);
expect(taosResult).toBeTruthy();
taosResult = await wsSql.exec('CREATE STABLE if not exists meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);');
await wsSql.close();
console.log(taosResult);
expect(taosResult).toBeTruthy();
});
test('insert recoder', async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
let taosResult = await wsSql.exec('use power');
console.log(taosResult);
expect(taosResult).toBeTruthy();
taosResult = await wsSql.exec('describe meters');
console.log(taosResult);
taosResult = await wsSql.exec('INSERT INTO d1001 USING meters (location, groupid) TAGS ("California", 3) VALUES (NOW, 10.2, 219, 0.32)');
console.log(taosResult);
expect(taosResult.getAffectRows()).toBeGreaterThanOrEqual(1);
await wsSql.close();
});
test('query sql', async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
let taosResult = await wsSql.exec('use power');
console.log(taosResult);
expect(taosResult).toBeTruthy();
for (let i = 0; i < 10; i++) {
let wsRows = await wsSql.query('select * from meters limit 3');
expect(wsRows).toBeTruthy();
let meta = wsRows.getMeta();
expect(meta).toBeTruthy();
console.log("wsRow:meta:=>", meta);
while (await wsRows.next()) {
let result = await wsRows.getData();
expect(result).toBeTruthy();
}
await wsRows.close();
}
await wsSql.close();
});
test('query sql no getdata', async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
let taosResult = await wsSql.exec('use power');
console.log(taosResult);
expect(taosResult).toBeTruthy();
let wsRows = await wsSql.query('select * from meters');
await wsRows.close();
await wsSql.close();
});
});
afterAll(async () => {
let conf = new config_1.WSConfig(dns);
conf.setUser('root');
conf.setPwd('taosdata');
let wsSql = await wsSql_1.WsSql.open(conf);
await wsSql.exec('drop database power');
await wsSql.exec('DROP USER user1;');
await wsSql.exec('DROP USER user2;');
await wsSql.close();
wsConnectorPool_1.WebSocketConnectionPool.instance().destroyed();
});