Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
86758b2
feat(test): migrate from `jest` to `vitest`
setchy Feb 15, 2026
dc5d4a0
feat(test): migrate from `jest` to `vitest`
setchy Feb 15, 2026
c14f109
feat(test): migrate from `jest` to `vitest`
setchy Feb 15, 2026
1c2ed7e
feat(test): migrate from `jest` to `vitest`
setchy Feb 15, 2026
52b9c71
feat(test): migrate from `jest` to `vitest`
setchy Feb 15, 2026
49d8d45
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
1d02e73
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
78a3633
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
1e933fe
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
75e9724
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
741461c
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
5200095
Merge branch 'main' into feat/jest-to-vitest
setchy Feb 16, 2026
90ccb2b
Merge branch 'main' into feat/jest-to-vitest
setchy Feb 16, 2026
8aa7011
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
dd783be
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
87e1327
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
f051cf7
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
07d6545
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
01aeaab
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
ecabecb
feat(test): migrate from `jest` to `vitest`
setchy Feb 16, 2026
fe19fd8
Merge branch 'main' into feat/jest-to-vitest
setchy Feb 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,10 @@ Gitify is a Node.js/Electron desktop application that displays GitHub notificati
- **Run TypeScript compilation check**:
- `pnpm tsc --noEmit` -- takes 5 seconds. NEVER CANCEL. Set timeout to 10+ minutes.
- **Run unit tests**:
- `pnpm test` -- takes 67 seconds. NEVER CANCEL. Set timeout to 30+ minutes.
- Uses Jest with jsdom environment
- `pnpm test` -- takes 35 seconds. NEVER CANCEL. Set timeout to 30+ minutes.
- Uses Vitest with happy-dom environment
- NOTE: Some existing snapshot tests may fail but still return success - this is normal
- Update snapshots after legitimate UI changes with `pnpm test -u`
- **Run tests with coverage** (CI format):
- `pnpm test --verbose`

## Validation Scenarios

Expand Down Expand Up @@ -96,7 +94,7 @@ Warnings are acceptable - the important part is that it completes successfully.
### Configuration Files
- **package.json**: Main project configuration and scripts
- **biome.json**: Linting and formatting rules
- **jest.config.ts**: Test configuration
- **vitest.config.ts**: Test configuration
- **tsconfig.json**: TypeScript configuration
- **tailwind.config.ts**: CSS framework configuration

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
run: pnpm tsc --noEmit

- name: Run tests with coverage
run: pnpm test:coverage --verbose
run: pnpm test

- name: Archive code coverage results
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
Expand Down
3 changes: 2 additions & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"bradlc.vscode-tailwindcss",
"GraphQL.vscode-graphql",
"GraphQL.vscode-graphql-syntax",
"SonarSource.sonarlint-vscode"
"SonarSource.sonarlint-vscode",
"vitest.explorer"
]
}
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
"connectionId": "gitify-app",
"projectKey": "gitify-app_gitify"
},
"jest.runMode": "on-save"
// Disable Jest extension - this project uses Vitest
"jest.enable": false
}
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ To reload the app with the changes that `pnpm watch` has detected, you can use t

There are 2 checks:
1. linter & formatter with [biome][biome-website]
2. unit tests with [jest][jest-website]
2. unit tests with [jvitestt][vitest-website]

```shell
# Run biome to check linting and formatting
Expand All @@ -50,7 +50,7 @@ pnpm lint:check
# Run unit tests with coverage
pnpm test

# Update jest snapshots
# Update vitest snapshots
pnpm test -u
```

Expand Down Expand Up @@ -100,5 +100,5 @@ This project is a tool for monitoring new notifications from GitHub. It's not me
[github-new-release]: https://github.com/gitify-app/gitify/releases/new
[github-octicons]: https://primer.style/foundations/icons
[homebrew-cask-autobump-workflow]: https://github.com/Homebrew/homebrew-cask/actions/workflows/autobump.yml
[jest-website]: https://jestjs.io/
[vitest-website]: https://vitest.dev/

