From d985501be011b5f15eeb6102917e36044015823b Mon Sep 17 00:00:00 2001 From: Gabriel Andreazza Date: Sat, 11 May 2024 10:09:47 -0300 Subject: [PATCH] test(oracledb): change `.truncate()` to drop and create tables for reset auto sequences `.truncate()` in oracle clear data rows but not clear sequences that's why this tests dosen't work with oracle. let's drop table and recreate for restart sequences --- .../integration2/query/insert/inserts.spec.js | 14 ++++---- test/integration2/query/select/joins.spec.js | 13 ++++--- .../integration2/query/select/selects.spec.js | 12 +++++-- test/integration2/query/select/where.spec.js | 35 +++++++++++++++++-- .../integration2/query/update/updates.spec.js | 13 +++++-- 5 files changed, 66 insertions(+), 21 deletions(-) diff --git a/test/integration2/query/insert/inserts.spec.js b/test/integration2/query/insert/inserts.spec.js index 245d805132..ce5681d546 100644 --- a/test/integration2/query/insert/inserts.spec.js +++ b/test/integration2/query/insert/inserts.spec.js @@ -41,17 +41,17 @@ describe('Inserts', function () { describe(db, () => { let knex; - const createTables = async (knex) => { + const dropAndRecreateTables = async (knex) => { await dropTables(knex); await createUsers(knex); await createAccounts(knex, true); await createTestTableTwo(knex); await createDataType(knex); - } + }; before(async () => { knex = logger(getKnexForDb(db)); - await createTables(knex) + await dropAndRecreateTables(knex); }); after(async () => { @@ -60,10 +60,8 @@ describe('Inserts', function () { }); beforeEach(async () => { - // .truncate() on oracle clear data rows but not sequences that's why - // this tests dosen't work with oracle. let's drop table and recreate - if(isOracle(knex)){ - await createTables(knex) + if (isOracle(knex)) { + await dropAndRecreateTables(knex); } await knex('accounts').truncate(); await knex('test_table_two').truncate(); @@ -897,7 +895,7 @@ describe('Inserts', function () { }); it('#5738 should handle insert with comments', async function () { - if(isOracle(knex)){ + if (isOracle(knex)) { return this.skip('analyze this function to oracledb'); } await knex('test_default_table') diff --git a/test/integration2/query/select/joins.spec.js b/test/integration2/query/select/joins.spec.js index 088463f33b..5a60eeef1d 100644 --- a/test/integration2/query/select/joins.spec.js +++ b/test/integration2/query/select/joins.spec.js @@ -29,18 +29,23 @@ describe('Joins', function () { describe(db, () => { let knex; - before(async () => { - knex = logger(getKnexForDb(db)); + const dropAndRecreateTables = async (knex) => { await dropTables(knex); await createAccounts(knex); await createTestTableTwo(knex); - await insertTestTableTwoData(knex); + }; + + before(async () => { + knex = logger(getKnexForDb(db)); + await dropAndRecreateTables(knex); }); beforeEach(async () => { + if (isOracle(knex)) { + await dropAndRecreateTables(knex); + } await knex('accounts').truncate(); - await insertAccounts(knex); }); diff --git a/test/integration2/query/select/selects.spec.js b/test/integration2/query/select/selects.spec.js index 535d08a4e4..e5d29ef657 100644 --- a/test/integration2/query/select/selects.spec.js +++ b/test/integration2/query/select/selects.spec.js @@ -45,9 +45,7 @@ describe('Selects', function () { describe(db, () => { let knex; - before(async () => { - knex = logger(getKnexForDb(db)); - + const dropAndRecreateTables = async (knex) => { await dropTables(knex); await createUsers(knex); await createAccounts(knex); @@ -55,9 +53,17 @@ describe('Selects', function () { await createTestTableTwo(knex); await createDefaultTable(knex); await createDefaultTable(knex, true); + }; + + before(async () => { + knex = logger(getKnexForDb(db)); + await dropAndRecreateTables(knex); }); beforeEach(async () => { + if (isOracle(knex)) { + await dropAndRecreateTables(knex); + } await knex('accounts').truncate(); await insertAccounts(knex); }); diff --git a/test/integration2/query/select/where.spec.js b/test/integration2/query/select/where.spec.js index da18a2647b..864d80679a 100644 --- a/test/integration2/query/select/where.spec.js +++ b/test/integration2/query/select/where.spec.js @@ -39,9 +39,7 @@ describe('Where', function () { describe(db, () => { let knex; - before(async () => { - knex = logger(getKnexForDb(db)); - + const dropAndRecreateTables = async (knex) => { await dropTables(knex); await createUsers(knex); await createAccounts(knex); @@ -49,9 +47,17 @@ describe('Where', function () { await createTestTableTwo(knex); await createDefaultTable(knex); await createDefaultTable(knex, true); + }; + + before(async () => { + knex = logger(getKnexForDb(db)); + await dropAndRecreateTables(knex); }); beforeEach(async () => { + if (isOracle(knex)) { + await dropAndRecreateTables(knex); + } await knex('accounts').truncate(); await insertAccounts(knex); }); @@ -434,6 +440,29 @@ describe('Where', function () { it('handles multi-column "where in" cases with where', async function () { if (!isSQLite(knex) && !isMssql(knex)) { + // Reinsert with oracle because dorp tables in beforeEach + if (isOracle(knex)) { + await knex('composite_key_test').insert([ + { + column_a: 1, + column_b: 1, + details: 'One, One, One', + status: 1, + }, + { + column_a: 1, + column_b: 2, + details: 'One, Two, Zero', + status: 0, + }, + { + column_a: 2, + column_b: 2, + details: 'Two, Two, Zero', + status: 0, + }, + ]); + } await knex('composite_key_test') .where('status', 1) .whereIn( diff --git a/test/integration2/query/update/updates.spec.js b/test/integration2/query/update/updates.spec.js index 6d72fb9e84..0f204accf3 100644 --- a/test/integration2/query/update/updates.spec.js +++ b/test/integration2/query/update/updates.spec.js @@ -3,7 +3,7 @@ const { expect } = require('chai'); const { TEST_TIMESTAMP } = require('../../../util/constants'); -const { isPostgreSQL } = require('../../../util/db-helpers'); +const { isPostgreSQL, isOracle } = require('../../../util/db-helpers'); const { getAllDbs, getKnexForDb, @@ -22,10 +22,14 @@ describe('Updates', function () { let knex; let accountId1; + const dropAndRecreateTables = async (knex) => { + await dropTables(knex); + await createAccounts(knex); +}; + before(async () => { knex = logger(getKnexForDb(db)); - await dropTables(knex); - await createAccounts(knex); + await dropAndRecreateTables(knex); }); after(async () => { @@ -34,6 +38,9 @@ describe('Updates', function () { }); beforeEach(async () => { +if (isOracle(knex)) { + await dropAndRecreateTables(knex); + } await knex('accounts').truncate(); await insertAccounts(knex); const accounts = await knex('accounts').select().where({