From 501131c97412a6facdf43faf727bb1cb97bc8dbf Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Tue, 6 Sep 2022 23:17:40 +0300 Subject: [PATCH 01/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index c90761b96..60e22a352 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -1,10 +1,10 @@ -import { DataTypes, Model } from 'sequelize'; +import { DataTypes, Model, QueryTypes } from 'sequelize'; import { createSequelize6Instance } from '../setup/create-sequelize-instance'; import { expect } from 'chai'; import sinon from 'sinon'; // if your issue is dialect specific, remove the dialects you don't need to test on. -export const testingOnDialects = new Set(['mssql', 'sqlite', 'mysql', 'mariadb', 'postgres', 'postgres-native']); +export const testingOnDialects = new Set(['postgres', 'postgres-native']); // You can delete this file if you don't want your SSCCE to be tested against Sequelize 6 @@ -24,6 +24,11 @@ export async function run() { class Foo extends Model {} Foo.init({ + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true + }, name: DataTypes.TEXT, }, { sequelize, @@ -35,7 +40,34 @@ export async function run() { sequelize.afterBulkSync(() => spy()); await sequelize.sync({ force: true }); expect(spy).to.have.been.called; + + const result1 = await sequelize.query( + ` + INSERT INTO foo (id, name) + VALUES (1, 'steve') + ON CONFLICT DO UPDATE + SET name='pekka' + RETURNING id, name + `, + { + type: QueryTypes.RAW, + } + ); + + const result2 = await sequelize.query( + ` + -- HAX + INSERT INTO foo (id, name) + VALUES (1, 'steve') + ON CONFLICT DO UPDATE + SET name='pekka' + RETURNING id, name + `, + { + type: QueryTypes.RAW, + } + ); - console.log(await Foo.create({ name: 'TS foo' })); - expect(await Foo.count()).to.equal(1); + console.log(result1, result2); + expect(result1).to.deep.equal(result2); } From 33a1ed0c1cf7558b88a78b806e5722736c20f4f3 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Tue, 6 Sep 2022 23:23:15 +0300 Subject: [PATCH 02/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 60e22a352..463006c5d 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -43,7 +43,7 @@ export async function run() { const result1 = await sequelize.query( ` - INSERT INTO foo (id, name) + INSERT INTO foos (id, name) VALUES (1, 'steve') ON CONFLICT DO UPDATE SET name='pekka' @@ -57,7 +57,7 @@ export async function run() { const result2 = await sequelize.query( ` -- HAX - INSERT INTO foo (id, name) + INSERT INTO foos (id, name) VALUES (1, 'steve') ON CONFLICT DO UPDATE SET name='pekka' From 58bbd42447d628c4a9ad0a0b73ba72b02330eeff Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Tue, 6 Sep 2022 23:26:30 +0300 Subject: [PATCH 03/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 463006c5d..1fcf28991 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -43,7 +43,7 @@ export async function run() { const result1 = await sequelize.query( ` - INSERT INTO foos (id, name) + INSERT INTO Foos (id, name) VALUES (1, 'steve') ON CONFLICT DO UPDATE SET name='pekka' @@ -57,7 +57,7 @@ export async function run() { const result2 = await sequelize.query( ` -- HAX - INSERT INTO foos (id, name) + INSERT INTO Foos (id, name) VALUES (1, 'steve') ON CONFLICT DO UPDATE SET name='pekka' From cbf9a3778f9afa6229e3fd7f3191c5d64a37dc58 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Tue, 6 Sep 2022 23:36:58 +0300 Subject: [PATCH 04/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 1fcf28991..1d2456ee5 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -43,7 +43,7 @@ export async function run() { const result1 = await sequelize.query( ` - INSERT INTO Foos (id, name) + INSERT INTO "Foos" (id, name) VALUES (1, 'steve') ON CONFLICT DO UPDATE SET name='pekka' @@ -57,7 +57,7 @@ export async function run() { const result2 = await sequelize.query( ` -- HAX - INSERT INTO Foos (id, name) + INSERT INTO "Foos" (id, name) VALUES (1, 'steve') ON CONFLICT DO UPDATE SET name='pekka' From fac312960434b0c9c9ff97577fa0febad61ec420 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Tue, 6 Sep 2022 23:42:46 +0300 Subject: [PATCH 05/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 1d2456ee5..134b5cbc8 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -43,9 +43,9 @@ export async function run() { const result1 = await sequelize.query( ` - INSERT INTO "Foos" (id, name) - VALUES (1, 'steve') - ON CONFLICT DO UPDATE + INSERT INTO "Foos" (id, name) + VALUES (1, 'steve') + ON CONFLICT (id) DO UPDATE SET name='pekka' RETURNING id, name `, @@ -57,9 +57,9 @@ export async function run() { const result2 = await sequelize.query( ` -- HAX - INSERT INTO "Foos" (id, name) - VALUES (1, 'steve') - ON CONFLICT DO UPDATE + INSERT INTO "Foos" (id, name) + VALUES (1, 'steve') + ON CONFLICT (id) DO UPDATE SET name='pekka' RETURNING id, name `, From e3c97d3ea9d48207ec1486b3fd4a1619318fad6b Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Thu, 8 Sep 2022 12:13:39 +0300 Subject: [PATCH 06/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 134b5cbc8..36724cb9d 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -46,7 +46,7 @@ export async function run() { INSERT INTO "Foos" (id, name) VALUES (1, 'steve') ON CONFLICT (id) DO UPDATE - SET name='pekka' + SET name='steve' RETURNING id, name `, { @@ -60,7 +60,7 @@ export async function run() { INSERT INTO "Foos" (id, name) VALUES (1, 'steve') ON CONFLICT (id) DO UPDATE - SET name='pekka' + SET name='steve' RETURNING id, name `, { From 0316176201ec65fbc6d2e38c0f0f2c63116e2a1f Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:20:07 +0300 Subject: [PATCH 07/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 82 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 5 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 36724cb9d..b7d151d69 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -1,8 +1,55 @@ -import { DataTypes, Model, QueryTypes } from 'sequelize'; +import { DataTypes, Model, QueryTypes, Hooks: { hooks } } from 'sequelize'; import { createSequelize6Instance } from '../setup/create-sequelize-instance'; import { expect } from 'chai'; import sinon from 'sinon'; +const hookTypes = { + beforeValidate: { params: 2 }, + afterValidate: { params: 2 }, + validationFailed: { params: 3 }, + beforeCreate: { params: 2 }, + afterCreate: { params: 2 }, + beforeDestroy: { params: 2 }, + afterDestroy: { params: 2 }, + beforeRestore: { params: 2 }, + afterRestore: { params: 2 }, + beforeUpdate: { params: 2 }, + afterUpdate: { params: 2 }, + beforeSave: { params: 2, proxies: ['beforeUpdate', 'beforeCreate'] }, + afterSave: { params: 2, proxies: ['afterUpdate', 'afterCreate'] }, + beforeUpsert: { params: 2 }, + afterUpsert: { params: 2 }, + beforeBulkCreate: { params: 2 }, + afterBulkCreate: { params: 2 }, + beforeBulkDestroy: { params: 1 }, + afterBulkDestroy: { params: 1 }, + beforeBulkRestore: { params: 1 }, + afterBulkRestore: { params: 1 }, + beforeBulkUpdate: { params: 1 }, + afterBulkUpdate: { params: 1 }, + beforeFind: { params: 1 }, + beforeFindAfterExpandIncludeAll: { params: 1 }, + beforeFindAfterOptions: { params: 1 }, + afterFind: { params: 2 }, + beforeCount: { params: 1 }, + beforeDefine: { params: 2, sync: true, noModel: true }, + afterDefine: { params: 1, sync: true, noModel: true }, + beforeInit: { params: 2, sync: true, noModel: true }, + afterInit: { params: 1, sync: true, noModel: true }, + beforeAssociate: { params: 2, sync: true }, + afterAssociate: { params: 2, sync: true }, + beforeConnect: { params: 1, noModel: true }, + afterConnect: { params: 2, noModel: true }, + beforeDisconnect: { params: 1, noModel: true }, + afterDisconnect: { params: 1, noModel: true }, + beforeSync: { params: 1 }, + afterSync: { params: 1 }, + beforeBulkSync: { params: 1 }, + afterBulkSync: { params: 1 }, + beforeQuery: { params: 2 }, + afterQuery: { params: 2 } +}; + // if your issue is dialect specific, remove the dialects you don't need to test on. export const testingOnDialects = new Set(['postgres', 'postgres-native']); @@ -35,18 +82,38 @@ export async function run() { modelName: 'Foo', }); + const spies = {}; + + Object.keys(hookTypes).forEach((hook) => { + const spy = sinon.spy(); + spies[hook] = spy; + Foo.addHook(hook, () => { + console.log(hook) + spy() + }); + }) + + const resetSpies = () => { + Object.values(spies).forEach((spy) => { + spy.resetHistory(); + }); + } + // You can use sinon and chai assertions directly in your SSCCE. const spy = sinon.spy(); sequelize.afterBulkSync(() => spy()); await sequelize.sync({ force: true }); expect(spy).to.have.been.called; + resetSpies(); + console.log("Upserting first") + const result1 = await sequelize.query( ` INSERT INTO "Foos" (id, name) VALUES (1, 'steve') ON CONFLICT (id) DO UPDATE - SET name='steve' + SET name='ben' RETURNING id, name `, { @@ -54,19 +121,24 @@ export async function run() { } ); + resetSpies(); + console.log("Upserting second") + const result2 = await sequelize.query( ` - -- HAX INSERT INTO "Foos" (id, name) - VALUES (1, 'steve') + VALUES (1, 'doug') ON CONFLICT (id) DO UPDATE - SET name='steve' + SET name='will' RETURNING id, name `, { type: QueryTypes.RAW, } ); + + resetSpies(); + console.log("End") console.log(result1, result2); expect(result1).to.deep.equal(result2); From 21472b11608a5d60e3032f5e932d36a63033f2d4 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:24:34 +0300 Subject: [PATCH 08/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index b7d151d69..1f0c381a9 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -1,4 +1,4 @@ -import { DataTypes, Model, QueryTypes, Hooks: { hooks } } from 'sequelize'; +import { DataTypes, Model, QueryTypes } from 'sequelize'; import { createSequelize6Instance } from '../setup/create-sequelize-instance'; import { expect } from 'chai'; import sinon from 'sinon'; From 7f1a3f82c0e097913cac42689fb0a2d36f379723 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:29:17 +0300 Subject: [PATCH 09/23] Update runner.ts --- setup/runner.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/runner.ts b/setup/runner.ts index 1cdb5b345..2548dc965 100644 --- a/setup/runner.ts +++ b/setup/runner.ts @@ -15,7 +15,7 @@ async function wrappedRun() { let failed = false; - if (existsSync(`${__dirname}/../src/sscce-sequelize-6.ts`)) { + if (existsSync(`${__dirname}/../src/sscce-sequelize-6.js`)) { let heading = `Running SSCCE for ${dialect.toUpperCase()} with Sequelize ${versions.sequelize6}`; heading = `===== ${heading} =====`; From f45be0882c2648c559dee28810fef78f6456965b Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:29:40 +0300 Subject: [PATCH 10/23] Rename sscce-sequelize-6.ts to sscce-sequelize-6.js --- src/{sscce-sequelize-6.ts => sscce-sequelize-6.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{sscce-sequelize-6.ts => sscce-sequelize-6.js} (100%) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.js similarity index 100% rename from src/sscce-sequelize-6.ts rename to src/sscce-sequelize-6.js From a432a06e01110593ae22b8723c357fb8b6936bd7 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:38:29 +0300 Subject: [PATCH 11/23] Update sscce-sequelize-6.js --- src/sscce-sequelize-6.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/sscce-sequelize-6.js b/src/sscce-sequelize-6.js index 1f0c381a9..aa7364d10 100644 --- a/src/sscce-sequelize-6.js +++ b/src/sscce-sequelize-6.js @@ -106,7 +106,7 @@ export async function run() { expect(spy).to.have.been.called; resetSpies(); - console.log("Upserting first") + console.log("Upserting action: insert") const result1 = await sequelize.query( ` @@ -122,7 +122,7 @@ export async function run() { ); resetSpies(); - console.log("Upserting second") + console.log("Upserting action: update") const result2 = await sequelize.query( ` @@ -137,9 +137,25 @@ export async function run() { } ); + resetSpies(); + console.log("Upserting action: nothing") + + const result3 = await sequelize.query( + ` + INSERT INTO "Foos" (id, name) + VALUES (1, 'gladys') + ON CONFLICT (id) DO UPDATE + SET name='malla' + WHERE 1 = 2 + RETURNING id, name + `, + { + type: QueryTypes.RAW, + } + ); + resetSpies(); console.log("End") - console.log(result1, result2); - expect(result1).to.deep.equal(result2); + console.log("Results", result1, result2, result3); } From 49fd71d5097b6ed33fbfec5eebaed43994bfb553 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:39:28 +0300 Subject: [PATCH 12/23] Update package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 7b085ecf8..752dbe762 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,5 @@ { + "type": "module", "private": true, "engines": { "node": ">=10.0.0" From 8ba61188e79e2f4f411e2ec3a8399c2c3b3678c5 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:43:37 +0300 Subject: [PATCH 13/23] Update package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 752dbe762..7b085ecf8 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,4 @@ { - "type": "module", "private": true, "engines": { "node": ">=10.0.0" From 162e5d7fdb2b41d1041877005aaca71b6682276e Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:43:53 +0300 Subject: [PATCH 14/23] Update runner.ts --- setup/runner.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/runner.ts b/setup/runner.ts index 2548dc965..1cdb5b345 100644 --- a/setup/runner.ts +++ b/setup/runner.ts @@ -15,7 +15,7 @@ async function wrappedRun() { let failed = false; - if (existsSync(`${__dirname}/../src/sscce-sequelize-6.js`)) { + if (existsSync(`${__dirname}/../src/sscce-sequelize-6.ts`)) { let heading = `Running SSCCE for ${dialect.toUpperCase()} with Sequelize ${versions.sequelize6}`; heading = `===== ${heading} =====`; From eb1e08a11d05e606cf4b11ad72794e6f761192af Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 00:45:01 +0300 Subject: [PATCH 15/23] Update and rename sscce-sequelize-6.js to sscce-sequelize-6.ts --- src/{sscce-sequelize-6.js => sscce-sequelize-6.ts} | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) rename src/{sscce-sequelize-6.js => sscce-sequelize-6.ts} (98%) diff --git a/src/sscce-sequelize-6.js b/src/sscce-sequelize-6.ts similarity index 98% rename from src/sscce-sequelize-6.js rename to src/sscce-sequelize-6.ts index aa7364d10..37ae03297 100644 --- a/src/sscce-sequelize-6.js +++ b/src/sscce-sequelize-6.ts @@ -82,21 +82,18 @@ export async function run() { modelName: 'Foo', }); - const spies = {}; - Object.keys(hookTypes).forEach((hook) => { - const spy = sinon.spy(); - spies[hook] = spy; Foo.addHook(hook, () => { console.log(hook) - spy() }); }) const resetSpies = () => { +/* Object.values(spies).forEach((spy) => { spy.resetHistory(); }); +*/ } // You can use sinon and chai assertions directly in your SSCCE. From 84e2c51284449a6ec4ae3e47f65785fc8e4c1acc Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 01:00:47 +0300 Subject: [PATCH 16/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 37ae03297..e774a2999 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -1,3 +1,6 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck + import { DataTypes, Model, QueryTypes } from 'sequelize'; import { createSequelize6Instance } from '../setup/create-sequelize-instance'; import { expect } from 'chai'; From 2477dcee972e8d745977493dae936dc4b9b66c96 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 9 Sep 2022 01:08:01 +0300 Subject: [PATCH 17/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 45 ++-------------------------------------- 1 file changed, 2 insertions(+), 43 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index e774a2999..17f7c6846 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -108,54 +108,13 @@ export async function run() { resetSpies(); console.log("Upserting action: insert") - const result1 = await sequelize.query( - ` - INSERT INTO "Foos" (id, name) - VALUES (1, 'steve') - ON CONFLICT (id) DO UPDATE - SET name='ben' - RETURNING id, name - `, - { - type: QueryTypes.RAW, - } - ); + console.log(await Foo.upsert({ id: 1, name: 'bar'})); resetSpies(); console.log("Upserting action: update") - const result2 = await sequelize.query( - ` - INSERT INTO "Foos" (id, name) - VALUES (1, 'doug') - ON CONFLICT (id) DO UPDATE - SET name='will' - RETURNING id, name - `, - { - type: QueryTypes.RAW, - } - ); - - resetSpies(); - console.log("Upserting action: nothing") - - const result3 = await sequelize.query( - ` - INSERT INTO "Foos" (id, name) - VALUES (1, 'gladys') - ON CONFLICT (id) DO UPDATE - SET name='malla' - WHERE 1 = 2 - RETURNING id, name - `, - { - type: QueryTypes.RAW, - } - ); + console.log(await Foo.upsert({ id: 1, name: 'baz'})); resetSpies(); console.log("End") - - console.log("Results", result1, result2, result3); } From dbb31a9ea3c6fffd7e6aa4ee639bc97efe398544 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 23 Sep 2022 14:42:16 +0300 Subject: [PATCH 18/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 17f7c6846..2cbd971b9 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -90,31 +90,21 @@ export async function run() { console.log(hook) }); }) - - const resetSpies = () => { -/* - Object.values(spies).forEach((spy) => { - spy.resetHistory(); - }); -*/ - } // You can use sinon and chai assertions directly in your SSCCE. const spy = sinon.spy(); sequelize.afterBulkSync(() => spy()); await sequelize.sync({ force: true }); expect(spy).to.have.been.called; + await Foo.upsert({ id: 1, name: 'bar'}); + await Foo.upsert({ id: 2, name: 'baz'}); - resetSpies(); - console.log("Upserting action: insert") - - console.log(await Foo.upsert({ id: 1, name: 'bar'})); - - resetSpies(); - console.log("Upserting action: update") + console.log("Start") - console.log(await Foo.upsert({ id: 1, name: 'baz'})); + console.log(await sequelize.query("SELECT * FROM ", { + type: sequelize.QueryTypes.SELECT, + model: Foo, + })); - resetSpies(); console.log("End") } From 0132ca7d77a43bb36dd3ad9f7c81bf1b2bfe2c87 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Fri, 23 Sep 2022 14:48:13 +0300 Subject: [PATCH 19/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 2cbd971b9..964f5d1ab 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -101,7 +101,7 @@ export async function run() { console.log("Start") - console.log(await sequelize.query("SELECT * FROM ", { + console.log(await sequelize.query('SELECT * FROM "Foos"', { type: sequelize.QueryTypes.SELECT, model: Foo, })); From 74aecf4eaa3b03b9b122b6298c990fcbcde77258 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Tue, 4 Oct 2022 23:14:29 +0300 Subject: [PATCH 20/23] Update sscce-sequelize-6.ts --- src/sscce-sequelize-6.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 964f5d1ab..cfdc4b069 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -54,7 +54,7 @@ const hookTypes = { }; // if your issue is dialect specific, remove the dialects you don't need to test on. -export const testingOnDialects = new Set(['postgres', 'postgres-native']); +export const testingOnDialects = new Set(['mssql', 'sqlite', 'mysql', 'mariadb', 'postgres', 'postgres-native']); // You can delete this file if you don't want your SSCCE to be tested against Sequelize 6 From 2ae930c6aa731ec75d5903f19a4b0d09a0273e62 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Mon, 10 Feb 2025 12:50:37 +0200 Subject: [PATCH 21/23] findCreateFind --- src/sscce-sequelize-6.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index cfdc4b069..7231ab4e2 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -96,15 +96,16 @@ export async function run() { sequelize.afterBulkSync(() => spy()); await sequelize.sync({ force: true }); expect(spy).to.have.been.called; - await Foo.upsert({ id: 1, name: 'bar'}); - await Foo.upsert({ id: 2, name: 'baz'}); + console.log("Start 1") + await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { username: 'bar' }}); + await Foo.findCreateFind({ defaults: { id: 2, name: 'baz'}, where: { username: 'baz' },}); - console.log("Start") + console.log("Start 2") console.log(await sequelize.query('SELECT * FROM "Foos"', { type: sequelize.QueryTypes.SELECT, model: Foo, })); - console.log("End") + console.log("Start 3") } From 6c37f3e5345d9d59026a997bd1798f5aea7fc9f4 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Mon, 10 Feb 2025 13:07:04 +0200 Subject: [PATCH 22/23] foobar --- src/sscce-sequelize-6.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index 59e7a81df..f57cb1f28 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -97,11 +97,19 @@ export async function run() { await sequelize.sync({ force: true }); expect(spy).to.have.been.called; console.log("Start 1") - await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { username: 'bar' }}); - await Foo.findCreateFind({ defaults: { id: 2, name: 'baz'}, where: { username: 'baz' },}); + await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { name: 'bar' }}); + + console.log("Start 1.1") + await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { name: 'bar' }}); - console.log("Start 2") + console.log("Start 1.2") + await Foo.findOrCreate({ defaults: { id: 2, name: 'baz'}, where: { name: 'baz' }}); + + console.log("Start 1.3") + await Foo.findOrCreate({ defaults: { id: 2, name: 'baz'}, where: { name: 'baz' }}); + console.log("Start 2") + console.log(await sequelize.query('SELECT * FROM "Foos"', { type: sequelize.QueryTypes.SELECT, model: Foo, From d0085cdf89dcb85a9a5a17e98f4dda99c2f21779 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Mon, 10 Feb 2025 13:27:09 +0200 Subject: [PATCH 23/23] Add transaction --- src/sscce-sequelize-6.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/sscce-sequelize-6.ts b/src/sscce-sequelize-6.ts index f57cb1f28..2081b3891 100644 --- a/src/sscce-sequelize-6.ts +++ b/src/sscce-sequelize-6.ts @@ -97,16 +97,20 @@ export async function run() { await sequelize.sync({ force: true }); expect(spy).to.have.been.called; console.log("Start 1") - await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { name: 'bar' }}); + await sequelize.transaction( + async (transaction) => { + await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { name: 'bar' }, transaction}); - console.log("Start 1.1") - await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { name: 'bar' }}); - - console.log("Start 1.2") - await Foo.findOrCreate({ defaults: { id: 2, name: 'baz'}, where: { name: 'baz' }}); + console.log("Start 1.1") + await Foo.findCreateFind({ defaults: { id: 1, name: 'bar'}, where: { name: 'bar' }, transaction}); + + console.log("Start 1.2") + await Foo.findOrCreate({ defaults: { id: 2, name: 'baz'}, where: { name: 'baz' }, transaction}); - console.log("Start 1.3") - await Foo.findOrCreate({ defaults: { id: 2, name: 'baz'}, where: { name: 'baz' }}); + console.log("Start 1.3") + await Foo.findOrCreate({ defaults: { id: 2, name: 'baz'}, where: { name: 'baz' }, transaction}); + } + ) console.log("Start 2")