console-logging.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // kilocode_change - new file
  2. import type { Page } from "@playwright/test"
  3. const shouldIgnoreMessage = (message: string): boolean => {
  4. return (
  5. !message.trim() ||
  6. message.includes("DeprecationWarning: The `punycode` module is deprecated") ||
  7. message.includes("Failed to connect to PrepareForShutdown") ||
  8. message.includes("Failed to connect to PrepareForSleep") ||
  9. /^\d+:\d+\/\d+:\d+\.\d+:INFO:CONSOLE(\(\d+\))?\s*$/.test(message)
  10. )
  11. }
  12. const cleanMessage = (message: string): string => {
  13. return message
  14. .replace(/%c/g, "") // Remove color formatting
  15. .replace(/\[Extension Host\]\s*/g, "") // Remove extension host prefix
  16. .replace(/\(file:\/\/[^)]+\)/g, "") // Remove file paths
  17. .replace(/\s{2,}/g, " ") // Collapse multiple spaces
  18. .trim()
  19. }
  20. export const cleanLogMessage = (message: string): string | null => {
  21. if (shouldIgnoreMessage(message)) {
  22. return null
  23. }
  24. const cleaned = cleanMessage(message)
  25. return cleaned || null
  26. }
  27. export const setupConsoleLogging = (page: Page, prefix: string): void => {
  28. const verbose = process.env.PLAYWRIGHT_VERBOSE_LOGS === "true"
  29. page.on("console", (msg) => {
  30. const text = msg.text()
  31. if (!verbose && shouldIgnoreMessage(text)) {
  32. return
  33. }
  34. const cleaned = cleanMessage(text)
  35. if (cleaned) {
  36. console.log(`[${prefix}] ${cleaned}`)
  37. }
  38. })
  39. page.on("pageerror", (error) => {
  40. const cleaned = cleanMessage(error.message)
  41. if (cleaned) {
  42. console.log(`❌ [${prefix}] ${cleaned}`)
  43. }
  44. })
  45. page.on("requestfailed", (request) => {
  46. const url = request.url()
  47. const failure = request.failure()
  48. if (failure) {
  49. const message = `${request.method()} ${url} - ${failure.errorText}`
  50. console.log(`🚫 [${prefix} REQUEST FAILED] ${message}`)
  51. }
  52. })
  53. }