-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(nuxt): typecheck on hooks and ci #832
Conversation
Important Review skippedReview was skipped as selected files did not have any reviewable changes. Files selected but had no reviewable changes (1)
You can disable this status message by setting the WalkthroughThis pull request introduces several enhancements to the codebase, primarily focusing on type-checking integration within the development workflow. A new type-checking step is added to the GitHub Actions workflow, along with modifications to pre-commit hooks and TypeScript type definitions across various components. Additionally, tests are updated to ensure robustness against undefined values. These changes aim to improve code quality and maintainability throughout the project. Changes
Possibly related PRs
Suggested labels🚀 feature Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
Tip Early access features: enabledWe are currently testing the following features in early access:
Note:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Outside diff range, codebase verification and nitpick comments (3)
app/components/shared/game/game-event/GameEventWithTexts/game-event-with-texts.types.ts (1)
6-6
: Issues found withgameEventTextChange
type updateThe type change from
string | undefined
tostring
forgameEventTextChange
is not fully reflected across the codebase. There are test cases that still emitundefined
, and the type definition ingame-event-texts-manager.types.ts
remains unchanged, allowingundefined
. This inconsistency suggests that the broader impact of the type change has not been fully addressed.
- Test Case:
tests/unit/specs/components/shared/game/game-event/GameEventWithTexts/GameEventWithTexts.nuxt.spec.ts
emitsundefined
.- Type Definition:
app/components/shared/game/game-event/GameEventWithTexts/GameEventTextsManager/game-event-texts-manager.types.ts
still allowsstring | undefined
.Please ensure all components and tests are updated to align with the new type definition.
Analysis chain
Approved change with a suggestion to verify broader impact.
The change from
string | undefined
tostring
forgameEventTextChange
enforces stricter type safety. However, it's crucial to verify that all components emitting this event are updated accordingly to ensure they do not passundefined
.Run the following script to verify the usage of
gameEventTextChange
:Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all components emitting `gameEventTextChange` are updated. # Test: Search for the event usage. Expect: No occurrences of passing `undefined`. rg --type ts -A 5 $'gameEventTextChange'Length of output: 3586
.husky/pre-commit (1)
5-5
: Approved addition with a suggestion for optimization.The inclusion of
npm run typecheck;
in the pre-commit hook is a positive step towards enhancing type safety. Ensure that the typecheck script is optimized for pre-commit usage to avoid significant delays in the commit process.Consider optimizing the typecheck script to run only on staged files to reduce the execution time during pre-commit.
.run/Typecheck.run.xml (1)
1-13
: Approved configuration with a suggestion for documentation.The new
Typecheck.run.xml
configuration is well-structured and supports the project's integration of type checking. It's advisable to document the choice ofpnpm
as the package manager, especially if it differs from what is used elsewhere in the project.Document the rationale behind using
pnpm
for this configuration to ensure clarity for all project contributors.
Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Files selected for processing (10)
- .github/workflows/build.yml (1 hunks)
- .husky/commit-msg (1 hunks)
- .husky/pre-commit (1 hunks)
- .run/Typecheck.run.xml (1 hunks)
- app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameEventsMonitorCurrentEvent.vue (2 hunks)
- app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameTurnStartsEvent/GameThiefTurnStartsEvent/GameThiefTurnStartsEvent.vue (1 hunks)
- app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types.ts (1 hunks)
- app/components/shared/game/game-event/GameEventWithTexts/game-event-with-texts.types.ts (1 hunks)
- package.json (2 hunks)
- tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameTurnStartsEvent/GameThiefTurnStartsEvent/GameThiefTurnStartsEvent.nuxt.spec.ts (1 hunks)
Files skipped from review due to trivial changes (2)
- .husky/commit-msg
- app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types.ts
Additional comments not posted (5)
app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameTurnStartsEvent/GameThiefTurnStartsEvent/GameThiefTurnStartsEvent.vue (1)
25-30
: Improved robustness in computed property.The addition of a conditional check to ensure
additionalCards
is defined before filtering enhances the robustness of the component. This change prevents potential runtime errors from attempting to access properties onundefined
.tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameTurnStartsEvent/GameThiefTurnStartsEvent/GameThiefTurnStartsEvent.nuxt.spec.ts (1)
80-93
: Enhanced test coverage for edge cases.The new test case effectively verifies the component's behavior when
additionalCards
is undefined, ensuring that it handles this edge case correctly. This addition is crucial for maintaining robust test coverage and preventing regressions.app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameEventsMonitorCurrentEvent.vue (1)
24-24
: Refactored type definitions for flexibility.The changes to use a more generic
Component
type from Vue instead of a specific event type component increase the flexibility of component handling. This approach allows for a broader range of components to be utilized within the game event monitoring logic, although it may slightly reduce type specificity.Also applies to: 51-52
.github/workflows/build.yml (1)
107-109
: Approval: Type check step added correctly.The addition of the "Type check 🪨" step in the GitHub Actions workflow is correctly implemented and well-placed to ensure type safety before the build process begins. The use of
pnpm run typecheck
aligns with the new script command added inpackage.json
.package.json (1)
35-35
: Approval: New typecheck script added correctly.The addition of the
"typecheck": "nuxt typecheck"
command in thescripts
section ofpackage.json
is correctly implemented. This script enhances the development workflow by providing a straightforward tool for type safety checks.
Quality Gate passedIssues Measures |
## [1.32.0](v1.31.0...v1.32.0) (2024-09-18) ### 🚀 Features * **audio:** audio settings in local storage ([#831](#831)) ([cd8a2cb](cd8a2cb)) * **game-lobby:** all game lobby is responsive ([#877](#877)) ([aaccf38](aaccf38)) * **game-lobby:** auto-focus on player name input ([#860](#860)) ([7897da3](7897da3)) * **game-lobby:** auto-focus on player name input even after changing page ([#873](#873)) ([3bb8401](3bb8401)) * **game-lobby:** display disclaimer for small screens ([#853](#853)) ([81029b8](81029b8)) * **game-lobby:** game options confirm step in lobby ([#845](#845)) ([20cc2ce](20cc2ce)) * **game:** all game screens are responsive ([#880](#880)) ([b54b1dc](b54b1dc)) * **game:** game over screens are responsive ([#883](#883)) ([aacb761](aacb761)) * **misc-pages:** responsive for canceled game and not found game pages ([#888](#888)) ([deeb7b2](deeb7b2)) * **nuxt:** set route announcer ([#835](#835)) ([dd1115f](dd1115f)) * **nuxt:** typecheck on hooks and ci ([#832](#832)) ([794157f](794157f)) ### 🐛 Bug Fixes * **deps:** update dependency @primevue/themes to ^4.0.6 ([#842](#842)) ([4d3e063](4d3e063)) * **deps:** update dependency @primevue/themes to ^4.0.7 ([#855](#855)) ([2b80485](2b80485)) * **deps:** update dependency primevue to ^4.0.6 ([#843](#843)) ([3a20f01](3a20f01)) * **deps:** update dependency primevue to ^4.0.7 ([#856](#856)) ([6c75a61](6c75a61)) * **game-events:** icon animation null instance handler ([#889](#889)) ([ee0a17e](ee0a17e)) * **pwa:** remove redirect fallback ([#830](#830)) ([69c2c21](69c2c21)) ### 🔩 Refactor * **primevue:** use new accordion component ([#834](#834)) ([f611995](f611995)) * **primevue:** use new tab components ([#836](#836)) ([4f9c1b9](4f9c1b9)) ### ✅ Tests * **scapegoat:** acceptance tests ([#884](#884)) ([add895e](add895e)) ### 🔁 CI * **node:** use last node version in ci ([#848](#848)) ([aa047b3](aa047b3)) ### 🧹 Chore * **deps:** update commitlint monorepo to ^19.5.0 ([#852](#852)) ([cefe4af](cefe4af)) * **deps:** update dependency @cucumber/cucumber to ^11.0.1 ([#869](#869)) ([c00d3e7](c00d3e7)) * **deps:** update dependency @cucumber/cucumber to v11 ([#817](#817)) ([dcbad46](dcbad46)) * **deps:** update dependency @faker-js/faker to ^9.0.1 ([#870](#870)) ([da15f7c](da15f7c)) * **deps:** update dependency @nuxt/test-utils to ^3.14.2 ([#846](#846)) ([f0f715a](f0f715a)) * **deps:** update dependency @nuxtjs/i18n to ^8.5.2 ([#764](#764)) ([0fe9bf0](0fe9bf0)) * **deps:** update dependency @nuxtjs/i18n to ^8.5.3 ([#849](#849)) ([1689312](1689312)) * **deps:** update dependency @nuxtjs/robots to ^4.1.7 ([#861](#861)) ([4cf88c8](4cf88c8)) * **deps:** update dependency @primevue/nuxt-module to ^4.0.6 ([#841](#841)) ([7384c1e](7384c1e)) * **deps:** update dependency @primevue/nuxt-module to ^4.0.7 ([#854](#854)) ([22c3f4a](22c3f4a)) * **deps:** update dependency @stylistic/eslint-plugin to ^2.8.0 ([#838](#838)) ([1c15410](1c15410)) * **deps:** update dependency @types/qs to ^6.9.16 ([#868](#868)) ([8560a5d](8560a5d)) * **deps:** update dependency @vueuse/core to ^11.1.0 ([#875](#875)) ([b568680](b568680)) * **deps:** update dependency @vueuse/nuxt to ^11.1.0 ([#876](#876)) ([0f358b6](0f358b6)) * **deps:** update dependency circle-progress.vue to ^3.2.2 ([#878](#878)) ([4cd09ac](4cd09ac)) * **deps:** update dependency husky to ^9.1.6 ([#858](#858)) ([03b278b](03b278b)) * **deps:** update dependency msw to ^2.4.3 ([#827](#827)) ([6cd07ef](6cd07ef)) * **deps:** update dependency msw to ^2.4.4 ([#833](#833)) ([44814db](44814db)) * **deps:** update dependency msw to ^2.4.5 ([#850](#850)) ([773674a](773674a)) * **deps:** update dependency msw to ^2.4.6 ([#864](#864)) ([93b4a45](93b4a45)) * **deps:** update dependency msw to ^2.4.7 ([#871](#871)) ([b6cef68](b6cef68)) * **deps:** update dependency msw to ^2.4.8 ([#882](#882)) ([96d9d56](96d9d56)) * **deps:** update dependency node to v22.9.0 ([#886](#886)) ([8f28e99](8f28e99)) * **deps:** update dependency sass to ^1.79.1 ([#887](#887)) ([02e728a](02e728a)) * **deps:** update dependency semantic-release to ^24.1.1 ([#851](#851)) ([9a5d974](9a5d974)) * **deps:** update dependency tailwindcss to ^3.4.11 ([#857](#857)) ([74668ab](74668ab)) * **deps:** update dependency tailwindcss to ^3.4.12 ([#885](#885)) ([b2d182d](b2d182d)) * **deps:** update dependency tsx to ^4.19.1 ([#859](#859)) ([6e771c3](6e771c3)) * **deps:** update dependency type-fest to ^4.26.1 ([#829](#829)) ([7b715fd](7b715fd)) * **deps:** update dependency typescript to ^5.6.2 ([#839](#839)) ([69b99b1](69b99b1)) * **deps:** update dependency vue to ^3.5.4 ([#844](#844)) ([09fd254](09fd254)) * **deps:** update dependency vue to ^3.5.5 ([#865](#865)) ([13ae2b7](13ae2b7)) * **deps:** update dependency vue to ^3.5.6 ([#874](#874)) ([77302a2](77302a2)) * **deps:** update dependency vue-router to ^4.4.4 ([#847](#847)) ([23430aa](23430aa)) * **deps:** update dependency vue-router to ^4.4.5 ([#863](#863)) ([28a6c29](28a6c29)) * **deps:** update nuxtjs monorepo to ^3.13.2 ([#872](#872)) ([28e0e43](28e0e43)) * **deps:** update playwright monorepo to ^1.47.1 ([#866](#866)) ([ae9e014](ae9e014)) * **deps:** update pnpm to v9.10.0 ([#837](#837)) ([05be262](05be262)) * **deps:** update typescript-eslint monorepo to ^8.5.0 ([#840](#840)) ([b230013](b230013)) * **deps:** update typescript-eslint monorepo to ^8.6.0 ([#881](#881)) ([c291635](c291635)) * **deps:** update vitest monorepo to ^2.1.0 ([#862](#862)) ([b25b312](b25b312)) * **deps:** update vitest monorepo to ^2.1.1 ([#867](#867)) ([a1ad2f8](a1ad2f8)) * **screenshots:** missing screenshots for linux ([8bfa635](8bfa635))
🎉 This PR is included in version 1.32.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary by CodeRabbit
New Features
Bug Fixes
GameThiefTurnStartsEvent
component to prevent issues whenadditionalCards
is undefined.Tests
GameThiefTurnStartsEvent
component to ensure correct behavior when there are no additional cards available.