---
name: fixing-skipped-tests
description: Use this skill when unskipping a test that was previously skipped.
---
# Fixing Skipped Tests

This skill outlines the workflow for fixing skipped tests in the DevTools codebase, typically given a Chromium bug link (e.g., `crbug.com/1234567`).

## Workflow

1. **Extract the Bug ID**
   - The input is typically a bug link like `crbug.com/<bugid>`. Extract the `<bugid>` from the link.

2. **Create a Branch**
   - Create a new branch named `fixed-<bugid>`.
   - Ensure you use the instructions from the `devtools-version-control` skill to create and switch branches appropriately.

3. **Search for the Skipped Tests**
   - Search the codebase for the `<bugid>` to find skipped tests.
   - You should look for occurrences like `it.skip('[crbug.com/<bugid>] ...', ...)` or skipped describes that mention the bug ID.

4. **Iterative Fix Process**
   - **Step 1:** Remove `it.skip` or `describe.skip` for *one* of the tests associated with the bug.
   - **Step 2:** Re-run the specific test using its exact test ID (e.g., `npm run test path/to/foo.test.ts:test_name`) using the guidelines from the `devtools-verification` skill. If you are dealing with flaky tests, you can use the `--repeat=x` flag (e.g. `npm run test -- --repeat=20 path/to/foo.test.ts:test_name`) to run the test multiple times to reproduce the flakiness. This flag works for both E2E and unit tests.
   - **Step 3:** Analyze the test failure and make the necessary fixes to the code or the test itself.
   - **Step 4:** Re-run the test to ensure the fix is correct.
   - **Step 5:** Remove the `[crbug.com/<bugid>]` prefix from the test name string if it is present.
   - **Step 6:** Remove any comments directly above the test that explain the reason why the test was skipped (e.g., `// TODO(crbug...): Flaky`).
   - **Step 7:** Apply the fix to the remaining tests, un-skipping them one by one or in batches, and verifying until all are passing.

5. **Verify Full Build**
   - Before finishing, run the full verification process (TypeScript checks, linters, full test run) as required by the repository best practices.
