Skip to content

🧪 test: improve getFileIconColor edge-case handling and add unit tests - #12

Open
beingniloy wants to merge 1 commit into
mainfrom
jules-7433813977281215123-19062e50
Open

🧪 test: improve getFileIconColor edge-case handling and add unit tests#12
beingniloy wants to merge 1 commit into
mainfrom
jules-7433813977281215123-19062e50

Conversation

@beingniloy

Copy link
Copy Markdown
Owner

This PR addresses a testing gap in the getFileIconColor utility by refactoring the function to handle complex and tricky filenames, and adding a comprehensive suite of unit tests.

🎯 What

  • Refactored getFileIconColor in src/utils.ts to properly identify file extensions for:
    • Files with multiple dots (e.g. test.spec.js)
    • Case-insensitive extensions (e.g. index.HTML)
    • Dotfiles without an extension (e.g. .gitignore) or with an extension (e.g. .eslintrc.json)
    • No extension files (e.g. LICENSE)
    • Filenames with trailing dots (e.g. filename.)
    • Empty or whitespace-only inputs
  • Introduced src/utils.test.ts using Node's native test runner and tsx.
  • Configured a new "test" script in package.json.

📊 Coverage

The new tests cover:

  • Standard extensions
  • Case insensitivity
  • Filenames with multiple dots
  • Filenames with no extensions
  • Complex edge cases (e.g., dotfiles, trailing dots, and empty/whitespace inputs)
  • Unknown extensions

✨ Result

We now have reliable, repeatable unit test execution that verifies the robustness of filename-to-color mapping in the editor tree.


PR created automatically by Jules for task 7433813977281215123 started by @beingniloy

- Implemented comprehensive edge case handling in `getFileIconColor` for dotfiles, multiple dots, trailing dots, empty/whitespace inputs, and case-insensitivity.
- Added full suite of unit tests in `src/utils.test.ts` utilizing Node's native test runner with `tsx`.
- Integrated `pnpm test` into `package.json` scripts.

Co-authored-by: beingniloy <235952944+beingniloy@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

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.

1 participant