Skip to content

feat(mcp): detect old vs new API usage for promoted components#3326

Merged
rivka-ungar merged 6 commits intovibe4from
feat/mcp-promoted-component-detection
Mar 12, 2026
Merged

feat(mcp): detect old vs new API usage for promoted components#3326
rivka-ungar merged 6 commits intovibe4from
feat/mcp-promoted-component-detection

Conversation

@rivka-ungar
Copy link
Copy Markdown
Contributor

@rivka-ungar rivka-ungar commented Mar 10, 2026

User description

Summary

  • Adds detection of old vs new API usage for five promoted components (Dropdown, AttentionBox, Modal, DatePicker, Dialog) that had dual versions in Vibe 3
  • Surfaces actionable migration guidance with severity levels, API changes, and before/after examples before codemods run
  • Inserts a new migration step (step 3) to address old component APIs before running automated codemods

Details

In Vibe 3, these components had OLD versions in @vibe/core and NEW versions in @vibe/core/next. In Vibe 4, the new versions became the default in @vibe/core. If a user was importing the old version from @vibe/core, after upgrading their import path is "correct" but silently points to a completely different component with a different API. The codemods don't handle this because it's not a 1:1 prop change.

Changes to v4-migration.ts:

  • Constants & types: PROMOTED_COMPONENTS, OldComponentDetection, PromotedComponentAnalysis interfaces
  • detectPromotedComponentImports(): Parses imports to classify as old (@vibe/core) or new (@vibe/core/next), handles both quote styles
  • getPromotedComponentMigrationGuide(): Structured guidance per component with severity, API changes, before/after code
  • New migration step 3: "Migrate Old Components to New API" β€” must be completed before running codemods
  • Recommendations: Critical/high priority for old API usage, info-level for already-migrated /next imports
  • Step renumbering: 3β†’4, 4β†’5, 5β†’6, 6β†’7 with updated cross-references

Test plan

  • yarn workspace @vibe/mcp build compiles successfully
  • Run v4-migration tool against a project with old-style @vibe/core imports β€” verify promotedComponentAnalysis.oldApiUsage populated
  • Run against a project with @vibe/core/next imports β€” verify promotedComponentAnalysis.newApiUsage populated
  • Verify migration steps numbered 1–7 with correct cross-references
  • Verify recommendations include promoted component entries with severity and before/after examples

πŸ€– Generated with Claude Code


PR Type

Enhancement


Description

  • Adds detection of old vs new API usage for five promoted components (Dropdown, AttentionBox, Modal, DatePicker, Dialog)

  • Inserts new migration step 3 to address old component APIs before running codemods

  • Provides structured migration guidance with severity levels, API changes, and before/after examples

  • Handles multi-line imports by collapsing them into logical lines for accurate detection

  • Renumbers subsequent migration steps (3β†’4, 4β†’5, 5β†’6, 6β†’7) with updated cross-references


Diagram Walkthrough

flowchart LR
  A["Project Analysis"] --> B["Detect Promoted Components"]
  B --> C["Old API from @vibe/core"]
  B --> D["New API from @vibe/core/next"]
  C --> E["Step 3: Migrate Old API"]
  D --> F["Step 4: Run Codemods"]
  E --> F
  F --> G["Step 5: Manual Review"]
Loading

File Walkthrough

Relevant files
Enhancement
v4-migration.ts
Add promoted component detection and migration guidanceΒ  Β 

packages/mcp/src/server/tools/v4-migration.ts

  • Added PROMOTED_COMPONENTS constant and OldComponentDetection,
    PromotedComponentAnalysis interfaces for tracking old vs new API usage
  • Implemented collapseImportLines() helper to handle multi-line import
    statements by preserving start line numbers
  • Implemented detectPromotedComponentImports() function to parse imports
    and classify components as old (@vibe/core) or new (@vibe/core/next)
  • Implemented getPromotedComponentMigrationGuide() function providing
    structured guidance per component with severity, API changes, and
    before/after code examples
  • Inserted new migration step 3 "Migrate Old Components to New API" with
    detailed instructions and warnings about ordering relative to codemods
  • Renumbered subsequent migration steps (3β†’4, 4β†’5, 5β†’6, 6β†’7) and updated
    all cross-references and warnings
  • Integrated promoted component analysis into analyzeProject() and
    scanAllFiles() workflows
  • Enhanced generateRecommendations() to surface promoted component
    findings with severity levels and actionable guidance
  • Updated migration script and manual review warnings to emphasize step
    3 must complete before codemods run
+259/-8Β 

…migration tool

Five components (Dropdown, AttentionBox, Modal, DatePicker, Dialog) had old/new
versions in Vibe 3. After upgrading to v4, imports from @vibe/core silently point
to the new API. This adds detection to distinguish old vs new API usage and surface
actionable migration guidance before codemods run.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rivka-ungar rivka-ungar requested a review from a team as a code owner March 10, 2026 11:06
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Detect promoted component API usage and surface migration guidance

✨ Enhancement

Grey Divider

Walkthroughs

Description
β€’ Adds detection of old vs new API usage for five promoted components (Dropdown, AttentionBox,
  Modal, DatePicker, Dialog)
β€’ Surfaces actionable migration guidance with severity levels, API changes, and before/after
  examples
β€’ Inserts new migration step 3 to address old component APIs before running codemods
β€’ Renumbers subsequent migration steps (3β†’4, 4β†’5, 5β†’6, 6β†’7) with updated cross-references
Diagram
flowchart LR
  A["Source Files"] -- "detectPromotedComponentImports()" --> B["Old vs New API Detection"]
  B -- "classifies imports" --> C["PromotedComponentAnalysis"]
  C -- "oldApiUsage/newApiUsage" --> D["Migration Recommendations"]
  E["getPromotedComponentMigrationGuide()"] -- "provides guidance" --> D
  D -- "severity + before/after" --> F["Step 3: Migrate Old Components"]
Loading

Grey Divider

File Changes

1. packages/mcp/src/server/tools/v4-migration.ts ✨ Enhancement +219/-6

Detect promoted components and add migration step

β€’ Added PROMOTED_COMPONENTS constant and OldComponentDetection, PromotedComponentAnalysis
 interfaces for tracking old/new API usage
