Skip to content

Commit 473033b

Browse files
chore: wip
1 parent ab6cecf commit 473033b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

storage/framework/orm/src/tests/Models.test.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -955,4 +955,27 @@ describe('Models test', () => {
955955
expect(allUsers.length).toBe(3)
956956
expect(allUsers.map(user => user.name)).toContain('Batch User 1')
957957
})
958+
959+
it('should handle dynamic query building using when() with multiple conditions', async () => {
960+
const users = [
961+
{ name: 'John', job_title: 'Senior Dev', email: 'john@test.com', password: '123' },
962+
{ name: 'Jane', job_title: 'Junior Dev', email: 'jane@test.com', password: '456' },
963+
{ name: 'Bob', job_title: 'Manager', email: 'bob@test.com', password: '789' },
964+
]
965+
966+
await Promise.all(users.map(user => User.create(user)))
967+
968+
const filters = {
969+
searchTerm: 'Dev',
970+
isJunior: true,
971+
}
972+
973+
const results = await User
974+
.when(filters.searchTerm !== '', query => query.where('job_title', 'like', `%${filters.searchTerm}%`))
975+
.when(filters.isJunior, query => query.where('job_title', 'like', '%Junior%'))
976+
.get()
977+
978+
expect(results.length).toBe(1)
979+
expect(results[0]?.name).toBe('Jane')
980+
})
958981
})

0 commit comments

Comments
 (0)