From d0c624a3ccf1a7b30b8992c897291830a6fc0666 Mon Sep 17 00:00:00 2001 From: lana-k Date: Thu, 22 Apr 2021 17:01:46 +0200 Subject: [PATCH] Show result of the last query in a script #36 --- src/database.js | 4 ++-- tests/database.spec.js | 25 ++++++++----------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/database.js b/src/database.js index dfb94e4..95e184a 100644 --- a/src/database.js +++ b/src/database.js @@ -105,8 +105,8 @@ class Database { if (results.error) { throw results.error } - // if it was more than one select - take only the first one - return results[0] + // if it was more than one select - take only the last one + return results[results.length - 1] } } diff --git a/tests/database.spec.js b/tests/database.spec.js index 355ceab..35d85e3 100644 --- a/tests/database.spec.js +++ b/tests/database.spec.js @@ -80,7 +80,7 @@ describe('database.js', () => { await expect(db.loadDb(buffer)).to.be.rejectedWith('foo') }) - it('returns a query result', async () => { + it('returns the last query result', async () => { const SQL = await getSQL const tempDb = new SQL.Database() tempDb.run(` @@ -99,18 +99,12 @@ describe('database.js', () => { const buffer = new Blob([data]) await db.loadDb(buffer) - const result = await db.execute('SELECT * from test') + const result = await db.execute('SELECT * from test limit 1; SELECT * from test;') expect(result.columns).to.have.lengthOf(3) - expect(result.columns[0]).to.equal('id') - expect(result.columns[1]).to.equal('name') - expect(result.columns[2]).to.equal('faculty') + expect(result.columns).to.eql(['id', 'name', 'faculty']) expect(result.values).to.have.lengthOf(2) - expect(result.values[0][0]).to.equal(1) - expect(result.values[0][1]).to.equal('Harry Potter') - expect(result.values[0][2]).to.equal('Griffindor') - expect(result.values[1][0]).to.equal(2) - expect(result.values[1][1]).to.equal('Draco Malfoy') - expect(result.values[1][2]).to.equal('Slytherin') + expect(result.values[0]).to.eql([1, 'Harry Potter', 'Griffindor']) + expect(result.values[1]).to.eql([2, 'Draco Malfoy', 'Slytherin']) }) it('returns an error', async () => { @@ -149,12 +143,9 @@ describe('database.js', () => { expect(schema).to.have.lengthOf(1) expect(schema[0].name).to.equal('csv_import') expect(schema[0].columns).to.have.lengthOf(3) - expect(schema[0].columns[0].name).to.equal('id') - expect(schema[0].columns[0].type).to.equal('real') - expect(schema[0].columns[1].name).to.equal('name') - expect(schema[0].columns[1].type).to.equal('text') - expect(schema[0].columns[2].name).to.equal('faculty') - expect(schema[0].columns[2].type).to.equal('text') + expect(schema[0].columns[0]).to.eql({ name: 'id', type: 'real' }) + expect(schema[0].columns[1]).to.eql({ name: 'name', type: 'text' }) + expect(schema[0].columns[2]).to.eql({ name: 'faculty', type: 'text' }) const result = await db.execute('SELECT * from csv_import') expect(result.columns).to.eql(data.columns)