MCPcopy
hub / github.com/CodebuffAI/codebuff / createMockDbOperations

Function createMockDbOperations

common/src/testing/mocks/database.ts:143–218  ·  view source on GitHub ↗
(
  options: CreateMockDbOptions = {},
)

Source from the content-addressed store, hash-verified

141 * ```
142 */
143export function createMockDbOperations(
144 options: CreateMockDbOptions = {},
145): MockDbOperations {
146 const { defaultSelectData = [], defaultInsertId = 'mock-id' } = options
147
148 const createMockSelectWhereResult = <T>(
149 data: T[] = defaultSelectData as T[],
150 ): MockSelectWhereResult<T> => {
151 const result: MockSelectWhereResult<T> = {
152 then: mock((resolve) => {
153 resolve(data)
154 return Promise.resolve(data)
155 }),
156 leftJoin: mock(() => result),
157 innerJoin: mock(() => result),
158 orderBy: mock(() => result),
159 limit: mock(() => result),
160 offset: mock(() => result),
161 }
162 return result
163 }
164
165 const createMockSelectFromResult = <T>(
166 data: T[] = defaultSelectData as T[],
167 ): MockSelectFromResult<T> => {
168 const whereResult = createMockSelectWhereResult(data)
169 const result: MockSelectFromResult<T> = {
170 where: mock(() => whereResult),
171 leftJoin: mock(() => result),
172 innerJoin: mock(() => result),
173 orderBy: mock(() => result),
174 limit: mock(() => result),
175 offset: mock(() => result),
176 then: mock((resolve) => {
177 resolve(data)
178 return Promise.resolve(data)
179 }),
180 }
181 return result
182 }
183
184 const createMockInsertResult = <T>(): MockInsertResult<T> => {
185 const result: MockInsertResult<T> = {
186 values: mock(() => Promise.resolve({ id: defaultInsertId })),
187 returning: mock(() => Promise.resolve([])),
188 onConflictDoNothing: mock(() => result),
189 onConflictDoUpdate: mock(() => result),
190 }
191 return result
192 }
193
194 const createMockUpdateSetResult = (): MockUpdateSetResult => ({
195 where: mock(() => Promise.resolve()),
196 returning: mock(() => Promise.resolve([])),
197 })
198
199 const createMockUpdateResult = <T>(): MockUpdateResult<T> => ({
200 set: mock(() => createMockUpdateSetResult()),

Calls 4

createMockInsertResultFunction · 0.85
createMockUpdateResultFunction · 0.85
createMockDeleteResultFunction · 0.85

Tested by

no test coverage detected