From 0a61809dbeeac7ea77367cf3e2f1ba08d9d91d1e Mon Sep 17 00:00:00 2001 From: jlenon7 Date: Fri, 8 Aug 2025 12:14:29 -0300 Subject: [PATCH 1/2] test(model): use containSubset to validate --- .../unit/models/factories/ModelGeneratorTest.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/unit/models/factories/ModelGeneratorTest.ts b/tests/unit/models/factories/ModelGeneratorTest.ts index 3f7fc10..9bb0502 100644 --- a/tests/unit/models/factories/ModelGeneratorTest.ts +++ b/tests/unit/models/factories/ModelGeneratorTest.ts @@ -29,7 +29,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateOne({ id: '1' }) - assert.deepEqual(data, { id: '1' }) + assert.containSubset(data, { id: '1' }) } @Test() @@ -41,7 +41,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateOne({ _id: '1' }) - assert.deepEqual(data, { id: '1' }) + assert.containSubset(data, { id: '1' }) } @Test() @@ -65,7 +65,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateMany([{ id: '1' }]) - assert.deepEqual(data, [{ id: '1' }]) + assert.containSubset(data, [{ id: '1' }]) } @Test() @@ -77,7 +77,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateMany([{ _id: '1' }]) - assert.deepEqual(data, [{ id: '1' }]) + assert.containSubset(data, [{ id: '1' }]) } @Test() @@ -127,7 +127,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, schema).generateOne({ _id: '1' }) - assert.deepEqual(data, { id: '1', profile: { userId: '1' } }) + assert.containSubset(data, { id: '1', profile: { userId: '1' } }) } @Test() @@ -153,7 +153,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, schema).generateOne({ _id: '1' }) - assert.deepEqual(data, { id: '1' }) + assert.containSubset(data, { id: '1' }) } @Test() @@ -177,7 +177,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, schema).generateMany([{ _id: '1' }]) - assert.deepEqual(data, [{ id: '1', profile: { userId: '1' } }]) + assert.containSubset(data, [{ id: '1', profile: { userId: '1' } }]) } @Test() @@ -201,6 +201,6 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, schema).generateMany([{ _id: '1' }]) - assert.deepEqual(data, [{ id: '1' }]) + assert.containSubset(data, [{ id: '1' }]) } } From 20b6699b2a684cae16a9421c8afc2bd55e0fbab9 Mon Sep 17 00:00:00 2001 From: jlenon7 Date: Tue, 12 Aug 2025 14:34:43 -0300 Subject: [PATCH 2/2] chore(driver): validate when statement is a string --- package-lock.json | 4 ++-- package.json | 2 +- src/database/drivers/MySqlDriver.ts | 10 ++++++++++ src/database/drivers/PostgresDriver.ts | 10 ++++++++++ src/database/drivers/SqliteDriver.ts | 10 ++++++++++ 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f732210..27260ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@athenna/database", - "version": "5.27.0", + "version": "5.29.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@athenna/database", - "version": "5.27.0", + "version": "5.29.0", "license": "MIT", "dependencies": { "@faker-js/faker": "^8.4.1" diff --git a/package.json b/package.json index 9693fd6..0850abf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@athenna/database", - "version": "5.28.0", + "version": "5.29.0", "description": "The Athenna database handler for SQL/NoSQL.", "license": "MIT", "author": "João Lenon ", diff --git a/src/database/drivers/MySqlDriver.ts b/src/database/drivers/MySqlDriver.ts index 9cf5e03..eaf6faf 100644 --- a/src/database/drivers/MySqlDriver.ts +++ b/src/database/drivers/MySqlDriver.ts @@ -929,6 +929,16 @@ export class MySqlDriver extends Driver { } if (operation === undefined) { + if (Is.Array(statement)) { + throw new Error('Arrays as statement are not supported.') + } + + if (Is.String(statement)) { + throw new Error( + `The value for the "${statement}" column is undefined and where will not work.` + ) + } + this.qb.where(statement) return this diff --git a/src/database/drivers/PostgresDriver.ts b/src/database/drivers/PostgresDriver.ts index 153860d..66dccdd 100644 --- a/src/database/drivers/PostgresDriver.ts +++ b/src/database/drivers/PostgresDriver.ts @@ -923,6 +923,16 @@ export class PostgresDriver extends Driver { } if (operation === undefined) { + if (Is.Array(statement)) { + throw new Error('Arrays as statement are not supported.') + } + + if (Is.String(statement)) { + throw new Error( + `The value for the "${statement}" column is undefined and where will not work.` + ) + } + this.qb.where(statement) return this diff --git a/src/database/drivers/SqliteDriver.ts b/src/database/drivers/SqliteDriver.ts index 8f5e465..4919c54 100644 --- a/src/database/drivers/SqliteDriver.ts +++ b/src/database/drivers/SqliteDriver.ts @@ -922,6 +922,16 @@ export class SqliteDriver extends Driver { } if (operation === undefined) { + if (Is.Array(statement)) { + throw new Error('Arrays as statement are not supported.') + } + + if (Is.String(statement)) { + throw new Error( + `The value for the "${statement}" column is undefined and where will not work.` + ) + } + this.qb.where(statement) return this