export test finished

This commit is contained in:
Jan Prochazka
2024-12-20 11:33:28 +01:00
parent 07ea575b0f
commit 62c028fc3c
2 changed files with 14 additions and 9 deletions

View File

@@ -25,12 +25,13 @@ function createImportStream() {
}
function createExportStream() {
const writable = new Stream.Writable({ objectMode: true });
const writable = new stream.Writable({ objectMode: true });
writable.result = [];
writable._write = (object, encoding, done) => {
result.push(object);
done();
writable._write = (chunk, encoding, callback) => {
writable.result.push(chunk);
callback();
};
return writable;
}
describe('DB Import/export', () => {
@@ -125,18 +126,19 @@ describe('DB Import/export', () => {
[6, 'Bosna, Hecegovina'],
];
for (const row of data) {
await runCommandOnDriver(conn, driver, 'insert into ~t1(~id, ~country) values (%v, %v)', ...row);
await runCommandOnDriver(conn, driver, dmp =>
dmp.put('insert into ~t1(~id, ~country) values (%v, %v)', ...row)
);
}
const reader = await tableReader({
systemConnection: conn,
driver,
pureName: 't1',
createIfNotExists: true,
});
const writer = createExportStream();
await copyStream(reader, writer);
expect(writer.result).toEqual(data);
expect(writer.result.filter(x => !x.__isStreamHeader).map(row => [row.id, row.country])).toEqual(data);
})
);
});

View File

@@ -8,12 +8,15 @@ const logger = getLogger('tableReader');
* @param {object} options
* @param {connectionType} options.connection - connection object
* @param {object} options.systemConnection - system connection (result of driver.connect). If not provided, new connection will be created
* @param {object} options.driver - driver object. If not provided, it will be loaded from connection
* @param {string} options.pureName - table name
* @param {string} options.schemaName - schema name
* @returns {Promise<readerType>} - reader object
*/
async function tableReader({ connection, systemConnection, pureName, schemaName }) {
const driver = requireEngineDriver(connection);
async function tableReader({ connection, systemConnection, pureName, schemaName, driver }) {
if (!driver) {
driver = requireEngineDriver(connection);
}
const dbhan = systemConnection || (await connectUtility(driver, connection, 'read'));
logger.info(`Connected.`);