β€’ Implemented detectPromotedComponentImports() function to parse imports and classify components
 as old (@vibe/core) or new (@vibe/core/next)
β€’ Implemented getPromotedComponentMigrationGuide() function providing structured guidance per
 component with severity, API changes, and before/after code examples
β€’ Inserted new migration step 3 "Migrate Old Components to New API" with detailed instructions and
 warnings
β€’ Renumbered subsequent migration steps (3β†’4, 4β†’5, 5β†’6, 6β†’7) and updated all cross-references
 throughout the file
β€’ Added promotedComponentAnalysis to project analysis output and integrated promoted component
 recommendations into generateRecommendations()

packages/mcp/src/server/tools/v4-migration.ts


Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects bot commented Mar 10, 2026

Code Review by Qodo

🐞 Bugs (2) πŸ“˜ Rule violations (0) πŸ“Ž Requirement gaps (0)

Grey Divider


Action required

1. Misses multiline imports β˜‘ 🐞 Bug βœ“ Correctness
Description
detectPromotedComponentImports applies a single-line regex to each line of the file, so multi-line
imports (a common formatting style) will not be detected and promotedComponentAnalysis will miss
real old/new API usage.
Code

packages/mcp/src/server/tools/v4-migration.ts[R752-766]

+  // Match import statements from @vibe/core or @vibe/core/next (both quote styles)
+  const importRegex = /import\s+\{([^}]+)\}\s+from\s+["'](@vibe\/core(?:\/next)?)["']/g;
+
+  for (const file of files) {
+    try {
+      const content = readFileSync(file, "utf-8");
+      const lines = content.split("\n");
+
+      for (let i = 0; i < lines.length; i++) {
+        const line = lines[i];
+        importRegex.lastIndex = 0;
+        let match;
+
+        while ((match = importRegex.exec(line)) !== null) {
+          const importedNames = match[1].split(",").map(s => s.trim().split(/\s+as\s+/)[0].trim());
Evidence
The detector splits file content into lines and runs a regex that requires `{ ... } from
"@vibe/core"` to appear on the same line, so multi-line import blocks won’t match. The repo itself
contains multi-line imports from @vibe/core (including promoted components like Modal/Dropdown),
demonstrating this pattern is expected in real projects.

packages/mcp/src/server/tools/v4-migration.ts[752-766]
packages/docs/src/pages/components/Modal/ModalSideBySideLayout.stories.tsx[3-23]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`detectPromotedComponentImports()` currently regex-matches imports per *line*, which fails to detect multi-line import blocks (common in TS/JS). This under-reports old/new API usage for promoted components and can hide required manual migrations.
## Issue Context
The code splits file content by `\n` and runs `/import\s+\{([^}]+)\}\s+from.../g` on each single line.
## Fix Focus Areas
- packages/mcp/src/server/tools/v4-migration.ts[743-803]

β“˜ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Rereads all files twice 🐞 Bug ➹ Performance
Description
scanAllFiles reads each file for existing analyses and then detectPromotedComponentImports rereads
the same files again, doubling file I/O and slowing analysis on large codebases.
Code

packages/mcp/src/server/tools/v4-migration.ts[R526-528]

+  const promotedComponentAnalysis = detectPromotedComponentImports(files);
+
+  return { importAnalysis, componentUsage, manualChanges, promotedComponentAnalysis };
Evidence
scanAllFiles already reads each file’s content via readFileSync during its main loop; after
finishing, it calls detectPromotedComponentImports(files), which performs another readFileSync over
every file. This introduces an unconditional second full pass over the filesystem.

packages/mcp/src/server/tools/v4-migration.ts[473-476]
packages/mcp/src/server/tools/v4-migration.ts[526-528]
packages/mcp/src/server/tools/v4-migration.ts[755-758]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`scanAllFiles()` reads each file once, then `detectPromotedComponentImports()` reads every file again. This doubles disk I/O and increases latency.
## Issue Context
The file contents are already available inside the main `for (const file of files)` loop in `scanAllFiles()`.
## Fix Focus Areas
- packages/mcp/src/server/tools/v4-migration.ts[426-529]
- packages/mcp/src/server/tools/v4-migration.ts[743-803]

β“˜ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

β“˜ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

…emods

After codemods rewrite @vibe/core/next β†’ @vibe/core, old vs new API usage
becomes indistinguishable. Updated warnings to make the ordering clear.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects bot commented Mar 10, 2026

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

β“˜ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Update migration step 4 (codemods) and promoted component recommendations
to consistently warn that step 3 must complete before codemods run.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects bot commented Mar 10, 2026

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

β“˜ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Remove duplicated Dropdown API changes and before/after examples from the
promoted component guide. Instead, reference the dedicated dropdown-migration
tool which already provides comprehensive guidance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects bot commented Mar 10, 2026

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

β“˜ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Replace line-by-line regex with a pre-processing step that collapses
multi-line imports into single logical lines before matching, preserving
the start line number of the import keyword.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects bot commented Mar 10, 2026

Persistent review updated to latest commit 6f2a1cc

@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

qodo-free-for-open-source-projects bot commented Mar 10, 2026

Persistent review updated to latest commit 0077f8f

@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: Test / Testkit Unit Tests

Failed stage: Run Unit Tests [❌]

Failed test name: Testkit - Unit Tests - EditableHeading β€Ί should enter edit mode when clicked

Failure summary:

The GitHub Action failed because the @vibe/testkit:test:changed Playwright test run exited with code
1 due to many failing tests.
- Multiple UI tests timed out waiting for Storybook elements/iframes to
become visible (common error: TimeoutError: locator.waitFor: Timeout 30000ms exceeded), with stack
traces pointing to packages/testkit/components/BaseElement.ts:140-141 (e.g.,
waitForElementToBeVisible) and then the specific test files (e.g.,
tests/ButtonGroup.test.ts:16:23, tests/Checkbox.test.ts:16:20,
tests/Dropdown.test.ts:16:20, etc.).
- One test failed an assertion in
packages/testkit/tests/EditableHeading.test.ts:28:50 (should enter edit mode when clicked),
where editableHeading.isInEditMode() returned false but true was expected.
- The overall Playwright
summary reports 88 failed, 1 interrupted, and the run ended with error Command failed with exit code
1, causing Lerna/Nx to mark @vibe/testkit:test:changed as failed.
- Additionally, there is an
earlier infrastructure/config issue logged by Chromatic: an unhandled promise rejection Command
failed with exit code 1: git config user.email while running in packages/docs, indicating missing
git user configuration in the CI environment; however, the job ultimately fails because the test
suite failed.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

162:  * [new branch]          feature/moro/disabled-legacy-editable-heading-text-selection -> origin/feature/moro/disabled-legacy-editable-heading-text-selection
163:  * [new branch]          feature/moshe/auto_scroll_after_back_on_store -> origin/feature/moshe/auto_scroll_after_back_on_store
164:  * [new branch]          feature/moshe/vulcan_upgrade -> origin/feature/moshe/vulcan_upgrade
165:  * [new branch]          feature/sergeyro/icon-deprecate-clickable -> origin/feature/sergeyro/icon-deprecate-clickable
166:  * [new branch]          feature/shanab/input-type-time -> origin/feature/shanab/input-type-time
167:  * [new branch]          fix-add-tslib               -> origin/fix-add-tslib
168:  * [new branch]          fix-chromatic-action        -> origin/fix-chromatic-action
169:  * [new branch]          fix-dialog-show-contextmenu-default-menu -> origin/fix-dialog-show-contextmenu-default-menu
170:  * [new branch]          fix-dropdown-spec           -> origin/fix-dropdown-spec
171:  * [new branch]          fix-showHideEvent-in-dialog-story -> origin/fix-showHideEvent-in-dialog-story
172:  * [new branch]          fix/combobox-spacings-9062326510 -> origin/fix/combobox-spacings-9062326510
173:  * [new branch]          fix/modal-focus             -> origin/fix/modal-focus
174:  * [new branch]          fix/orhal/playwright-install-performance-fix -> origin/fix/orhal/playwright-install-performance-fix
175:  * [new branch]          fix/yossi/test-focus-lock-esm -> origin/fix/yossi/test-focus-lock-esm
176:  * [new branch]          gh-pages                    -> origin/gh-pages
177:  * [new branch]          lint-error-fixes            -> origin/lint-error-fixes
178:  * [new branch]          master                      -> origin/master
...

2245:  οΏ½[2KοΏ½[1GοΏ½[2m$ node scripts/generate-lazy-icons.jsοΏ½[22m
2246:  Generated lazy components and index.ts for 275 icons.
2247:  οΏ½[2KοΏ½[1GοΏ½[2m$ node scripts/generate-svg-index.jsοΏ½[22m
2248:  Generated index.ts for SVG exports in ./src/svg
2249:  οΏ½[36m
2250:  οΏ½[1msrc/react/index.ts, src/lazy/index.ts, src/svg/index.ts, src/iconsMetaData.ts, src/types.tsοΏ½[22m β†’ οΏ½[1mdistοΏ½[22m...οΏ½[39m
2251:  οΏ½[1mοΏ½[33m(!) Generated an empty chunkοΏ½[39mοΏ½[22m
2252:  types
2253:  οΏ½[32mcreated οΏ½[1mdistοΏ½[22m in οΏ½[1m46.1sοΏ½[22mοΏ½[39m
2254:  οΏ½[2KοΏ½[1GDone in 55.00s.
2255:  ##[endgroup]
2256:  Lerna (powered by Nx)   Successfully ran target build for 4 projects
2257:  Done in 96.53s.
2258:  ##[group]Run if [[ -n "$(git status --porcelain yarn.lock)" ]]; then
2259:  οΏ½[36;1mif [[ -n "$(git status --porcelain yarn.lock)" ]]; thenοΏ½[0m
2260:  οΏ½[36;1m  echo "Error: yarn.lock has uncommitted changes. Please commit it."οΏ½[0m
2261:  οΏ½[36;1m  exit 1οΏ½[0m
...

4243:  οΏ½[32m'Steps.test.ts'οΏ½[39m,
4244:  οΏ½[32m'Steps.test.ts'οΏ½[39m,
4245:  οΏ½[32m'TextField.test.ts'οΏ½[39m,
4246:  οΏ½[32m'TextField.test.ts'οΏ½[39m,
4247:  οΏ½[32m'Toast.test.ts'οΏ½[39m,
4248:  οΏ½[32m'Toast.test.ts'οΏ½[39m,
4249:  οΏ½[32m'Toast.test.ts'οΏ½[39m,
4250:  οΏ½[32m'Toggle.test.ts'οΏ½[39m,
4251:  οΏ½[32m'Toggle.test.ts'οΏ½[39m
4252:  ]
4253:  οΏ½[2m[WebServer] οΏ½[22mlernaοΏ½[2m[WebServer] οΏ½[22m notice cli v8.1.2
4254:  οΏ½[2m[WebServer] οΏ½[22mlerna infoοΏ½[2m[WebServer] οΏ½[22m versioning independent
4255:  οΏ½[2m[WebServer] οΏ½[22mlerna info ci enabled
4256:  οΏ½[2m[WebServer] οΏ½[22mlernaοΏ½[2m[WebServer] οΏ½[22m notice οΏ½[2m[WebServer] οΏ½[22mfilter including "@vibe/docs"
4257:  οΏ½[2m[WebServer] οΏ½[22mlerna info οΏ½[2m[WebServer] οΏ½[22mfilter [ '@vibe/docs' ]
4258:  οΏ½[2m[WebServer] οΏ½[22mUnhandled promise rejection: Error: Command failed with exit code 1: git config user.email
4259:  οΏ½[2m[WebServer] οΏ½[22m    at jt (/home/runner/work/vibe/vibe/node_modules/οΏ½[4m@chromatic-comοΏ½[24m/storybook/node_modules/οΏ½[4mchromaticοΏ½[24m/dist/chunk-7UHX5T7X.js:55:57)
4260:  οΏ½[2m[WebServer] οΏ½[22m    at /home/runner/work/vibe/vibe/node_modules/οΏ½[4m@chromatic-comοΏ½[24m/storybook/node_modules/οΏ½[4mchromaticοΏ½[24m/dist/chunk-7UHX5T7X.js:56:1427
4261:  οΏ½[2m[WebServer] οΏ½[22mοΏ½[90m    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)οΏ½[39m
4262:  οΏ½[2m[WebServer] οΏ½[22m    at async zr (/home/runner/work/vibe/vibe/node_modules/οΏ½[4m@chromatic-comοΏ½[24m/storybook/node_modules/οΏ½[4mchromaticοΏ½[24m/dist/chunk-XEU6YYLS.js:365:107)
4263:  οΏ½[2m[WebServer] οΏ½[22m    at async Object.uxn (/home/runner/work/vibe/vibe/node_modules/οΏ½[4m@chromatic-comοΏ½[24m/storybook/node_modules/οΏ½[4mchromaticοΏ½[24m/dist/chunk-RVCOTHXM.js:1185:4209)
4264:  οΏ½[2m[WebServer] οΏ½[22m    at async fe (/home/runner/work/vibe/vibe/node_modules/οΏ½[4m@chromatic-comοΏ½[24m/storybook/dist/preset.js:33:8923)
4265:  οΏ½[2m[WebServer] οΏ½[22m    at async /home/runner/work/vibe/vibe/node_modules/οΏ½[4m@chromatic-comοΏ½[24m/storybook/dist/preset.js:37:293
4266:  οΏ½[2m[WebServer] οΏ½[22m    at async Ae (/home/runner/work/vibe/vibe/node_modules/οΏ½[4m@chromatic-comοΏ½[24m/storybook/dist/preset.js:34:137) {
4267:  οΏ½[2m[WebServer] οΏ½[22m  shortMessage: οΏ½[32m'Command failed with exit code 1: git config user.email'οΏ½[39m,
4268:  οΏ½[2m[WebServer] οΏ½[22m  command: οΏ½[32m'git config user.email'οΏ½[39m,
4269:  οΏ½[2m[WebServer] οΏ½[22m  escapedCommand: οΏ½[32m'git config user.email'οΏ½[39m,
4270:  οΏ½[2m[WebServer] οΏ½[22m  exitCode: οΏ½[33m1οΏ½[39m,
4271:  οΏ½[2m[WebServer] οΏ½[22m  signal: οΏ½[90mundefinedοΏ½[39m,
4272:  οΏ½[2m[WebServer] οΏ½[22m  signalDescription: οΏ½[90mundefinedοΏ½[39m,
4273:  οΏ½[2m[WebServer] οΏ½[22m  stdout: οΏ½[32m''οΏ½[39m,
4274:  οΏ½[2m[WebServer] οΏ½[22m  stderr: οΏ½[32m''οΏ½[39m,
4275:  οΏ½[2m[WebServer] οΏ½[22m  cwd: οΏ½[32m'/home/runner/work/vibe/vibe/packages/docs'οΏ½[39m,
4276:  οΏ½[2m[WebServer] οΏ½[22m  all: οΏ½[32m''οΏ½[39m,
4277:  οΏ½[2m[WebServer] οΏ½[22m  failed: οΏ½[33mtrueοΏ½[39m,
4278:  οΏ½[2m[WebServer] οΏ½[22m  timedOut: οΏ½[33mfalseοΏ½[39m,
...

5400:  οΏ½[31m✘�[39m  οΏ½[2m271 οΏ½[22mοΏ½[31m__tests__/TextField.test.ts:45:7 β€Ί Testkit - Unit Tests - TextField β€Ί should handle multiple text changesοΏ½[39mοΏ½[33m (retry #1)οΏ½[39mοΏ½[2m (33.8s)οΏ½[22m
5401:  οΏ½[2m272.1 οΏ½[22mοΏ½[31m__tests__/Steps.test.ts:140:16 β€Ί Testkit - Unit Tests - Steps β€Ί should correctly report active step index after each step change β€Ί Before Hooks β€Ί beforeEach hook β€Ί Wait for Steps to be visibleοΏ½[39mοΏ½[2m (30.1s)οΏ½[22m
5402:  οΏ½[31m✘�[39m  οΏ½[2m272 οΏ½[22mοΏ½[31m__tests__/Steps.test.ts:85:7 β€Ί Testkit - Unit Tests - Steps β€Ί should correctly report active step index after each step changeοΏ½[39mοΏ½[33m (retry #1)οΏ½[39mοΏ½[2m (34.0s)οΏ½[22m
5403:  οΏ½[2m273.1 οΏ½[22mοΏ½[31m__tests__/TextField.test.ts:140:16 β€Ί Testkit - Unit Tests - TextField β€Ί should handle empty string input β€Ί Before Hooks β€Ί beforeEach hook β€Ί Wait for TextField to be visibleοΏ½[39mοΏ½[2m (30.1s)οΏ½[22m
5404:  οΏ½[31m✘�[39m  οΏ½[2m273 οΏ½[22mοΏ½[31m__tests__/TextField.test.ts:54:7 β€Ί Testkit - Unit Tests - TextField β€Ί should handle empty string inputοΏ½[39mοΏ½[2m (34.0s)οΏ½[22m
5405:  οΏ½[2m274.1 οΏ½[22mοΏ½[31m__tests__/Steps.test.ts:140:16 β€Ί Testkit - Unit Tests - Steps β€Ί should count elements correctly β€Ί Before Hooks β€Ί beforeEach hook β€Ί Wait for Steps to be visibleοΏ½[39mοΏ½[2m (30.1s)οΏ½[22m
5406:  οΏ½[31m✘�[39m  οΏ½[2m274 οΏ½[22mοΏ½[31m__tests__/Steps.test.ts:100:7 β€Ί Testkit - Unit Tests - Steps β€Ί should count elements correctlyοΏ½[39mοΏ½[2m (33.9s)οΏ½[22m
5407:  οΏ½[2m275.1 οΏ½[22mοΏ½[31m__tests__/TextField.test.ts:140:16 β€Ί Testkit - Unit Tests - TextField β€Ί should handle empty string input β€Ί Before Hooks β€Ί beforeEach hook β€Ί Wait for TextField to be visibleοΏ½[39mοΏ½[2m (30.2s)οΏ½[22m
5408:  οΏ½[31m✘�[39m  οΏ½[2m275 οΏ½[22mοΏ½[31m__tests__/TextField.test.ts:54:7 β€Ί Testkit - Unit Tests - TextField β€Ί should handle empty string inputοΏ½[39mοΏ½[33m (retry #1)οΏ½[39mοΏ½[2m (33.7s)οΏ½[22m
5409:  οΏ½[31mTimed out waiting 3600s for the test suite to runοΏ½[39m
5410:  οΏ½[31mTimed out waiting 3600s for the teardown for test suite to runοΏ½[39m
5411:  οΏ½[2m277.1 οΏ½[22mοΏ½[31m__tests__/TextField.test.ts:140:16 β€Ί Testkit - Unit Tests - TextField β€Ί should handle special characters β€Ί Before Hooks β€Ί beforeEach hook β€Ί Wait for TextField to be visibleοΏ½[39mοΏ½[2m (6.3s)οΏ½[22m
5412:  οΏ½[31m✘�[39m  οΏ½[2m277 οΏ½[22mοΏ½[31m__tests__/TextField.test.ts:59:7 β€Ί Testkit - Unit Tests - TextField β€Ί should handle special charactersοΏ½[39mοΏ½[2m (8.6s)οΏ½[22m
5413:  οΏ½[2m276.1 οΏ½[22mοΏ½[31m__tests__/Steps.test.ts:140:16 β€Ί Testkit - Unit Tests - Steps β€Ί should count elements correctly β€Ί Before Hooks β€Ί beforeEach hook β€Ί Wait for Steps to be visibleοΏ½[39mοΏ½[2m (29.7s)οΏ½[22m
5414:  οΏ½[31m  1) __tests__/ButtonGroup.test.ts:19:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should be able to click button by name οΏ½[39m
5415:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5416:  Call log:
...

5423:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5424:  οΏ½[90m 143 |οΏ½[39m   }
5425:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5426:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5427:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5428:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5429:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5430:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-f2ff2-ble-to-click-button-by-name/video.webmοΏ½[39m
5431:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5432:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5433:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-f2ff2-ble-to-click-button-by-name/trace.zipοΏ½[39m
5434:  οΏ½[36m    Usage:οΏ½[39m
5435:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-f2ff2-ble-to-click-button-by-name/trace.zipοΏ½[39m
5436:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5437:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5438:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5439:  Call log:
...

5446:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5447:  οΏ½[90m 143 |οΏ½[39m   }
5448:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5449:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5450:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5451:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5452:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5453:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-f2ff2-ble-to-click-button-by-name-retry1/video.webmοΏ½[39m
5454:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5455:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5456:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-f2ff2-ble-to-click-button-by-name-retry1/trace.zipοΏ½[39m
5457:  οΏ½[36m    Usage:οΏ½[39m
5458:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-f2ff2-ble-to-click-button-by-name-retry1/trace.zipοΏ½[39m
5459:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5460:  οΏ½[31m  2) __tests__/ButtonGroup.test.ts:24:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should correctly identify default selected button οΏ½[39m
5461:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5462:  Call log:
...

5469:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5470:  οΏ½[90m 143 |οΏ½[39m   }
5471:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5472:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5473:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5474:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5475:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5476:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-9f156-ify-default-selected-button/video.webmοΏ½[39m
5477:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5478:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5479:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-9f156-ify-default-selected-button/trace.zipοΏ½[39m
5480:  οΏ½[36m    Usage:οΏ½[39m
5481:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-9f156-ify-default-selected-button/trace.zipοΏ½[39m
5482:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5483:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5484:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5485:  Call log:
...

5492:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5493:  οΏ½[90m 143 |οΏ½[39m   }
5494:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5495:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5496:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5497:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5498:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5499:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-9f156-ify-default-selected-button-retry1/video.webmοΏ½[39m
5500:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5501:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5502:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-9f156-ify-default-selected-button-retry1/trace.zipοΏ½[39m
5503:  οΏ½[36m    Usage:οΏ½[39m
5504:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-9f156-ify-default-selected-button-retry1/trace.zipοΏ½[39m
5505:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5506:  οΏ½[31m  3) __tests__/ButtonGroup.test.ts:28:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should return selected button name οΏ½[39m
5507:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5508:  Call log:
...

5515:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5516:  οΏ½[90m 143 |οΏ½[39m   }
5517:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5518:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5519:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5520:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5521:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5522:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-94e07-return-selected-button-name/video.webmοΏ½[39m
5523:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5524:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5525:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-94e07-return-selected-button-name/trace.zipοΏ½[39m
5526:  οΏ½[36m    Usage:οΏ½[39m
5527:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-94e07-return-selected-button-name/trace.zipοΏ½[39m
5528:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5529:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5530:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5531:  Call log:
...

5538:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5539:  οΏ½[90m 143 |οΏ½[39m   }
5540:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5541:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5542:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5543:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5544:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5545:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-94e07-return-selected-button-name-retry1/video.webmοΏ½[39m
5546:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5547:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5548:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-94e07-return-selected-button-name-retry1/trace.zipοΏ½[39m
5549:  οΏ½[36m    Usage:οΏ½[39m
5550:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-94e07-return-selected-button-name-retry1/trace.zipοΏ½[39m
5551:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5552:  οΏ½[31m  4) __tests__/ButtonGroup.test.ts:33:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should handle button selection changes οΏ½[39m
5553:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5554:  Call log:
...

5561:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5562:  οΏ½[90m 143 |οΏ½[39m   }
5563:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5564:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5565:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5566:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5567:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5568:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-475d0-le-button-selection-changes/video.webmοΏ½[39m
5569:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5570:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5571:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-475d0-le-button-selection-changes/trace.zipοΏ½[39m
5572:  οΏ½[36m    Usage:οΏ½[39m
5573:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-475d0-le-button-selection-changes/trace.zipοΏ½[39m
5574:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5575:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5576:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5577:  Call log:
...

5584:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5585:  οΏ½[90m 143 |οΏ½[39m   }
5586:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5587:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5588:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5589:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5590:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5591:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-475d0-le-button-selection-changes-retry1/video.webmοΏ½[39m
5592:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5593:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5594:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-475d0-le-button-selection-changes-retry1/trace.zipοΏ½[39m
5595:  οΏ½[36m    Usage:οΏ½[39m
5596:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-475d0-le-button-selection-changes-retry1/trace.zipοΏ½[39m
5597:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5598:  οΏ½[31m  5) __tests__/ButtonGroup.test.ts:42:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should maintain single selection οΏ½[39m
5599:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5600:  Call log:
...

5607:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5608:  οΏ½[90m 143 |οΏ½[39m   }
5609:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5610:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5611:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5612:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5613:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5614:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-07944-d-maintain-single-selection/video.webmοΏ½[39m
5615:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5616:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5617:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-07944-d-maintain-single-selection/trace.zipοΏ½[39m
5618:  οΏ½[36m    Usage:οΏ½[39m
5619:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-07944-d-maintain-single-selection/trace.zipοΏ½[39m
5620:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5621:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5622:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5623:  Call log:
...

5630:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5631:  οΏ½[90m 143 |οΏ½[39m   }
5632:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5633:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5634:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5635:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5636:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5637:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-07944-d-maintain-single-selection-retry1/video.webmοΏ½[39m
5638:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5639:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5640:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-07944-d-maintain-single-selection-retry1/trace.zipοΏ½[39m
5641:  οΏ½[36m    Usage:οΏ½[39m
5642:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-07944-d-maintain-single-selection-retry1/trace.zipοΏ½[39m
5643:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5644:  οΏ½[31m  6) __tests__/ButtonGroup.test.ts:50:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should be enabled by default οΏ½[39m
5645:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5646:  Call log:
...

5653:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5654:  οΏ½[90m 143 |οΏ½[39m   }
5655:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5656:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5657:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5658:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5659:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5660:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-7d3c9-hould-be-enabled-by-default/video.webmοΏ½[39m
5661:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5662:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5663:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-7d3c9-hould-be-enabled-by-default/trace.zipοΏ½[39m
5664:  οΏ½[36m    Usage:οΏ½[39m
5665:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-7d3c9-hould-be-enabled-by-default/trace.zipοΏ½[39m
5666:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5667:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5668:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5669:  Call log:
...

5676:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5677:  οΏ½[90m 143 |οΏ½[39m   }
5678:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5679:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5680:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5681:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5682:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5683:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-7d3c9-hould-be-enabled-by-default-retry1/video.webmοΏ½[39m
5684:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5685:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5686:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-7d3c9-hould-be-enabled-by-default-retry1/trace.zipοΏ½[39m
5687:  οΏ½[36m    Usage:οΏ½[39m
5688:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-7d3c9-hould-be-enabled-by-default-retry1/trace.zipοΏ½[39m
5689:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5690:  οΏ½[31m  7) __tests__/ButtonGroup.test.ts:54:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should be visible by default οΏ½[39m
5691:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5692:  Call log:
...

5699:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5700:  οΏ½[90m 143 |οΏ½[39m   }
5701:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5702:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5703:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5704:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5705:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5706:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-dcf50-hould-be-visible-by-default/video.webmοΏ½[39m
5707:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5708:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5709:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-dcf50-hould-be-visible-by-default/trace.zipοΏ½[39m
5710:  οΏ½[36m    Usage:οΏ½[39m
5711:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-dcf50-hould-be-visible-by-default/trace.zipοΏ½[39m
5712:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5713:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5714:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5715:  Call log:
...

5722:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5723:  οΏ½[90m 143 |οΏ½[39m   }
5724:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5725:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5726:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5727:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5728:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5729:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-dcf50-hould-be-visible-by-default-retry1/video.webmοΏ½[39m
5730:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5731:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5732:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-dcf50-hould-be-visible-by-default-retry1/trace.zipοΏ½[39m
5733:  οΏ½[36m    Usage:οΏ½[39m
5734:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-dcf50-hould-be-visible-by-default-retry1/trace.zipοΏ½[39m
5735:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5736:  οΏ½[31m  8) __tests__/ButtonGroup.test.ts:58:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should handle button clicks in sequence οΏ½[39m
5737:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5738:  Call log:
...

5745:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5746:  οΏ½[90m 143 |οΏ½[39m   }
5747:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5748:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5749:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5750:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5751:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5752:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-70f4e-e-button-clicks-in-sequence/video.webmοΏ½[39m
5753:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5754:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5755:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-70f4e-e-button-clicks-in-sequence/trace.zipοΏ½[39m
5756:  οΏ½[36m    Usage:οΏ½[39m
5757:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-70f4e-e-button-clicks-in-sequence/trace.zipοΏ½[39m
5758:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5759:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5760:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5761:  Call log:
...

5768:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5769:  οΏ½[90m 143 |οΏ½[39m   }
5770:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5771:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5772:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5773:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5774:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5775:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-70f4e-e-button-clicks-in-sequence-retry1/video.webmοΏ½[39m
5776:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5777:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5778:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-70f4e-e-button-clicks-in-sequence-retry1/trace.zipοΏ½[39m
5779:  οΏ½[36m    Usage:οΏ½[39m
5780:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-70f4e-e-button-clicks-in-sequence-retry1/trace.zipοΏ½[39m
5781:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5782:  οΏ½[31m  9) __tests__/ButtonGroup.test.ts:69:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should count elements correctly οΏ½[39m
5783:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5784:  Call log:
...

5791:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5792:  οΏ½[90m 143 |οΏ½[39m   }
5793:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5794:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5795:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5796:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5797:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5798:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-0a5b3-ld-count-elements-correctly/video.webmοΏ½[39m
5799:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5800:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5801:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-0a5b3-ld-count-elements-correctly/trace.zipοΏ½[39m
5802:  οΏ½[36m    Usage:οΏ½[39m
5803:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-0a5b3-ld-count-elements-correctly/trace.zipοΏ½[39m
5804:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5805:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5806:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5807:  Call log:
...

5814:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5815:  οΏ½[90m 143 |οΏ½[39m   }
5816:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5817:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5818:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5819:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5820:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5821:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-0a5b3-ld-count-elements-correctly-retry1/video.webmοΏ½[39m
5822:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5823:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5824:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-0a5b3-ld-count-elements-correctly-retry1/trace.zipοΏ½[39m
5825:  οΏ½[36m    Usage:οΏ½[39m
5826:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-0a5b3-ld-count-elements-correctly-retry1/trace.zipοΏ½[39m
5827:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5828:  οΏ½[31m  10) __tests__/ButtonGroup.test.ts:74:7 β€Ί Testkit - Unit Tests - ButtonGroup β€Ί should handle attribute retrieval οΏ½[39m
5829:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5830:  Call log:
...

5837:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5838:  οΏ½[90m 143 |οΏ½[39m   }
5839:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5840:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5841:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5842:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5843:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5844:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-6d415--handle-attribute-retrieval/video.webmοΏ½[39m
5845:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5846:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5847:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-6d415--handle-attribute-retrieval/trace.zipοΏ½[39m
5848:  οΏ½[36m    Usage:οΏ½[39m
5849:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-6d415--handle-attribute-retrieval/trace.zipοΏ½[39m
5850:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5851:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5852:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5853:  Call log:
...

5860:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5861:  οΏ½[90m 143 |οΏ½[39m   }
5862:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5863:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5864:  οΏ½[2m    at ButtonGroup.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5865:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/ButtonGroup.test.ts:16:23οΏ½[22m
5866:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5867:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-6d415--handle-attribute-retrieval-retry1/video.webmοΏ½[39m
5868:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5869:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5870:  οΏ½[36m    test-results/__tests__-ButtonGroup-Test-6d415--handle-attribute-retrieval-retry1/trace.zipοΏ½[39m
5871:  οΏ½[36m    Usage:οΏ½[39m
5872:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-ButtonGroup-Test-6d415--handle-attribute-retrieval-retry1/trace.zipοΏ½[39m
5873:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5874:  οΏ½[31m  11) __tests__/Checkbox.test.ts:19:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί Checkbox should be initially checked οΏ½[39m
5875:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5876:  Call log:
...

5883:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5884:  οΏ½[90m 143 |οΏ½[39m   }
5885:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5886:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5887:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5888:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
5889:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5890:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-a9ad6-should-be-initially-checked/video.webmοΏ½[39m
5891:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5892:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5893:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-a9ad6-should-be-initially-checked/trace.zipοΏ½[39m
5894:  οΏ½[36m    Usage:οΏ½[39m
5895:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-a9ad6-should-be-initially-checked/trace.zipοΏ½[39m
5896:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5897:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5898:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5899:  Call log:
...

5906:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5907:  οΏ½[90m 143 |οΏ½[39m   }
5908:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5909:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5910:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5911:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
5912:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5913:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-a9ad6-should-be-initially-checked-retry1/video.webmοΏ½[39m
5914:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5915:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5916:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-a9ad6-should-be-initially-checked-retry1/trace.zipοΏ½[39m
5917:  οΏ½[36m    Usage:οΏ½[39m
5918:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-a9ad6-should-be-initially-checked-retry1/trace.zipοΏ½[39m
5919:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5920:  οΏ½[31m  12) __tests__/Checkbox.test.ts:23:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί Checkbox should be able to be unchecked οΏ½[39m
5921:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5922:  Call log:
...

5929:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5930:  οΏ½[90m 143 |οΏ½[39m   }
5931:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5932:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5933:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5934:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
5935:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5936:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-02f45-uld-be-able-to-be-unchecked/video.webmοΏ½[39m
5937:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5938:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5939:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-02f45-uld-be-able-to-be-unchecked/trace.zipοΏ½[39m
5940:  οΏ½[36m    Usage:οΏ½[39m
5941:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-02f45-uld-be-able-to-be-unchecked/trace.zipοΏ½[39m
5942:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5943:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5944:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5945:  Call log:
...

5952:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5953:  οΏ½[90m 143 |οΏ½[39m   }
5954:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5955:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5956:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5957:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
5958:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5959:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-02f45-uld-be-able-to-be-unchecked-retry1/video.webmοΏ½[39m
5960:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5961:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5962:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-02f45-uld-be-able-to-be-unchecked-retry1/trace.zipοΏ½[39m
5963:  οΏ½[36m    Usage:οΏ½[39m
5964:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-02f45-uld-be-able-to-be-unchecked-retry1/trace.zipοΏ½[39m
5965:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5966:  οΏ½[31m  13) __tests__/Checkbox.test.ts:28:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί Checkbox should be able to be checked after being unchecked οΏ½[39m
5967:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5968:  Call log:
...

5975:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5976:  οΏ½[90m 143 |οΏ½[39m   }
5977:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
5978:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
5979:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
5980:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
5981:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
5982:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-b5439-ecked-after-being-unchecked/video.webmοΏ½[39m
5983:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5984:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
5985:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-b5439-ecked-after-being-unchecked/trace.zipοΏ½[39m
5986:  οΏ½[36m    Usage:οΏ½[39m
5987:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-b5439-ecked-after-being-unchecked/trace.zipοΏ½[39m
5988:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5989:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
5990:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
5991:  Call log:
...

5998:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
5999:  οΏ½[90m 143 |οΏ½[39m   }
6000:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6001:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6002:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6003:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6004:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6005:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-b5439-ecked-after-being-unchecked-retry1/video.webmοΏ½[39m
6006:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6007:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6008:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-b5439-ecked-after-being-unchecked-retry1/trace.zipοΏ½[39m
6009:  οΏ½[36m    Usage:οΏ½[39m
6010:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-b5439-ecked-after-being-unchecked-retry1/trace.zipοΏ½[39m
6011:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6012:  οΏ½[31m  14) __tests__/Checkbox.test.ts:35:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί Checkbox should return its label text οΏ½[39m
6013:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6014:  Call log:
...

6021:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6022:  οΏ½[90m 143 |οΏ½[39m   }
6023:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6024:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6025:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6026:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6027:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6028:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-0b386-hould-return-its-label-text/video.webmοΏ½[39m
6029:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6030:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6031:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-0b386-hould-return-its-label-text/trace.zipοΏ½[39m
6032:  οΏ½[36m    Usage:οΏ½[39m
6033:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-0b386-hould-return-its-label-text/trace.zipοΏ½[39m
6034:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6035:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6036:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6037:  Call log:
...

6044:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6045:  οΏ½[90m 143 |οΏ½[39m   }
6046:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6047:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6048:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6049:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6050:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6051:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-0b386-hould-return-its-label-text-retry1/video.webmοΏ½[39m
6052:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6053:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6054:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-0b386-hould-return-its-label-text-retry1/trace.zipοΏ½[39m
6055:  οΏ½[36m    Usage:οΏ½[39m
6056:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-0b386-hould-return-its-label-text-retry1/trace.zipοΏ½[39m
6057:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6058:  οΏ½[31m  15) __tests__/Checkbox.test.ts:42:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί Checkbox should toggle correctly with multiple check/uncheck operations οΏ½[39m
6059:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6060:  Call log:
...

6067:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6068:  οΏ½[90m 143 |οΏ½[39m   }
6069:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6070:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6071:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6072:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6073:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6074:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-06dda-le-check-uncheck-operations/video.webmοΏ½[39m
6075:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6076:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6077:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-06dda-le-check-uncheck-operations/trace.zipοΏ½[39m
6078:  οΏ½[36m    Usage:οΏ½[39m
6079:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-06dda-le-check-uncheck-operations/trace.zipοΏ½[39m
6080:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6081:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6082:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6083:  Call log:
...

6090:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6091:  οΏ½[90m 143 |οΏ½[39m   }
6092:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6093:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6094:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6095:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6096:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6097:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-06dda-le-check-uncheck-operations-retry1/video.webmοΏ½[39m
6098:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6099:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6100:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-06dda-le-check-uncheck-operations-retry1/trace.zipοΏ½[39m
6101:  οΏ½[36m    Usage:οΏ½[39m
6102:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-06dda-le-check-uncheck-operations-retry1/trace.zipοΏ½[39m
6103:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6104:  οΏ½[31m  16) __tests__/Checkbox.test.ts:52:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί Checkbox should be enabled by default οΏ½[39m
6105:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6106:  Call log:
...

6113:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6114:  οΏ½[90m 143 |οΏ½[39m   }
6115:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6116:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6117:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6118:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6119:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6120:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-6f222-hould-be-enabled-by-default/video.webmοΏ½[39m
6121:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6122:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6123:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-6f222-hould-be-enabled-by-default/trace.zipοΏ½[39m
6124:  οΏ½[36m    Usage:οΏ½[39m
6125:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-6f222-hould-be-enabled-by-default/trace.zipοΏ½[39m
6126:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6127:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6128:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6129:  Call log:
...

6136:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6137:  οΏ½[90m 143 |οΏ½[39m   }
6138:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6139:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6140:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6141:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6142:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6143:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-6f222-hould-be-enabled-by-default-retry1/video.webmοΏ½[39m
6144:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6145:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6146:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-6f222-hould-be-enabled-by-default-retry1/trace.zipοΏ½[39m
6147:  οΏ½[36m    Usage:οΏ½[39m
6148:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-6f222-hould-be-enabled-by-default-retry1/trace.zipοΏ½[39m
6149:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6150:  οΏ½[31m  17) __tests__/Checkbox.test.ts:56:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί Checkbox should be visible by default οΏ½[39m
6151:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6152:  Call log:
...

6159:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6160:  οΏ½[90m 143 |οΏ½[39m   }
6161:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6162:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6163:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6164:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6165:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6166:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-7c5d4-hould-be-visible-by-default/video.webmοΏ½[39m
6167:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6168:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6169:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-7c5d4-hould-be-visible-by-default/trace.zipοΏ½[39m
6170:  οΏ½[36m    Usage:οΏ½[39m
6171:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-7c5d4-hould-be-visible-by-default/trace.zipοΏ½[39m
6172:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6173:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6174:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6175:  Call log:
...

6182:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6183:  οΏ½[90m 143 |οΏ½[39m   }
6184:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6185:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6186:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6187:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6188:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6189:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-7c5d4-hould-be-visible-by-default-retry1/video.webmοΏ½[39m
6190:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6191:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6192:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-7c5d4-hould-be-visible-by-default-retry1/trace.zipοΏ½[39m
6193:  οΏ½[36m    Usage:οΏ½[39m
6194:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-7c5d4-hould-be-visible-by-default-retry1/trace.zipοΏ½[39m
6195:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6196:  οΏ½[31m  18) __tests__/Checkbox.test.ts:60:7 β€Ί Testkit - Unit Tests - Checkbox β€Ί should count elements correctly οΏ½[39m
6197:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6198:  Call log:
...

6205:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6206:  οΏ½[90m 143 |οΏ½[39m   }
6207:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
6208:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:141:31οΏ½[22m
6209:  οΏ½[2m    at Checkbox.waitForElementToBeVisible (/home/runner/work/vibe/vibe/packages/testkit/components/BaseElement.ts:140:16)οΏ½[22m
6210:  οΏ½[2m    at /home/runner/work/vibe/vibe/packages/testkit/__tests__/Checkbox.test.ts:16:20οΏ½[22m
6211:  οΏ½[36m    attachment #1: video (video/webm) οΏ½[2m──────────────────────────────────────────────────────────────�[22mοΏ½[39m
6212:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-e76c1-ld-count-elements-correctly/video.webmοΏ½[39m
6213:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6214:  οΏ½[36m    attachment #2: trace (application/zip) οΏ½[2m─────────────────────────────────────────────────────────�[22mοΏ½[39m
6215:  οΏ½[36m    test-results/__tests__-Checkbox-Testkit-e76c1-ld-count-elements-correctly/trace.zipοΏ½[39m
6216:  οΏ½[36m    Usage:οΏ½[39m
6217:  οΏ½[36m        yarn playwright show-trace test-results/__tests__-Checkbox-Testkit-e76c1-ld-count-elements-correctly/trace.zipοΏ½[39m
6218:  οΏ½[36m    οΏ½[2m────────────────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6219:  οΏ½[90m    Retry #1 οΏ½[2m───────────────────────────────────────────────────────────────────────────────────────�[22mοΏ½[39m
6220:  TimeoutError: locator.waitFor: Timeout 30000ms exceeded.
6221:  Call log:
...

6228:  οΏ½[90m 142 |οΏ½[39m     })οΏ½[33m;οΏ½[39m
6229:  οΏ½[90m 143 |οΏ½[39m   }
6230:  οΏ½[90m 144 |οΏ½[39mοΏ½[0m
...

@rivka-ungar rivka-ungar merged commit 49187f2 into vibe4 Mar 12, 2026
11 of 12 checks passed
@rivka-ungar rivka-ungar deleted the feat/mcp-promoted-component-detection branch March 12, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants