46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { expect, expectAsync, tap } from '@pushrocks/tapbundle';
|
|
import * as smartclickhouse from '../ts/index';
|
|
|
|
let testClickhouseDb: smartclickhouse.ClickhouseDb;
|
|
|
|
tap.test('first test', async () => {
|
|
testClickhouseDb = new smartclickhouse.ClickhouseDb({
|
|
url: 'http://localhost',
|
|
port: 8123,
|
|
});
|
|
});
|
|
|
|
tap.test('should start the clickhouse db', async () => {
|
|
await testClickhouseDb.start();
|
|
})
|
|
|
|
tap.test('should write something to the clickhouse db', async () => {
|
|
const result = await testClickhouseDb.clickhouseClient.query(`CREATE DATABASE IF NOT EXISTS lossless`).toPromise();
|
|
console.log(result);
|
|
const result2 = await testClickhouseDb.clickhouseClient.query(`CREATE TABLE IF NOT EXISTS lossless.visits (
|
|
timestamp UInt64,
|
|
ip String,
|
|
os String,
|
|
userAgent String,
|
|
version String
|
|
) ENGINE=MergeTree() ORDER BY timestamp`).toPromise();
|
|
console.log(result2);
|
|
const ws = testClickhouseDb.clickhouseClient.insert('INSERT INTO lossless.visits FORMAT JSONEachRow').stream();
|
|
for(let i = 0; i <= 1000; i++) {
|
|
await ws.writeRow(
|
|
JSON.stringify({
|
|
timestamp: Date.now(),
|
|
ip: '127.0.01',
|
|
os: 'Mac OS X',
|
|
userAgent: 'some',
|
|
version: 'someversion'
|
|
})
|
|
);
|
|
}
|
|
|
|
//wait stream finish
|
|
const result3 = await ws.exec();
|
|
})
|
|
|
|
tap.start();
|