fixed postgres export + export tests #970

This commit is contained in:
SPRINX0\prochazka
2024-12-20 11:17:43 +01:00
parent ee78786974
commit 07ea575b0f
2 changed files with 43 additions and 3 deletions

View File

@@ -2,10 +2,11 @@ const engines = require('../engines');
const stream = require('stream');
const { testWrapper } = require('../tools');
const tableWriter = require('dbgate-api/src/shell/tableWriter');
const tableReader = require('dbgate-api/src/shell/tableReader');
const copyStream = require('dbgate-api/src/shell/copyStream');
const importDatabase = require('dbgate-api/src/shell/importDatabase');
const fakeObjectReader = require('dbgate-api/src/shell/fakeObjectReader');
const { runQueryOnDriver } = require('dbgate-tools');
const { runQueryOnDriver, runCommandOnDriver } = require('dbgate-tools');
function createImportStream() {
const pass = new stream.PassThrough({
@@ -23,7 +24,16 @@ function createImportStream() {
return pass;
}
describe('DB Import', () => {
function createExportStream() {
const writable = new Stream.Writable({ objectMode: true });
writable.result = [];
writable._write = (object, encoding, done) => {
result.push(object);
done();
};
}
describe('DB Import/export', () => {
test.each(engines.map(engine => [engine.label, engine]))(
'Import one table - %s',
testWrapper(async (conn, driver, engine) => {
@@ -99,4 +109,34 @@ describe('DB Import', () => {
// expect(res2.rows[0].cnt.toString()).toEqual('6');
})
);
test.each(engines.map(engine => [engine.label, engine]))(
'Export one table - %s',
testWrapper(async (conn, driver, engine) => {
// const reader = await fakeObjectReader({ delay: 10 });
// const reader = await fakeObjectReader();
await runCommandOnDriver(conn, driver, 'create table ~t1 (~id int, ~country varchar(100))');
const data = [
[1, 'Czechia'],
[2, 'Austria'],
[3, 'Germany'],
[4, 'Romania'],
[5, 'Great Britain'],
[6, 'Bosna, Hecegovina'],
];
for (const row of data) {
await runCommandOnDriver(conn, driver, '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);
})
);
});

View File

@@ -301,7 +301,7 @@ const drivers = driverBases.map(driverBase => ({
const zippedRow = zipDataRow(row, columns);
const transformedRow = transformRow(zippedRow, columnsToTransform);
options.row(transformedRow);
pass.write(transformedRow);
});
query.on('end', () => {