Skip to content

Commit 54af13e

Browse files
committed
update db mock
1 parent 56d1dc5 commit 54af13e

1 file changed

Lines changed: 19 additions & 5 deletions

File tree

packages/testing/src/mocks/database.mock.ts

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,19 +97,27 @@ export function createMockSqlOperators() {
9797
* ```
9898
*/
9999
const limit = vi.fn(() => Promise.resolve([] as unknown[]))
100-
const orderBy = vi.fn(() => Promise.resolve([] as unknown[]))
101100
const returning = vi.fn(() => Promise.resolve([] as unknown[]))
102-
const groupBy = vi.fn(() => Promise.resolve([] as unknown[]))
103101
const execute = vi.fn(() => Promise.resolve([] as unknown[]))
104102

105-
const forBuilder = () => {
103+
const terminalBuilder = () => {
106104
const thenable: any = Promise.resolve([] as unknown[])
107105
thenable.limit = limit
108106
thenable.orderBy = orderBy
109107
thenable.returning = returning
110108
thenable.groupBy = groupBy
109+
thenable.for = forClause
111110
return thenable
112111
}
112+
113+
const orderBy = vi.fn(terminalBuilder)
114+
const having = vi.fn(terminalBuilder)
115+
const groupBy = vi.fn(() => {
116+
const builder = terminalBuilder()
117+
builder.having = having
118+
return builder
119+
})
120+
const forBuilder = terminalBuilder
113121
const forClause = vi.fn(forBuilder)
114122

115123
const onConflictDoUpdate = vi.fn(() => ({ returning }) as unknown as Promise<void>)
@@ -162,6 +170,7 @@ export const dbChainMockFns = {
162170
innerJoin,
163171
leftJoin,
164172
groupBy,
173+
having,
165174
execute,
166175
for: forClause,
167176
insert,
@@ -199,9 +208,14 @@ export function resetDbChainMock(): void {
199208
set.mockImplementation(() => ({ where }))
200209
del.mockImplementation(() => ({ where }))
201210
limit.mockImplementation(() => Promise.resolve([] as unknown[]))
202-
orderBy.mockImplementation(() => Promise.resolve([] as unknown[]))
211+
orderBy.mockImplementation(terminalBuilder)
203212
returning.mockImplementation(() => Promise.resolve([] as unknown[]))
204-
groupBy.mockImplementation(() => Promise.resolve([] as unknown[]))
213+
having.mockImplementation(terminalBuilder)
214+
groupBy.mockImplementation(() => {
215+
const builder = terminalBuilder()
216+
builder.having = having
217+
return builder
218+
})
205219
execute.mockImplementation(() => Promise.resolve([] as unknown[]))
206220
forClause.mockImplementation(forBuilder)
207221
transaction.mockImplementation(async (cb: (tx: typeof dbChainMock.db) => unknown) =>

0 commit comments

Comments
 (0)