| |
| > iotdb-client-nodejs@0.1.0 test:e2e |
| > jest --testPathPatterns=tests/e2e |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| FAIL tests/e2e/SessionDataSet.test.ts (5.526 s) |
| SessionDataSet E2E Tests |
| ✕ Should iterate through query results using SessionDataSet (144 ms) |
| ✕ Should handle large result sets with lazy loading (1400 ms) |
| ✕ Should support column access by name and index (1674 ms) |
| ✕ Should handle null values correctly (1235 ms) |
| ✕ Should support toArray() for backward compatibility (859 ms) |
| ✓ Should properly cleanup resources on close (4 ms) |
| |
| ● SessionDataSet E2E Tests › Should iterate through query results using SessionDataSet |
| |
| There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 204 | |
| 205 | if (response.status.code !== 200) { |
| > 206 | reject(new Error(response.status.message || 'Statement execution failed')); |
| | ^ |
| 207 | return; |
| 208 | } |
| 209 | |
| |
| at src/client/Session.ts:206:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_executeUpdateStatementV2 (src/thrift/generated/IClientRPCService.js:6818:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| ● SessionDataSet E2E Tests › Should handle large result sets with lazy loading |
| |
| Column not found: value |
| |
| 79 | const index = this.columnNameIndexMap.get(columnName); |
| 80 | if (index === undefined) { |
| > 81 | throw new Error(`Column not found: ${columnName}`); |
| | ^ |
| 82 | } |
| 83 | return this.fields[index]; |
| 84 | } |
| |
| at RowRecord.getValue (src/client/RowRecord.ts:81:13) |
| at RowRecord.getInt (src/client/RowRecord.ts:127:24) |
| at Object.<anonymous> (tests/e2e/SessionDataSet.test.ts:153:18) |
| |
| ● SessionDataSet E2E Tests › Should support column access by name and index |
| |
| Column not found: temperature |
| |
| 79 | const index = this.columnNameIndexMap.get(columnName); |
| 80 | if (index === undefined) { |
| > 81 | throw new Error(`Column not found: ${columnName}`); |
| | ^ |
| 82 | } |
| 83 | return this.fields[index]; |
| 84 | } |
| |
| at RowRecord.getValue (src/client/RowRecord.ts:81:13) |
| at RowRecord.getFloat (src/client/RowRecord.ts:155:24) |
| at Object.<anonymous> (tests/e2e/SessionDataSet.test.ts:199:16) |
| |
| ● SessionDataSet E2E Tests › Should handle null values correctly |
| |
| Column not found: s1 |
| |
| 79 | const index = this.columnNameIndexMap.get(columnName); |
| 80 | if (index === undefined) { |
| > 81 | throw new Error(`Column not found: ${columnName}`); |
| | ^ |
| 82 | } |
| 83 | return this.fields[index]; |
| 84 | } |
| |
| at RowRecord.getValue (src/client/RowRecord.ts:81:13) |
| at RowRecord.isNull (src/client/RowRecord.ts:97:17) |
| at Object.<anonymous> (tests/e2e/SessionDataSet.test.ts:247:16) |
| |
| ● SessionDataSet E2E Tests › Should support toArray() for backward compatibility |
| |
| There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 204 | |
| 205 | if (response.status.code !== 200) { |
| > 206 | reject(new Error(response.status.message || 'Statement execution failed')); |
| | ^ |
| 207 | return; |
| 208 | } |
| 209 | |
| |
| at src/client/Session.ts:206:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_executeUpdateStatementV2 (src/thrift/generated/IClientRPCService.js:6818:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| FAIL tests/e2e/Session.test.ts |
| Session E2E Tests |
| ✓ Should open and close session |
| ✓ Should create database and timeseries (tree model) (8 ms) |
| ✓ Should execute query statement (SHOW DATABASES) (2 ms) |
| ✕ Should insert and query data (tree model) (15 ms) |
| |
| ● Session E2E Tests › Should insert and query data (tree model) |
| |
| There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 246 | |
| 247 | if (response.code !== 200) { |
| > 248 | reject(new Error(response.message || 'Insert tablet failed')); |
| | ^ |
| 249 | return; |
| 250 | } |
| 251 | |
| |
| at src/client/Session.ts:248:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_insertTablet (src/thrift/generated/IClientRPCService.js:8529:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| Connected to IoTDB for large query tests |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:42:15) |
| |
| console.log |
| COUNT result: RowRecord { |
| timestamp: 8606711808n, |
| fields: [], |
| columnNames: [ 'COUNT(root.test.device1.sensor1)' ], |
| columnTypes: [ 'INT64' ], |
| columnNameIndexMap: Map(1) { 'COUNT(root.test.device1.sensor1)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:224:13) |
| |
| console.log |
| AVG result: RowRecord { |
| timestamp: 8.49627221e-314, |
| fields: [], |
| columnNames: [ 'AVG(root.test.device1.sensor1)' ], |
| columnTypes: [ 'DOUBLE' ], |
| columnNameIndexMap: Map(1) { 'AVG(root.test.device1.sensor1)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:241:13) |
| |
| console.log |
| Query 1 returned 0 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| console.log |
| Query 2 returned 0 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| console.log |
| Query 3 returned 0 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| console.log |
| Query 4 returned 6 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| FAIL tests/e2e/LargeQuery.test.ts |
| Large Query E2E Tests |
| ✓ Should prepare test database and timeseries (158 ms) |
| ✕ Should insert large dataset (5,000 records) (17 ms) |
| ✕ Should query large dataset requiring multiple fetchResult calls (5 ms) |
| ✕ Should query with filters on large dataset (2 ms) |
| ✓ Should query with aggregation on large dataset (6 ms) |
| ✕ Should query with LIMIT on large dataset (3 ms) |
| ✓ Should handle multiple concurrent large queries (8 ms) |
| |
| ● Large Query E2E Tests › Should insert large dataset (5,000 records) |
| |
| There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 246 | |
| 247 | if (response.code !== 200) { |
| > 248 | reject(new Error(response.message || 'Insert tablet failed')); |
| | ^ |
| 249 | return; |
| 250 | } |
| 251 | |
| |
| at src/client/Session.ts:248:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_insertTablet (src/thrift/generated/IClientRPCService.js:8529:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| ● Large Query E2E Tests › Should query large dataset requiring multiple fetchResult calls |
| |
| expect(received).toBeGreaterThanOrEqual(expected) |
| |
| Expected: >= 5000 |
| Received: 0 |
| |
| 166 | await dataSet.close(); |
| 167 | |
| > 168 | expect(rows.length).toBeGreaterThanOrEqual(5000); |
| | ^ |
| 169 | |
| 170 | console.log(`Retrieved ${rows.length} rows with fetchSize=100`); |
| 171 | console.log(`Columns: ${columnNames.join(", ")}`); |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:168:25) |
| |
| ● Large Query E2E Tests › Should query with filters on large dataset |
| |
| expect(received).toBeGreaterThan(expected) |
| |
| Expected: > 0 |
| Received: 0 |
| |
| 193 | await dataSet.close(); |
| 194 | |
| > 195 | expect(rows.length).toBeGreaterThan(0); |
| | ^ |
| 196 | |
| 197 | console.log(`Filtered query returned ${rows.length} rows`); |
| 198 | }, 30000); |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:195:25) |
| |
| ● Large Query E2E Tests › Should query with LIMIT on large dataset |
| |
| expect(received).toBeGreaterThan(expected) |
| |
| Expected: > 0 |
| Received: 0 |
| |
| 262 | await dataSet.close(); |
| 263 | |
| > 264 | expect(rows.length).toBeGreaterThan(0); |
| | ^ |
| 265 | |
| 266 | console.log(`LIMIT query returned ${rows.length} rows`); |
| 267 | }, 30000); |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:264:25) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| Connected to IoTDB for all data types test |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:41:15) |
| |
| console.log |
| Created timeseries for all supported data types |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:104:13) |
| |
| console.log |
| COUNT(int32_sensor) result: RowRecord { |
| timestamp: 8606711808n, |
| fields: [], |
| columnNames: [ 'COUNT(root.test.device1.int32_sensor)' ], |
| columnTypes: [ 'INT64' ], |
| columnNameIndexMap: Map(1) { 'COUNT(root.test.device1.int32_sensor)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:458:13) |
| |
| console.log |
| COUNT(text_sensor) result: RowRecord { |
| timestamp: 8606711808n, |
| fields: [], |
| columnNames: [ 'COUNT(root.test.device1.text_sensor)' ], |
| columnTypes: [ 'INT64' ], |
| columnNameIndexMap: Map(1) { 'COUNT(root.test.device1.text_sensor)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:469:13) |
| |
| FAIL tests/e2e/AllDataTypes.test.ts |
| All Data Types E2E Tests |
| ✓ Should create database and timeseries with all data types (99 ms) |
| ✕ Should insert and retrieve data for all data types (28 ms) |
| ✕ Should handle null values for all data types (14 ms) |
| ✕ Should handle multiple rows with mixed data types (15 ms) |
| ✕ Should handle queries with aggregation on different data types (7 ms) |
| |
| ● All Data Types E2E Tests › Should insert and retrieve data for all data types |
| |
| There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 246 | |
| 247 | if (response.code !== 200) { |
| > 248 | reject(new Error(response.message || 'Insert tablet failed')); |
| | ^ |
| 249 | return; |
| 250 | } |
| 251 | |
| |
| at src/client/Session.ts:248:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_insertTablet (src/thrift/generated/IClientRPCService.js:8529:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| ● All Data Types E2E Tests › Should handle null values for all data types |
| |
| There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 246 | |
| 247 | if (response.code !== 200) { |
| > 248 | reject(new Error(response.message || 'Insert tablet failed')); |
| | ^ |
| 249 | return; |
| 250 | } |
| 251 | |
| |
| at src/client/Session.ts:248:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_insertTablet (src/thrift/generated/IClientRPCService.js:8529:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| ● All Data Types E2E Tests › Should handle multiple rows with mixed data types |
| |
| There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 246 | |
| 247 | if (response.code !== 200) { |
| > 248 | reject(new Error(response.message || 'Insert tablet failed')); |
| | ^ |
| 249 | return; |
| 250 | } |
| 251 | |
| |
| at src/client/Session.ts:248:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_insertTablet (src/thrift/generated/IClientRPCService.js:8529:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| ● All Data Types E2E Tests › Should handle queries with aggregation on different data types |
| |
| Error occurred during inferring UDF data type: |
| org.apache.iotdb.udf.api.exception.UDFException: Failed to reflect UDF instance, because UDF MAX has not been registered. |
| |
| 131 | |
| 132 | if (response.status.code !== 200) { |
| > 133 | reject(new Error(response.status.message || 'Query failed')); |
| | ^ |
| 134 | return; |
| 135 | } |
| 136 | |
| |
| at src/client/Session.ts:133:18 |
| at client._reqs.<computed> (node_modules/thrift/lib/nodejs/lib/thrift/connection.js:148:15) |
| at exports.Client.IClientRPCServiceClient.recv_executeQueryStatementV2 (src/thrift/generated/IClientRPCService.js:6759:12) |
| at node_modules/thrift/lib/nodejs/lib/thrift/connection.js:154:43 |
| at Socket.<anonymous> (node_modules/thrift/lib/nodejs/lib/thrift/framed_transport.js:59:7) |
| |
| console.log |
| [INFO] SessionPool created with 1 endpoints, max pool size: 5 |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] SessionPool initialized with 2 sessions |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 3) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 2) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 4) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 7) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 8) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 9) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 5) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 6) |
| |
| console.warn |
| Insert tablet via pool failed: There are no available DataRegionGroup RegionGroups currently, please use "show cluster" or "show regions" to check the cluster status |
| |
| 152 | // Should not throw |
| 153 | } catch (error: any) { |
| > 154 | console.warn("Insert tablet via pool failed:", error.message); |
| | ^ |
| 155 | } |
| 156 | }); |
| 157 | |
| |
| at Object.<anonymous> (tests/e2e/SessionPool.test.ts:154:15) |
| |
| console.log |
| Skipping multi-node test in 1C1D configuration |
| |
| at Object.<anonymous> (tests/e2e/SessionPool.test.ts:161:15) |
| |
| console.log |
| [INFO] SessionPool closed |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| PASS tests/e2e/SessionPool.test.ts |
| SessionPool E2E Tests |
| ✓ Should initialize pool with minimum connections |
| ✓ Should execute query using pool (2 ms) |
| ✓ Should execute non-query using pool (2 ms) |
| ✓ Should handle multiple concurrent queries (17 ms) |
| ✓ Should insert tablet using pool (16 ms) |
| ✓ Should support multi-node configuration |
| ✓ Should report pool statistics |
| ✓ Should support explicit session management with getSession/releaseSession (2 ms) |
| ✓ Should handle multiple explicit sessions concurrently (2 ms) |
| |
| console.log |
| [INFO] TableSessionPool created with 1 endpoints, max pool size: 5 |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.warn |
| Could not connect to IoTDB. E2E tests will be skipped. |
| |
| 51 | } |
| 52 | } catch (error) { |
| > 53 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| | ^ |
| 54 | console.warn( |
| 55 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 56 | ); |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:53:15) |
| |
| console.warn |
| Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance. |
| |
| 52 | } catch (error) { |
| 53 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| > 54 | console.warn( |
| | ^ |
| 55 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 56 | ); |
| 57 | } |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:54:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:74:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:119:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:238:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:264:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:299:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:322:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:358:15) |
| |
| PASS tests/e2e/TableModelDataTypes.test.ts |
| Table Model All Data Types E2E Tests |
| ✓ Should create database and table with all data types |
| ✓ Should insert and retrieve all data types in table model (1 ms) |
| ✓ Should support table model queries |
| ✓ Should handle queries with aggregations on table model (1 ms) |
| ✓ Should handle time-based queries in table model |
| ✓ Should demonstrate difference between tree and table models (1 ms) |
| ✓ Should handle batch inserts with all data types |
| |
| console.log |
| [INFO] TableSessionPool created with 1 endpoints, max pool size: 5 |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.warn |
| Could not connect to IoTDB. E2E tests will be skipped. |
| |
| 49 | } |
| 50 | } catch (error) { |
| > 51 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| | ^ |
| 52 | console.warn( |
| 53 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 54 | ); |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:51:15) |
| |
| console.warn |
| Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance. |
| |
| 50 | } catch (error) { |
| 51 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| > 52 | console.warn( |
| | ^ |
| 53 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 54 | ); |
| 55 | } |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:52:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:72:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:121:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:187:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:207:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:260:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:274:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:308:15) |
| |
| PASS tests/e2e/TableSessionPool.test.ts |
| TableSessionPool E2E Tests |
| ✓ Should create database and tables (1 ms) |
| ✓ Should insert and query table data (based on C# example) (1 ms) |
| ✓ Should query tables from database context |
| ✓ Should handle insert with null values (based on C# example) (1 ms) |
| ✓ Should report pool statistics |
| ✓ Should support explicit session management with getSession/releaseSession (1 ms) |
| ✓ Should support nodeUrls in string format |
| |
| console.log |
| Skipping Multi-Node tests - not in multi-node environment (MULTI_NODE env var not set) |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:40:15) |
| |
| console.log |
| Skipping test - not in multi-node environment or no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:110:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:126:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:148:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:205:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:266:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:310:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:342:15) |
| |
| console.log |
| Skipping test - not in multi-node environment |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:386:15) |
| |
| console.log |
| Skipping test - not in multi-node environment |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:420:15) |
| |
| PASS tests/e2e/MultiNode.test.ts |
| Multi-Node E2E Tests |
| ✓ Should initialize pools with connections to all three DataNodes (1 ms) |
| ✓ Should create database and timeseries on first node (1 ms) |
| ✓ Should handle concurrent load distributed across all three DataNodes |
| ✓ Should verify data replication across all DataNodes (1 ms) |
| ✓ Should handle large batch inserts across multiple DataNodes (3 ms) |
| ✓ Should maintain all pool healths under stress (1 ms) |
| ✓ Should handle queries across all DataNodes simultaneously (1 ms) |
| ✓ Should support nodeUrls configuration for multi-node setup |
| ✓ Should support nodeUrls configuration in object format (1 ms) |
| |
| Test Suites: 4 failed, 4 passed, 8 total |
| Tests: 14 failed, 40 passed, 54 total |
| Snapshots: 0 total |
| Time: 9.447 s, estimated 11 s |
| Ran all test suites matching tests/e2e. |
| |
| > iotdb-client-nodejs@0.1.0 test:e2e |
| > jest --testPathPatterns=tests/e2e |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| Connected to IoTDB for large query tests |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:42:15) |
| |
| console.log |
| Inserted 5000 records for large query test |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:142:13) |
| |
| console.log |
| Retrieved 12510 rows with fetchSize=100 |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:170:13) |
| |
| console.log |
| Columns: root.test.device1.sensor2, root.test.device1.sensor3, root.test.device1.sensor1 |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:171:13) |
| |
| console.log |
| Filtered query returned 2010 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:197:13) |
| |
| console.log |
| COUNT result: RowRecord { |
| timestamp: 8606711808n, |
| fields: [], |
| columnNames: [ 'COUNT(root.test.device1.sensor1)' ], |
| columnTypes: [ 'INT64' ], |
| columnNameIndexMap: Map(1) { 'COUNT(root.test.device1.sensor1)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:224:13) |
| |
| console.log |
| AVG result: RowRecord { |
| timestamp: 8.49627221e-314, |
| fields: [], |
| columnNames: [ 'AVG(root.test.device1.sensor1)' ], |
| columnTypes: [ 'DOUBLE' ], |
| columnNameIndexMap: Map(1) { 'AVG(root.test.device1.sensor1)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:241:13) |
| |
| console.log |
| LIMIT query returned 252 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:266:13) |
| |
| console.log |
| Query 1 returned 7505 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| console.log |
| Query 2 returned 7505 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| console.log |
| Query 3 returned 7505 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| console.log |
| Query 4 returned 6 rows |
| |
| at Object.<anonymous> (tests/e2e/LargeQuery.test.ts:299:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| Connected to IoTDB for all data types test |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:41:15) |
| |
| console.log |
| Created timeseries for all supported data types |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:104:13) |
| |
| console.log |
| Inserted data with all data types |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:221:13) |
| |
| console.log |
| Retrieved 30 rows |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:239:13) |
| |
| console.log |
| Sample row: RowRecord { |
| timestamp: 361132399582511104n, |
| fields: [], |
| columnNames: [ |
| 'root.test.device1.timestamp_sensor', |
| 'root.test.device1.boolean_sensor', |
| 'root.test.device1.double_sensor', |
| 'root.test.device1.date_sensor', |
| 'root.test.device1.int64_sensor', |
| 'root.test.device1.string_sensor', |
| 'root.test.device1.blob_sensor', |
| 'root.test.device1.text_sensor', |
| 'root.test.device1.int32_sensor', |
| 'root.test.device1.float_sensor' |
| ], |
| columnTypes: [ |
| 'TIMESTAMP', 'BOOLEAN', |
| 'DOUBLE', 'DATE', |
| 'INT64', 'STRING', |
| 'BLOB', 'TEXT', |
| 'INT32', 'FLOAT' |
| ], |
| columnNameIndexMap: Map(10) { |
| 'root.test.device1.timestamp_sensor' => 0, |
| 'root.test.device1.boolean_sensor' => 1, |
| 'root.test.device1.double_sensor' => 2, |
| 'root.test.device1.date_sensor' => 3, |
| 'root.test.device1.int64_sensor' => 4, |
| 'root.test.device1.string_sensor' => 5, |
| 'root.test.device1.blob_sensor' => 6, |
| 'root.test.device1.text_sensor' => 7, |
| 'root.test.device1.int32_sensor' => 8, |
| 'root.test.device1.float_sensor' => 9 |
| } |
| } |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:240:13) |
| |
| console.log |
| Inserted 10 rows with mixed data types |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:416:13) |
| |
| console.log |
| COUNT(int32_sensor) result: RowRecord { |
| timestamp: 8606711808n, |
| fields: [], |
| columnNames: [ 'COUNT(root.test.device1.int32_sensor)' ], |
| columnTypes: [ 'INT64' ], |
| columnNameIndexMap: Map(1) { 'COUNT(root.test.device1.int32_sensor)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:458:13) |
| |
| console.log |
| COUNT(text_sensor) result: RowRecord { |
| timestamp: 8606711808n, |
| fields: [], |
| columnNames: [ 'COUNT(root.test.device1.text_sensor)' ], |
| columnTypes: [ 'INT64' ], |
| columnNameIndexMap: Map(1) { 'COUNT(root.test.device1.text_sensor)' => 0 } |
| } |
| |
| at Object.<anonymous> (tests/e2e/AllDataTypes.test.ts:469:13) |
| |
| console.log |
| [INFO] SessionPool created with 1 endpoints, max pool size: 5 |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] SessionPool initialized with 2 sessions |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 3) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 2) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 5) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 4) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 7) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 8) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 6) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| at async Promise.all (index 9) |
| |
| console.log |
| Skipping multi-node test in 1C1D configuration |
| |
| at Object.<anonymous> (tests/e2e/SessionPool.test.ts:161:15) |
| |
| console.log |
| [INFO] SessionPool closed |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| Skipping Multi-Node tests - not in multi-node environment (MULTI_NODE env var not set) |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:40:15) |
| |
| console.log |
| Skipping test - not in multi-node environment or no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:110:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:126:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:148:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:205:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:266:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:310:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:342:15) |
| |
| console.log |
| Skipping test - not in multi-node environment |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:386:15) |
| |
| console.log |
| Skipping test - not in multi-node environment |
| |
| at Object.<anonymous> (tests/e2e/MultiNode.test.ts:420:15) |
| |
| console.log |
| [INFO] TableSessionPool created with 1 endpoints, max pool size: 5 |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.warn |
| Could not connect to IoTDB. E2E tests will be skipped. |
| |
| 49 | } |
| 50 | } catch (error) { |
| > 51 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| | ^ |
| 52 | console.warn( |
| 53 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 54 | ); |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:51:15) |
| |
| console.warn |
| Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance. |
| |
| 50 | } catch (error) { |
| 51 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| > 52 | console.warn( |
| | ^ |
| 53 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 54 | ); |
| 55 | } |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:52:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:72:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:121:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:187:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:207:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:260:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:274:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableSessionPool.test.ts:308:15) |
| |
| console.log |
| [INFO] TableSessionPool created with 1 endpoints, max pool size: 5 |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.log |
| [INFO] Connected successfully |
| |
| at Logger.info (src/utils/Logger.ts:50:15) |
| |
| console.warn |
| Could not connect to IoTDB. E2E tests will be skipped. |
| |
| 51 | } |
| 52 | } catch (error) { |
| > 53 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| | ^ |
| 54 | console.warn( |
| 55 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 56 | ); |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:53:15) |
| |
| console.warn |
| Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance. |
| |
| 52 | } catch (error) { |
| 53 | console.warn("Could not connect to IoTDB. E2E tests will be skipped."); |
| > 54 | console.warn( |
| | ^ |
| 55 | "Set IOTDB_HOST, IOTDB_PORT to run E2E tests against a real instance.", |
| 56 | ); |
| 57 | } |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:54:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:74:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:119:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:238:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:264:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:299:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:322:15) |
| |
| console.log |
| Skipping test - no IoTDB connection |
| |
| at Object.<anonymous> (tests/e2e/TableModelDataTypes.test.ts:358:15) |
| |