53 changes: 0 additions & 53 deletions jest.config.ts

This file was deleted.

28 changes: 14 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
"main": "build/main.js",
"scripts": {
"clean": "rimraf build coverage dist node_modules",
"prepare": "husky",
"build": "concurrently --names \"main,preload,renderer\" --prefix-colors \"blue,magenta,green\" \"pnpm build:main\" \"pnpm build:preload\" \"pnpm build:renderer\"",
"build:main": "webpack --config ./config/webpack.config.main.prod.ts",
"build:preload": "webpack --config ./config/webpack.config.preload.prod.ts",
"build:renderer": "webpack --config ./config/webpack.config.renderer.prod.ts",
"codegen": "graphql-codegen --config codegen.ts",
"watch": "concurrently --names \"main,preload,renderer,codegen\" --prefix-colors \"blue,magenta,green,cyan\" \"pnpm watch:main\" \"pnpm watch:preload\" \"pnpm watch:renderer\" \"pnpm watch:codegen\"",
"watch:codegen": "pnpm codegen --watch",
"watch:main": "webpack --watch --config ./config/webpack.config.main.base.ts",
Expand All @@ -20,13 +22,10 @@
"package:win": "electron-builder --win --config ./config/electron-builder.js",
"lint:check": "biome check",
"lint": "biome check --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:changed": "jest --onlyChanged",
"test:coverage": "jest --coverage",
"start": "electron . --enable-logging",
"prepare": "husky",
"codegen": "graphql-codegen --config codegen.ts"
"test": "vitest --coverage --run",
"test:watch": "vitest --watch --coverage",
"test:ui": "vitest --ui",
"start": "electron . --enable-logging"
},
"engines": {
"node": ">=24"
Expand Down Expand Up @@ -103,13 +102,14 @@
"@testing-library/jest-dom": "6.9.1",
"@testing-library/react": "16.3.2",
"@testing-library/user-event": "14.6.1",
"@types/jest": "30.0.0",
"@types/node": "24.10.13",
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"@types/react-router-dom": "5.3.3",
"@types/semver": "7.7.1",
"babel-jest": "30.2.0",
"@vitejs/plugin-react-swc": "4.2.3",
"@vitest/coverage-v8": "4.0.18",
"@vitest/ui": "4.0.18",
"clsx": "2.1.1",
"concurrently": "9.2.1",
"copy-webpack-plugin": "13.0.1",
Expand All @@ -122,10 +122,8 @@
"final-form": "5.0.0",
"graphql": "16.12.0",
"html-webpack-plugin": "5.6.6",
"happy-dom": "20.6.1",
"husky": "9.1.7",
"identity-obj-proxy": "3.0.0",
"jest": "30.2.0",
"jest-environment-jsdom": "30.2.0",
"mini-css-extract-plugin": "2.10.0",
"postcss": "8.5.6",
"postcss-loader": "8.2.0",
Expand All @@ -135,10 +133,10 @@
"tailwind-merge": "3.4.0",
"tailwindcss": "4.1.18",
"terser-webpack-plugin": "5.3.16",
"ts-jest": "29.4.6",
"ts-loader": "9.5.4",
"ts-node": "10.9.2",
"typescript": "5.9.3",
"vitest": "4.0.18",
"webpack": "5.104.1",
"webpack-cli": "6.0.1",
"webpack-merge": "6.0.1"
Expand All @@ -148,13 +146,15 @@
"onlyBuiltDependencies": [
"@biomejs/biome",
"@parcel/watcher",
"@swc/core",
"@tailwindcss/oxide",
"electron",
"esbuild",
"unrs-resolver"
]
},
"lint-staged": {
"*": "biome check --no-errors-on-unmatched",
"*.{js,ts,tsx}": "pnpm test:changed --passWithNoTests --updateSnapshot"
"*.{js,ts,tsx}": "pnpm test --changed --passWithNoTests --update"
}
}
Loading