Skip to content

Commit 79ffac1

Browse files
authored
Merge pull request #208 from AthennaIO/develop
chore(driver): validate when statement is a string
2 parents 8b5b312 + 20b6699 commit 79ffac1

File tree

6 files changed

+41
-11
lines changed

6 files changed

+41
-11
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@athenna/database",
3-
"version": "5.28.0",
3+
"version": "5.29.0",
44
"description": "The Athenna database handler for SQL/NoSQL.",
55
"license": "MIT",
66
"author": "João Lenon <lenon@athenna.io>",

src/database/drivers/MySqlDriver.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -929,6 +929,16 @@ export class MySqlDriver extends Driver<Knex, Knex.QueryBuilder> {
929929
}
930930

931931
if (operation === undefined) {
932+
if (Is.Array(statement)) {
933+
throw new Error('Arrays as statement are not supported.')
934+
}
935+
936+
if (Is.String(statement)) {
937+
throw new Error(
938+
`The value for the "${statement}" column is undefined and where will not work.`
939+
)
940+
}
941+
932942
this.qb.where(statement)
933943

934944
return this

src/database/drivers/PostgresDriver.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -923,6 +923,16 @@ export class PostgresDriver extends Driver<Knex, Knex.QueryBuilder> {
923923
}
924924

925925
if (operation === undefined) {
926+
if (Is.Array(statement)) {
927+
throw new Error('Arrays as statement are not supported.')
928+
}
929+
930+
if (Is.String(statement)) {
931+
throw new Error(
932+
`The value for the "${statement}" column is undefined and where will not work.`
933+
)
934+
}
935+
926936
this.qb.where(statement)
927937

928938
return this

src/database/drivers/SqliteDriver.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -922,6 +922,16 @@ export class SqliteDriver extends Driver<Knex, Knex.QueryBuilder> {
922922
}
923923

924924
if (operation === undefined) {
925+
if (Is.Array(statement)) {
926+
throw new Error('Arrays as statement are not supported.')
927+
}
928+
929+
if (Is.String(statement)) {
930+
throw new Error(
931+
`The value for the "${statement}" column is undefined and where will not work.`
932+
)
933+
}
934+
925935
this.qb.where(statement)
926936

927937
return this

tests/unit/models/factories/ModelGeneratorTest.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default class ModelGeneratorTest {
2929

3030
const data = await new ModelGenerator(User, User.schema()).generateOne({ id: '1' })
3131

32-
assert.deepEqual(data, { id: '1' })
32+
assert.containSubset(data, { id: '1' })
3333
}
3434

3535
@Test()
@@ -41,7 +41,7 @@ export default class ModelGeneratorTest {
4141

4242
const data = await new ModelGenerator(User, User.schema()).generateOne({ _id: '1' })
4343

44-
assert.deepEqual(data, { id: '1' })
44+
assert.containSubset(data, { id: '1' })
4545
}
4646

4747
@Test()
@@ -65,7 +65,7 @@ export default class ModelGeneratorTest {
6565

6666
const data = await new ModelGenerator(User, User.schema()).generateMany([{ id: '1' }])
6767

68-
assert.deepEqual(data, [{ id: '1' }])
68+
assert.containSubset(data, [{ id: '1' }])
6969
}
7070

7171
@Test()
@@ -77,7 +77,7 @@ export default class ModelGeneratorTest {
7777

7878
const data = await new ModelGenerator(User, User.schema()).generateMany([{ _id: '1' }])
7979

80-
assert.deepEqual(data, [{ id: '1' }])
80+
assert.containSubset(data, [{ id: '1' }])
8181
}
8282

8383
@Test()
@@ -127,7 +127,7 @@ export default class ModelGeneratorTest {
127127

128128
const data = await new ModelGenerator(User, schema).generateOne({ _id: '1' })
129129

130-
assert.deepEqual(data, { id: '1', profile: { userId: '1' } })
130+
assert.containSubset(data, { id: '1', profile: { userId: '1' } })
131131
}
132132

133133
@Test()
@@ -153,7 +153,7 @@ export default class ModelGeneratorTest {
153153

154154
const data = await new ModelGenerator(User, schema).generateOne({ _id: '1' })
155155

156-
assert.deepEqual(data, { id: '1' })
156+
assert.containSubset(data, { id: '1' })
157157
}
158158

159159
@Test()
@@ -177,7 +177,7 @@ export default class ModelGeneratorTest {
177177

178178
const data = await new ModelGenerator(User, schema).generateMany([{ _id: '1' }])
179179

180-
assert.deepEqual(data, [{ id: '1', profile: { userId: '1' } }])
180+
assert.containSubset(data, [{ id: '1', profile: { userId: '1' } }])
181181
}
182182

183183
@Test()
@@ -201,6 +201,6 @@ export default class ModelGeneratorTest {
201201

202202
const data = await new ModelGenerator(User, schema).generateMany([{ _id: '1' }])
203203

204-
assert.deepEqual(data, [{ id: '1' }])
204+
assert.containSubset(data, [{ id: '1' }])
205205
}
206206
}

0 commit comments

Comments
 (0)