MCPcopy Create free account
hub / github.com/TanStack/db / assertResults

Function assertResults

packages/db-ivm/tests/test-utils.ts:179–213  ·  view source on GitHub ↗
(
  testName: string,
  actual: TestResult<T>,
  expected: Array<T>,
  maxExpectedMessages?: number,
)

Source from the content-addressed store, hash-verified

177 * Assert that results match expected, with message count logging
178 */
179export function assertResults<T>(
180 testName: string,
181 actual: TestResult<T>,
182 expected: Array<T>,
183 maxExpectedMessages?: number,
184) {
185 const expectedMap = createExpectedResults(expected)
186 const expectedSorted = mapToSortedArray(expectedMap)
187
188 if (LOG_RESULTS) {
189 console.log(
190 `${testName}: ${actual.messageCount} messages, ${actual.sortedResults.length} final results`,
191 )
192 console.log(` Messages:`, actual.messages)
193 console.log(` Final results:`, actual.sortedResults)
194 }
195
196 // Check that materialized results match expected
197 expect(actual.sortedResults).toEqual(expectedSorted)
198
199 // Check message count constraints if provided
200 if (maxExpectedMessages !== undefined) {
201 expect(actual.messageCount).toBeLessThanOrEqual(maxExpectedMessages)
202 }
203
204 // Log for debugging - use more reasonable threshold
205 // For empty results, allow up to 2 messages (typical for removal operations)
206 // For non-empty results, allow up to 3x the expected count
207 const reasonableThreshold = expected.length === 0 ? 2 : expected.length * 3
208 if (actual.messageCount > reasonableThreshold) {
209 console.warn(
210 `⚠️ ${testName}: High message count (${actual.messageCount} messages for ${expected.length} expected results)`,
211 )
212 }
213}
214
215/**
216 * Assert that keyed results match expected, with message count logging

Callers 2

testDistinctFunction · 0.85

Calls 3

expectFunction · 0.90
createExpectedResultsFunction · 0.85
mapToSortedArrayFunction · 0.85

Tested by 1

testDistinctFunction · 0.68