untilBrowserLog() — vite Function Reference
Architecture documentation for the untilBrowserLog() function in test-utils.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD a48bb8d5_8ec4_bada_ed97_8eef2ad4dcd4["untilBrowserLog()"] c68b21f4_9cd3_3abe_8169_0de2c9650f53["test-utils.ts"] a48bb8d5_8ec4_bada_ed97_8eef2ad4dcd4 -->|defined in| c68b21f4_9cd3_3abe_8169_0de2c9650f53 8ee0e97d_c7ee_a28a_08b3_e9351296df2d["untilBrowserLogAfter()"] 8ee0e97d_c7ee_a28a_08b3_e9351296df2d -->|calls| a48bb8d5_8ec4_bada_ed97_8eef2ad4dcd4 style a48bb8d5_8ec4_bada_ed97_8eef2ad4dcd4 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
playground/test-utils.ts lines 274–351
async function untilBrowserLog(
target?: string | RegExp | Array<string | RegExp>,
expectOrder = true,
): Promise<string[]> {
const { promise, resolve, reject } = promiseWithResolvers<void>()
let timeoutId: ReturnType<typeof setTimeout>
const logs = []
try {
const isMatch = (matcher: string | RegExp) => (text: string) =>
typeof matcher === 'string' ? text === matcher : matcher.test(text)
let processMsg: (text: string) => boolean
if (!target) {
processMsg = () => true
} else if (Array.isArray(target)) {
if (expectOrder) {
const remainingTargets = [...target]
processMsg = (text: string) => {
const nextTarget = remainingTargets.shift()
expect(text).toMatch(nextTarget)
return remainingTargets.length === 0
}
} else {
const remainingMatchers = target.map(isMatch)
processMsg = (text: string) => {
const nextIndex = remainingMatchers.findIndex((matcher) =>
matcher(text),
)
if (nextIndex >= 0) {
remainingMatchers.splice(nextIndex, 1)
}
return remainingMatchers.length === 0
}
}
} else {
processMsg = isMatch(target)
}
const handleMsg = (msg: ConsoleMessage) => {
try {
const text = msg.text()
logs.push(text)
const done = processMsg(text)
if (done) {
resolve()
}
} catch (err) {
reject(err)
}
}
timeoutId = setTimeout(() => {
const nextTarget = Array.isArray(target)
? expectOrder
? target[0]
: target.join(', ')
: target
reject(
new Error(
`Timeout waiting for browser logs. Waiting for: ${nextTarget}`,
),
)
page.off('console', handleMsg)
}, 5000)
page.on('console', handleMsg)
} catch (err) {
reject(err)
}
await promise
clearTimeout(timeoutId)
return logs
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does untilBrowserLog() do?
untilBrowserLog() is a function in the vite codebase, defined in playground/test-utils.ts.
Where is untilBrowserLog() defined?
untilBrowserLog() is defined in playground/test-utils.ts at line 274.
What calls untilBrowserLog()?
untilBrowserLog() is called by 1 function(s): untilBrowserLogAfter.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free