Skip to content
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(game): game events from api #674

Merged
merged 2 commits into from
Jul 25, 2024

Conversation

antoinezanardi
Copy link
Owner

@antoinezanardi antoinezanardi commented Jul 25, 2024

Summary by CodeRabbit

  • New Features

    • Introduced several new game event components, including GameDeathEvent, GameFoxMayHaveSniffedEvent, and GameThiefMayHaveChosenCardEvent.
    • Enhanced event handling to focus on player interactions rather than historical targeting in existing components.
  • Improvements

    • Updated existing components to utilize a more structured props approach, improving clarity and maintainability.
    • Improved user feedback with enhanced audio effects tied to game events.
  • Bug Fixes

    • Resolved issues with event conditions and rendering logic to ensure accurate game state representation.
  • Documentation

    • Updated localization files to reflect new event names, enhancing clarity in gameplay narratives.
  • Tests

    • Expanded test suites for new and existing components, ensuring robust coverage of game event functionalities.

@antoinezanardi antoinezanardi added the 🚀 feature New feature or request label Jul 25, 2024
@antoinezanardi antoinezanardi self-assigned this Jul 25, 2024
Copy link

coderabbitai bot commented Jul 25, 2024

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

Files selected but had no reviewable changes (1)
  • tests/stryker/incremental.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The recent changes focus on refactoring the game event handling system within the Vue.js application. Components have been updated to improve clarity and maintainability, with a shift from targeting last plays to emphasizing player interactions. New event types have been added, and existing ones have been renamed to enhance their semantic meaning. The updates also streamline the testing processes, ensuring robust validation of component behavior in various game scenarios.

Changes

Files Change Summary
app/components/pages/game/GamePlaying/GameEventsMonitor/GameAccursedWolfFatherMayHaveInfectedEvent/.vue, app/components/pages/game/GamePlaying/GameEventsMonitor/GameCupidHasCharmedEvent/.vue, app/components/pages/game/GamePlaying/GameEventsMonitor/GameDeathEvent/.vue, app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/.vue Refactored event handling logic; replaced specific card components with a focus on player data; improved prop definitions for clarity.
app/components/pages/game/GamePlaying/GameEventsMonitor/GameFoxMayHaveSniffedEvent/.vue, app/components/pages/game/GamePlaying/GameEventsMonitor/GameIdiotIsSparedEvent/.vue, app/components/pages/game/GamePlaying/GameEventsMonitor/GamePiedPiperHasCharmedEvent/.vue, app/components/pages/game/GamePlaying/GameEventsMonitor/GameScandalmongerMayHaveMarkedEvent/.vue Updated component logic to streamline player references; renamed components for clarity; enhanced computed properties for dynamic behavior.
app/components/pages/game/GamePlaying/GameEventsMonitor/GameStartsEvent/.vue, app/components/pages/game/GamePlaying/GameEventsMonitor/GameSheriffPromotionEvent/.vue Adjusted component imports for consistency; improved handling of player props and event conditions in tests.
app/composables/api/game/types/game-event/*.ts, app/composables/api/game/game-event/game-event.class.ts, app/composables/api/game/constants/game-event/game-event.constants.ts, app/stores/game/game-event/useGameEventsStore.ts, app/stores/game/useGameStore.ts Reorganized imports and constants; refactored event management logic to enhance reactivity and maintainability; simplified event resetting logic.
tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/*.nuxt.spec.ts Improved test structure with new utility functions for creating fake events; updated props handling and test scenarios for robustness.
docker/werewolves-assistant-sandbox-api/docker-compose.yml Updated API image version for potential bug fixes and enhancements.
modules/i18n/locales/*.json Renamed event identifiers to enhance clarity and user understanding; made minor localization adjustments.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant GameEventComponent
    participant GameStore

    User->>GameEventComponent: Trigger game event
    GameEventComponent->>GameStore: Update current game state
    GameStore-->>GameEventComponent: Provide updated player data
    GameEventComponent->>User: Display updated game event
Loading

🐰 In the garden where bunnies hop,
New events sprout, they never stop!
From flips to charms, oh what a sight,
With players dancing in the moonlight.
So let’s rejoice, with a happy cheer,
For a game that's brightened, oh so dear! 🥕✨


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?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a 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 (4)
app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMarkIsActiveEvent/GameScandalmongerMarkIsActiveEvent.vue (1)

1-3: Consider adding a script and style section.

The template is minimal and does not include any script or style sections. Ensure that the component is functional and styled appropriately in the context of the application.

<template>
  <div id="game-scandalmonger-mark-is-active-event"/>
</template>

<script>
export default {
  name: "GameScandalmongerMarkIsActiveEvent",
};
</script>

<style scoped>
#game-scandalmonger-mark-is-active-event {
  /* Add styles here */
}
</style>
app/components/shared/game/game-event/GameEventFlippingPlayersCard/game-event-flipping-players-card.types.ts (1)

4-6: Consider adding comments for the type properties.

Adding comments for the properties in the GameEventFlippingPlayersCardProps type can improve readability and maintainability.

type GameEventFlippingPlayersCardProps = Omit<RoleFlippingImageProps, "definition" | "roleName" | "sizes"> & {
  /**
   * Array of players involved in the event
   */
  players?: Player[];
};
app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameStartsEvent/GameStartsEvent.vue (1)

18-18: The import path for GameEventFlippingPlayerCard is incorrect.

The correct import path should be ~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.vue. Please update the import statement accordingly.

  • Current incorrect path: ~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard.vue
  • Correct path: ~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.vue
Analysis chain

Verify the correctness of the updated import path.

The import path for GameEventFlippingPlayerCard has been updated. Ensure that the new path ~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard.vue is correct and the component functions as expected.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the existence and correctness of the updated import path.

# Test: Check if the file exists at the new path. Expect: File exists.
if [ -f "app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard.vue" ]; then
  echo "File exists."
else
  echo "File does not exist."
fi

Length of output: 162


Script:

#!/bin/bash
# Description: Search for the file GameEventFlippingPlayerCard.vue within the repository.

fd GameEventFlippingPlayerCard.vue

Length of output: 163

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePiedPiperHasCharmedEvent/GamePiedPiperHasCharmedEvent.vue (1)

19-19: The component is not defined or exported correctly.

The file app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue exists, but it does not contain an export default statement. This indicates that the component is not properly defined or exported, which will cause issues with the import in GamePiedPiperHasCharmedEvent.vue.

  • Ensure that the component GameEventFlippingPlayersCard is correctly defined and exported in GameEventFlippingPlayersCard.vue.
Analysis chain

Verify the correctness of the updated import path.

The import path for GameEventFlippingLastPlayTargetsCard has been updated. Ensure that the new path ~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue is correct and the component functions as expected.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the existence and correctness of the updated import path.

# Test: Check if the file exists at the new path. Expect: File exists.
if [ -f "app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue" ]; then
  echo "File exists."
else
  echo "File does not exist."
fi

Length of output: 147


Script:

#!/bin/bash
# Description: Verify the definition and export of the component in the updated import path.

# Test: Check if the component is defined and exported in the file. Expect: Component is defined and exported.
if grep -q 'export default' "app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue"; then
  echo "Component is defined and exported."
else
  echo "Component is not defined or exported."
fi

Length of output: 211

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between e8c0b73 and 6be746e.

Files ignored due to path filters (15)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameAccursedWolfFatherMayHaveInfectedEvent/__snapshots__/GameAccursedWolfFatherMayHaveInfectedEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameCupidHasCharmedEvent/__snapshots__/GameCupidHasCharmedEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameDeathEvent/__snapshots__/GameDeathEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameElderHasTakenRevengeEvent/__snapshots__/GameElderHasTakenRevengeEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/__snapshots__/GameIdiotIsSparedEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePiedPiperHasCharmedEvent/__snapshots__/GamePiedPiperHasCharmedEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePlayerDiesEvent/__snapshots__/GamePlayerDiesEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMayHaveMarkedEvent/__snapshots__/GameScandalmongerMayHaveMarkedEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSeerHasSeenEvent/__snapshots__/GameSeerHasSeenEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSheriffPromotionEvent/__snapshots__/GameSheriffPromotionEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameVillagerVillagerIntroductionEvent/__snapshots__/GameVillagerVillagerIntroductionEvent.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayerCard/GameEventFlippingLastPlayTargetsCard/__snapshots__/GameEventFlippingLastPlayTargetsCard.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlaySourcePlayersCard/__snapshots__/GameEventFlippingPlaySourcePlayersCard.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/__snapshots__/GameEventFlippingPlayerCard.nuxt.spec.ts.snap is excluded by !**/*.snap
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/__snapshots__/GameEventFlippingPlayersCard.nuxt.spec.ts.snap is excluded by !**/*.snap
Files selected for processing (56)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameAccursedWolfFatherMayHaveInfectedEvent/GameAccursedWolfFatherMayHaveInfectedEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameActorMayHaveChosenCardEvent/GameActorMayHaveChosenCardEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameBearGrowlsEvent/GameBearGrowlsEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameBearSleepsEvent/GameBearSleepsEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameCupidHasCharmedEvent/GameCupidHasCharmedEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameDeathEvent/GameDeathEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameElderHasTakenRevengeEvent/GameElderHasTakenRevengeEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameEventsMonitorCurrentEvent.vue (2 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameFoxMayHaveSniffedEvent/GameFoxMayHaveSniffedEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/GameIdiotIsSparedEvent.vue (2 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePiedPiperHasCharmedEvent/GamePiedPiperHasCharmedEvent.vue (2 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMarkIsActiveEvent/GameScandalmongerMarkIsActiveEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMayHaveMarkedEvent/GameScandalmongerMayHaveMarkedEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSeerHasSeenEvent/GameSeerHasSeenEvent.vue (3 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSheriffPromotionEvent/GameSheriffPromotionEvent.vue (2 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameStartsEvent/GameStartsEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameThiefMayHaveChosenCardEvent/GameThiefMayHaveChosenCardEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameVillagerVillagerIntroductionEvent/GameVillagerVillagerIntroductionEvent.vue (2 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameWildChildHasTransformedEvent/GameWildChildHasTransformedEvent.vue (1 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameWolfHoundHasChosenSideEvent/GameWolfHoundHasChosenSideEvent.vue (2 hunks)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types.ts (1 hunks)
  • app/components/shared/game/game-event/GameEventFlippingPlayerCard/GameEventFlippingPlaySourcePlayersCard/GameEventFlippingPlaySourcePlayersCard.vue (1 hunks)
  • app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.vue (1 hunks)
  • app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue (1 hunks)
  • app/components/shared/game/game-event/GameEventFlippingPlayersCard/game-event-flipping-players-card.types.ts (1 hunks)
  • app/components/shared/game/game-event/GameEventWithTexts/GameEventWithTexts.vue (1 hunks)
  • app/composables/api/game/constants/game-event/game-event.constants.ts (1 hunks)
  • app/composables/api/game/game-event/game-event.class.ts (1 hunks)
  • app/composables/api/game/types/game-event/game-event.types.ts (1 hunks)
  • app/composables/api/game/types/game-history-record/game-history-record.class.ts (1 hunks)
  • app/composables/api/game/types/game.class.ts (2 hunks)
  • app/stores/game/game-event/useGameEventsStore.ts (3 hunks)
  • app/stores/game/useGameStore.ts (3 hunks)
  • docker/werewolves-assistant-sandbox-api/docker-compose.yml (1 hunks)
  • modules/i18n/locales/en.json (2 hunks)
  • modules/i18n/locales/fr.json (3 hunks)
  • tests/acceptance/features/game/features/role/big-bad-wolf.feature (1 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameAccursedWolfFatherMayHaveInfectedEvent/GameAccursedWolfFatherMayHaveInfectedEvent.nuxt.spec.ts (4 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameCupidHasCharmedEvent/GameCupidHasCharmedEvent.nuxt.spec.ts (1 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameDeathEvent/GameDeathEvent.nuxt.spec.ts (4 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameElderHasTakenRevengeEvent/GameElderHasTakenRevengeEvent.nuxt.spec.ts (4 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameEventsMonitorCurrentEvent.nuxt.spec.ts (15 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/GameIdiotIsSparedEvent.nuxt.spec.ts (4 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePiedPiperHasCharmedEvent/GamePiedPiperHasCharmedEvent.nuxt.spec.ts (4 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMayHaveMarkedEvent/GameScandalmongerMayHaveMarkedEvent.nuxt.spec.ts (1 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSeerHasSeenEvent/GameSeerHasSeenEvent.nuxt.spec.ts (3 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSheriffPromotionEvent/GameSheriffPromotionEvent.nuxt.spec.ts (5 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameStartsEvent/GameStartsEvent.nuxt.spec.ts (1 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameVillagerVillagerIntroductionEvent/GameVillagerVillagerIntroductionEvent.nuxt.spec.ts (5 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameWolfHoundHasChosenSideEvent/GameWolfHoundHasChosenSideEvent.nuxt.spec.ts (9 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorFooter/GameEventsMonitorFooter.nuxt.spec.ts (14 hunks)
  • tests/unit/specs/components/pages/game/GamePlaying/GamePlaying.nuxt.spec.ts (2 hunks)
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlaySourcePlayersCard/GameEventFlippingPlaySourcePlayersCard.nuxt.spec.ts (1 hunks)
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.nuxt.spec.ts (1 hunks)
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.nuxt.spec.ts (1 hunks)
  • tests/unit/specs/components/shared/game/game-event/GameEventWithTexts/GameEventWithTexts.nuxt.spec.ts (1 hunks)
Files not processed due to max files limit (7)
  • tests/unit/specs/composables/api/game/game-event/game-event.class.spec.ts
  • tests/unit/specs/stores/game/game-event/useGameEventsStore.spec.ts
  • tests/unit/specs/stores/game/useGameStore.spec.ts
  • tests/unit/utils/factories/composables/api/game/game-event/game-event.factory.ts
  • tests/unit/utils/factories/composables/api/game/game-event/useGameEventsGenerator.spec.ts
  • tests/unit/utils/factories/composables/api/game/game-history-record/game-history-record.factory.ts
  • tests/unit/utils/factories/composables/api/game/game.factory.ts
Files skipped from review due to trivial changes (13)
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameActorMayHaveChosenCardEvent/GameActorMayHaveChosenCardEvent.vue
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameBearGrowlsEvent/GameBearGrowlsEvent.vue
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameBearSleepsEvent/GameBearSleepsEvent.vue
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameFoxMayHaveSniffedEvent/GameFoxMayHaveSniffedEvent.vue
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameThiefMayHaveChosenCardEvent/GameThiefMayHaveChosenCardEvent.vue
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameWildChildHasTransformedEvent/GameWildChildHasTransformedEvent.vue
  • app/components/shared/game/game-event/GameEventFlippingPlayerCard/GameEventFlippingPlaySourcePlayersCard/GameEventFlippingPlaySourcePlayersCard.vue
  • app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.vue
  • app/composables/api/game/types/game-event/game-event.types.ts
  • modules/i18n/locales/en.json
  • tests/acceptance/features/game/features/role/big-bad-wolf.feature
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlaySourcePlayersCard/GameEventFlippingPlaySourcePlayersCard.nuxt.spec.ts
  • tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.nuxt.spec.ts
Additional comments not posted (123)
app/components/shared/game/game-event/GameEventFlippingPlayersCard/game-event-flipping-players-card.types.ts (2)

1-2: LGTM!

The import statements are correct and align with the project structure.


8-8: LGTM!

The export statement is correct and aligns with the project structure.

app/composables/api/game/game-event/game-event.class.ts (1)

2-2: LGTM!

The updated import path for GameEventType aligns with the composables structure and improves dependency management.

app/composables/api/game/constants/game-event/game-event.constants.ts (3)

6-6: Renaming improves clarity.

The event type "player-dies" has been renamed to "death", which simplifies the terminology.


9-9: Renaming enhances semantic meaning.

The event type "scandalmonger-has-marked" has been renamed to "scandalmonger-may-have-marked", indicating a potential rather than a definitive action.


16-22: New event types expand gameplay interactions.

The new event types "bear-growls", "bear-sleeps", "fox-may-have-sniffed", "thief-may-have-chosen-card", "wild-child-has-transformed", "actor-may-have-chosen-card", and "scandalmonger-mark-is-active" enhance the game's mechanics by allowing for more nuanced interactions and scenarios.

docker/werewolves-assistant-sandbox-api/docker-compose.yml (1)

3-3: Update image version and verify compatibility.

The image version has been updated from v1.33.0 to v1.34.1, which likely includes bug fixes, new features, or performance improvements.

Ensure that the new version is compatible with the existing configuration.

app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue (2)

1-14: Template section is well-structured.

The template section defines the structure of the component using appropriate classes for styling and correctly passes props to the GameEventFlippingPlayerCard component.


16-24: Script section is well-organized.

The script section uses TypeScript for type safety, imports necessary components and types, and correctly defines props and computed properties.

app/components/shared/game/game-event/GameEventWithTexts/GameEventWithTexts.vue (1)

30-32: Good addition of the conditional check.

The early return if newGameEventText is undefined improves the robustness of the function by ensuring only valid texts trigger the event emission.

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types.ts (2)

2-2: Appropriate update to the import type.

Replacing GamePlayerDiesEvent with GameDeathEvent likely reflects a broader conceptual update in event categorization.


11-13: Good addition of the new type CurrentGameEventProps.

This enhancement improves flexibility and allows for more complex event handling.

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameElderHasTakenRevengeEvent/GameElderHasTakenRevengeEvent.vue (3)

7-9: Good update to the component name and :players prop.

Renaming to GameEventFlippingPlayersCard and directly using event.players accommodates multiple players and simplifies the logic.


17-17: Good addition of the new import type CurrentGameEventProps.

This addition suggests a more structured approach to handling props.


29-32: Simplified the computed property gameElderHasTakenRevengeEventTexts.

This change streamlines the logic but modifies the conditions under which certain UI elements are displayed.

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameCupidHasCharmedEvent/GameCupidHasCharmedEvent.vue (2)

17-23: LGTM! But verify the imports.

The code changes are approved.

However, ensure that the imports are correct and the paths are valid.

Verification successful

Imports are correct.

The imported files GameEventFlippingPlayersCard.vue and game-events-monitor-current-event.types.ts exist at the specified paths.

  • app/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue
  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types.ts
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the imports are correct and the paths are valid.

# Test: Search for the imported files to ensure they exist.
fd 'GameEventFlippingPlayersCard.vue' | grep 'GameEventFlippingPlayersCard.vue'
fd 'game-events-monitor-current-event.types' | grep 'game-events-monitor-current-event.types'

Length of output: 398


7-9: Verify the new prop :players is correctly passed.

Ensure that the players prop is correctly passed and contains the expected data.

app/composables/api/game/types/game-history-record/game-history-record.class.ts (1)

34-36: LGTM! But verify the new property switchedSidePlayers.

The code changes are approved.

However, ensure that the new property switchedSidePlayers is correctly used and integrated within the class.

Verification successful

LGTM! But verify the new property switchedSidePlayers.

The code changes are approved.

However, ensure that the new property switchedSidePlayers is correctly used and integrated within the class.

  • The switchedSidePlayers property is correctly defined and integrated within the GameHistoryRecord class.
  • The property is also correctly used in the test factory file.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the new property `switchedSidePlayers` is correctly used and integrated within the class.

# Test: Search for the usage of `switchedSidePlayers` to ensure it is correctly used.
rg --type ts 'switchedSidePlayers'

Length of output: 318


Script:

#!/bin/bash
# Description: Verify the integration of `switchedSidePlayers` within the `GameHistoryRecord` class.

# Test: Search for the class `GameHistoryRecord` to inspect its methods and usage of `switchedSidePlayers`.
ast-grep --lang typescript --pattern $'class GameHistoryRecord {
  $$$
}' -A 20

Length of output: 4943


Script:

#!/bin/bash
# Description: Verify the usage of `switchedSidePlayers` in the test file.

# Test: Search for the usage of `switchedSidePlayers` in the test file to ensure it is correctly used.
rg --type ts 'switchedSidePlayers' -A 5 tests/unit/utils/factories/composables/api/game/game-history-record/game-history-record.factory.ts

Length of output: 403

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameAccursedWolfFatherMayHaveInfectedEvent/GameAccursedWolfFatherMayHaveInfectedEvent.vue (2)

17-29: LGTM! But verify the imports and computed property.

The code changes are approved.

However, ensure that the imports are correct, the props are properly defined, and the computed property is correctly implemented.

Verification successful

Verification Successful: Imports and Computed Property Implementation

The imports are correct, and the computed property hasAccursedWolfFatherInfectedAnyone is correctly implemented.

  • GameEventFlippingPlayersCard.vue and game-events-monitor-current-event.types.ts imports are valid.
  • The computed property hasAccursedWolfFatherInfectedAnyone is properly defined and used within the Vue component.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the imports are correct, the props are properly defined, and the computed property is correctly implemented.

# Test: Search for the imported files to ensure they exist.
fd 'GameEventFlippingPlayersCard.vue' | grep 'GameEventFlippingPlayersCard.vue'
fd 'game-events-monitor-current-event.types' | grep 'game-events-monitor-current-event.types'

# Test: Search for the computed property `hasAccursedWolfFatherInfectedAnyone` to ensure it is correctly implemented.
rg --type vue 'hasAccursedWolfFatherInfectedAnyone'

Length of output: 478


Script:

#!/bin/bash
# Description: Verify the computed property 'hasAccursedWolfFatherInfectedAnyone' is correctly implemented.

# Test: Search for the computed property `hasAccursedWolfFatherInfectedAnyone` in Vue files.
rg 'hasAccursedWolfFatherInfectedAnyone' --glob '**/*.vue' -A 5

Length of output: 2721


7-9: Verify the new prop :players is correctly passed.

Ensure that the players prop is correctly passed and contains the expected data.

Verification successful

Verify the new prop :players is correctly passed.

The players prop is correctly defined and used within the GameAccursedWolfFatherMayHaveInfectedEvent component, ensuring it contains the expected data.

  • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameAccursedWolfFatherMayHaveInfectedEvent/GameAccursedWolfFatherMayHaveInfectedEvent.vue
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the `players` prop is correctly passed to `GameEventFlippingPlayersCard`.

# Test: Search for the usage of `GameAccursedWolfFatherMayHaveInfectedEvent` to ensure `players` prop is passed correctly.
rg --type vue -A 5 $'<GameAccursedWolfFatherMayHaveInfectedEvent'

Length of output: 94


Script:

#!/bin/bash
# Description: Verify the `players` prop is correctly passed to `GameEventFlippingPlayersCard`.

# Test: Search for the usage of `GameAccursedWolfFatherMayHaveInfectedEvent` to ensure `players` prop is passed correctly.
rg --glob '*.vue' -A 5 '<GameAccursedWolfFatherMayHaveInfectedEvent'

Length of output: 70


Script:

#!/bin/bash
# Description: Verify the `players` prop is correctly passed to `GameEventFlippingPlayersCard`.

# Step 1: Search for the definition of `GameAccursedWolfFatherMayHaveInfectedEvent` component.
rg --glob '*.vue' 'GameAccursedWolfFatherMayHaveInfectedEvent'

# Step 2: Search for the usage of `GameAccursedWolfFatherMayHaveInfectedEvent` component across the codebase.
rg --glob '*.vue' '<GameAccursedWolfFatherMayHaveInfectedEvent'

# Step 3: Verify the `players` prop within the `GameAccursedWolfFatherMayHaveInfectedEvent` component.
rg --glob '*.vue' -A 5 'props: { players'

Length of output: 1405


Script:

#!/bin/bash
# Description: Verify the `players` prop is correctly passed to `GameEventFlippingPlayersCard`.

# Step 1: Search for the definition of `GameAccursedWolfFatherMayHaveInfectedEvent` component.
rg --glob '*.vue' 'GameAccursedWolfFatherMayHaveInfectedEvent'

# Step 2: Search for the usage of `GameAccursedWolfFatherMayHaveInfectedEvent` component across the codebase.
rg --glob '*.vue' '<GameAccursedWolfFatherMayHaveInfectedEvent'

# Step 3: Verify the `players` prop within the `GameAccursedWolfFatherMayHaveInfectedEvent` component.
rg --glob '*.vue' -A 5 'props.*players'

Length of output: 21092

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameVillagerVillagerIntroductionEvent/GameVillagerVillagerIntroductionEvent.vue (3)

9-9: LGTM!

The ID change aligns with the new event type and improves the semantic meaning.


24-31: LGTM!

The props declaration and computed properties are correctly implemented.


18-19: LGTM! But verify the new imports.

The new imports and props declaration improve type safety and modularity.

However, ensure that the new imports are correctly resolved in the codebase.

Verification successful

The new imports are correctly resolved.

The import paths for CurrentGameEventProps and GameEventFlippingPlayerCard are valid and found in multiple files across the codebase.

  • ~/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types
  • ~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.vue
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the new imports are correctly resolved in the codebase.

# Test: Search for the import paths. Expect: Only valid import paths.
rg --files-with-matches '~/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types'
rg --files-with-matches '~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayerCard/GameEventFlippingPlayerCard.vue'

Length of output: 6126

app/composables/api/game/types/game.class.ts (1)

2-2: LGTM! But verify the new property usage.

The new property enhances the functionality of the Game class.

However, ensure that the new property is correctly utilized in the codebase.

Verification successful

The new events property is correctly utilized in the codebase.

The property is extensively used in the test files, ensuring its functionality is well-covered.

  • tests/unit/specs/stores/game/game-event/useGameEventsStore.spec.ts
  • tests/unit/utils/factories/composables/api/game/game.factory.ts
  • tests/unit/specs/components/pages/about/AboutWerewolvesAssistant/AboutWerewolvesAssistant.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GamePlaying.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorFooter/GameEventsMonitorFooter.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMayHaveMarkedEvent/GameScandalmongerMayHaveMarkedEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameEventsMonitorCurrentEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameElderHasTakenRevengeEvent/GameElderHasTakenRevengeEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameVillagerVillagerIntroductionEvent/GameVillagerVillagerIntroductionEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameDeathEvent/GameDeathEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameWolfHoundHasChosenSideEvent/GameWolfHoundHasChosenSideEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSheriffPromotionEvent/GameSheriffPromotionEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSeerHasSeenEvent/GameSeerHasSeenEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/GameIdiotIsSparedEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePiedPiperHasCharmedEvent/GamePiedPiperHasCharmedEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameCupidHasCharmedEvent/GameCupidHasCharmedEvent.nuxt.spec.ts
  • tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameAccursedWolfFatherMayHaveInfectedEvent/GameAccursedWolfFatherMayHaveInfectedEvent.nuxt.spec.ts
  • tests/acceptance/features/game/step-definitions/game-options/game-options.given-steps.ts
  • tests/acceptance/features/game/step-definitions/game-event/game-event.when-steps.ts
  • app/stores/game/game-event/useGameEventsStore.ts
  • app/composables/api/game/types/game.class.ts
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the new property usage in the codebase.

# Test: Search for the new property usage. Expect: Only valid usage.
rg --type python -A 5 $'events'

Length of output: 61


Script:

#!/bin/bash
# Description: Verify the new property usage in the codebase.

# Test: Search for the new property usage. Expect: Only valid usage.
rg --type typescript -A 5 'events'

Length of output: 69


Script:

#!/bin/bash
# Description: Verify the new property usage in the codebase.

# Test: Search for the new property usage. Expect: Only valid usage.
rg --type-add 'ts:*.ts' -t ts -A 5 'events'

Length of output: 64576

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/GameIdiotIsSparedEvent.vue (4)

8-11: LGTM!

The component name change aligns with the new logic and the players prop is correctly updated.


25-32: LGTM!

The props declaration and computed properties are correctly implemented.


45-45: LGTM!

The modified function parameter type prevents potential runtime errors.


19-20: LGTM! But verify the new imports.

The new imports and props declaration improve type safety and modularity.

However, ensure that the new imports are correctly resolved in the codebase.

Verification successful

The new imports are correctly resolved in the codebase.

The import paths for CurrentGameEventProps and GameEventFlippingPlayersCard are valid and correctly integrated into multiple files, including GameIdiotIsSparedEvent.vue.

  • CurrentGameEventProps is found in:

    • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/GameIdiotIsSparedEvent.vue
    • Other related component files and test specs.
  • GameEventFlippingPlayersCard is found in:

    • app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/GameIdiotIsSparedEvent.vue
    • Other related component files and test specs.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the new imports are correctly resolved in the codebase.

# Test: Search for the import paths. Expect: Only valid import paths.
rg --files-with-matches '~/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/game-events-monitor-current-event.types'
rg --files-with-matches '~/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.vue'

Length of output: 5565

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMayHaveMarkedEvent/GameScandalmongerMayHaveMarkedEvent.vue (5)

3-3: Update the component ID.

The component ID has been updated to reflect the new semantics of the event.


7-9: Update the imported component and its ID.

The component GameEventFlippingPlayersCard is now used instead of GameEventFlippingLastPlayTargetsCard, and the ID has been updated accordingly.


17-18: Update the imports.

The import statements have been updated to reflect the new component and type.


23-23: Define props using CurrentGameEventProps.

Props are now defined using CurrentGameEventProps, enhancing type safety.


30-38: Update the computed properties.

The logic for determining if the scandalmonger has marked anyone has been updated to directly check against the props.event.players array. The text returned in gameScandalmongerHasMarkedEventTexts has been updated to align with the new semantics.

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSheriffPromotionEvent/GameSheriffPromotionEvent.vue (4)

7-9: Update the imported component and the :players binding.

The component GameEventFlippingPlayersCard is now used instead of GameEventFlippingPlayerCard, and the :players binding now utilizes event.players instead of sheriffInPlayers.


18-19: Update the imports.

The import statements have been updated to reflect the new component and type.


25-26: Define props using CurrentGameEventProps.

Props are now defined using CurrentGameEventProps, enhancing type safety.


35-36: Update the computed property sheriffInPlayers.

The variable sheriffInPlayers is now computed from the props.event.players array, specifically targeting the first player in the array.

app/stores/game/game-event/useGameEventsStore.ts (4)

2-2: Update the import statement.

The import statement for GameEvent has been added to enhance type safety.


12-12: Refactor the gameEvents state.

The gameEvents state is now a computed property that derives its value from the gameStore, enhancing reactivity.


18-18: Refactor the resetGameEvents function.

The resetGameEvents function has been replaced with resetGameEventIndex, which now only resets the index of the current game event.


23-24: Add a null check for gameEvents.

The goToNextGameEvent function now includes a check for the existence of gameEvents.value, preventing potential runtime errors.

app/stores/game/useGameStore.ts (2)

61-61: LGTM! But verify the functionality of resetGameEventIndex.

The function now calls resetGameEventIndex instead of generating new game events. This change simplifies the function and might improve performance.

However, ensure that resetGameEventIndex correctly handles the event index reset.


36-36: LGTM! But verify the functionality of resetGameEventIndex.

The function now calls resetGameEventIndex instead of generating new game events. This change simplifies the function and might improve performance.

However, ensure that resetGameEventIndex correctly handles the event index reset.

Verification successful

Verification successful for resetGameEventIndex.

The resetGameEventIndex function correctly resets the game event index by setting currentGameEventIndex.value to 0. This behavior is confirmed through unit tests.

  • Implementation: app/stores/game/game-event/useGameEventsStore.ts
  • Tests: tests/unit/specs/stores/game/game-event/useGameEventsStore.spec.ts
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the functionality of `resetGameEventIndex`.

# Test: Search for the implementation of `resetGameEventIndex`. Expect: Implementation exists and correctly handles the event index reset.
rg --type ts -A 5 $'resetGameEventIndex'

Length of output: 5314

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePiedPiperHasCharmedEvent/GamePiedPiperHasCharmedEvent.vue (3)

26-26: LGTM!

The change adds type safety to the props by defining their type as CurrentGameEventProps.


37-37: LGTM!

The function computes the charmed players based on the event's properties, ensuring that the displayed players are directly linked to the event data.


43-52: LGTM!

The function generates text based on the charmed players, ensuring that the displayed messages accurately reflect the current state of the game.

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameDeathEvent/GameDeathEvent.vue (2)

1-16: LGTM! The template structure is well-defined.

The template uses GameEventWithTexts and GameEventFlippingPlayersCard components effectively.


18-59: LGTM! The script section is well-structured.

The script defines the necessary imports, props, computed properties, and event handling logic effectively.

However, ensure that the playSoundEffect function is correctly implemented and used elsewhere in the codebase.

Verification successful

The playSoundEffect function is correctly implemented and used.

The function is defined in app/stores/audio/useAudioStore.ts and is extensively tested across various unit tests, ensuring its correct behavior.

  • app/stores/audio/useAudioStore.ts
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the implementation and usage of the `playSoundEffect` function.

# Test: Search for the function implementation and usage. Expect: Correct implementation and usage.
rg --type ts -A 5 $'playSoundEffect'

Length of output: 66263

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSeerHasSeenEvent/GameSeerHasSeenEvent.vue (2)

Line range hint 1-12:
LGTM! The template structure is well-defined.

The template uses GameEventWithTexts and GameEventFlippingPlayersCard components effectively.


Line range hint 18-56:
LGTM! The script section is well-structured.

The script defines the necessary imports, props, computed properties, and event handling logic effectively.

However, ensure that the playSoundEffect function is correctly implemented and used elsewhere in the codebase.

Verification successful

The playSoundEffect function is correctly implemented and used.

The function playSoundEffect is defined in app/stores/audio/useAudioStore.ts and is utilized across multiple test files to verify its behavior. This indicates that the function is well-integrated and its usage is thoroughly tested.

  • Implementation found in app/stores/audio/useAudioStore.ts.
  • Usage verified in multiple test files.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the implementation and usage of the `playSoundEffect` function.

# Test: Search for the function implementation and usage. Expect: Correct implementation and usage.
rg --type ts -A 5 $'playSoundEffect'

Length of output: 66263

tests/unit/specs/components/shared/game/game-event/GameEventFlippingPlayersCard/GameEventFlippingPlayersCard.nuxt.spec.ts (4)

30-33: LGTM! The snapshot test is correctly set up.

The test ensures that the component renders as expected and matches the snapshot.


35-41: LGTM! The test case for passing players when defined is correctly set up.

The test ensures that the players prop is passed as expected when players are defined.


42-47: LGTM! The test case for passing empty array when players are undefined is correctly set up.

The test ensures that the players prop is passed as an empty array when players are undefined.


26-28: LGTM! The beforeEach setup is correctly set up.

The beforeEach block ensures that the component is mounted before each test case.

tests/unit/specs/components/shared/game/game-event/GameEventWithTexts/GameEventWithTexts.nuxt.spec.ts (2)

59-60: LGTM! The type specification adds clarity and type safety.

The change to explicitly specify the expected type as string[][] is a good practice.


62-67: LGTM! The new test case improves robustness.

The addition of the test case to verify that the component does not emit the "gameEventTextChange" event when the emitted text is undefined enhances the robustness of the event handling logic.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameCupidHasCharmedEvent/GameCupidHasCharmedEvent.nuxt.spec.ts (4)

1-2: LGTM! The utility functions improve test setup.

The addition of the createFakeGameEvent and createFakeSeerAlivePlayer utility functions streamlines the setup of test cases, enhancing clarity and maintainability.


12-15: LGTM! The constant improves clarity and reusability.

The addition of the defaultInLovePlayers constant enhances the clarity and reusability of the test data.


16-21: LGTM! The defaultProps object improves test structure.

The addition of the defaultProps object ensures a consistent and expected setup for each test, enhancing the structure and readability of the tests.


26-29: LGTM! The modification ensures correct props.

The modification to the mountGameCupidHasCharmedEventComponent function ensures that the component is mounted with the correct props, improving the consistency of the tests.

tests/unit/specs/components/pages/game/GamePlaying/GamePlaying.nuxt.spec.ts (3)

2-2: LGTM! The utility function improves test setup.

The addition of the createFakeGameEvent utility function streamlines the setup of test cases, enhancing clarity and maintainability.


13-13: LGTM! The shift to useGameStore improves state management.

The shift from using useGameEventsStore to useGameStore consolidates game-related state management under a single store, enhancing the clarity and maintainability of the test code.


50-51: LGTM! Accessing game.events from gameStore improves consistency.

The change to access game.events from gameStore ensures that the game events are accessed from the consolidated game store, enhancing the consistency of the test code.

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameWolfHoundHasChosenSideEvent/GameWolfHoundHasChosenSideEvent.vue (3)

40-40: LGTM!

The change aligns the logic with the updated variable naming.


47-47: LGTM!

The change aligns the logic with the updated variable naming.


33-33: Verify the assumption about the first player.

Ensure that the first player in props.event.players is always the wolf hound. If this assumption is incorrect, the logic may need to be adjusted.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameElderHasTakenRevengeEvent/GameElderHasTakenRevengeEvent.nuxt.spec.ts (2)

2-2: LGTM!

The addition of the import statement for createFakeGameEvent enhances the test setup.


19-24: LGTM!

The defaultProps object enhances the clarity and reusability of the test setup.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameAccursedWolfFatherMayHaveInfectedEvent/GameAccursedWolfFatherMayHaveInfectedEvent.nuxt.spec.ts (2)

2-2: LGTM!

The addition of the import statement for createFakeGameEvent enhances the test setup.


22-27: LGTM!

The defaultProps object enhances the clarity and reusability of the test setup.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GamePiedPiperHasCharmedEvent/GamePiedPiperHasCharmedEvent.nuxt.spec.ts (3)

2-2: Import statement for createFakeGameEvent looks good.

The import statement is correctly added and aligns with the new functionality introduced.


24-29: Declaration of defaultProps looks good.

The defaultProps object is well-defined and correctly uses createFakeGameEvent to set up the test scenario.


101-114: New test case for handling no players in the event looks good.

The test case is well-structured and covers an important edge case, ensuring the component behaves correctly when no players are present but the game options dictate that charmed players should be revealed.

app/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameEventsMonitorCurrentEvent.vue (5)

14-14: Update to :key binding looks good.

Changing the :key binding to currentGameEvent?.type improves the uniqueness of the key and potentially optimizes rendering performance.


26-27: Import statements for new event components look good.

The import statements for GameActorMayHaveChosenCardEvent, GameBearGrowlsEvent, and GameBearSleepsEvent are correctly added.


30-37: Import statements for updated event components look good.

The import statements for GameDeathEvent and GameScandalmongerMayHaveMarkedEvent are correctly updated to reflect the new naming conventions.


41-44: Import statements for additional new event components look good.

The import statements for GameThiefMayHaveChosenCardEvent and GameWildChildHasTransformedEvent are correctly added.


58-74: Update to currentGameEventTypeComponent computed property looks good.

The updates ensure that the correct component is rendered based on the current game event type, enhancing the component's ability to dynamically respond to a wider variety of game events.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameVillagerVillagerIntroductionEvent/GameVillagerVillagerIntroductionEvent.nuxt.spec.ts (4)

2-2: Import statement for createFakeGameEvent looks good.

The import statement is correctly added and aligns with the new functionality introduced.


21-26: Declaration of defaultProps looks good.

The defaultProps object is well-defined and correctly uses createFakeGameEvent to set up the test scenario.


82-88: Updated test case for handling no players in the event looks good.

The test case is well-structured and covers an important edge case, ensuring the component behaves correctly when no players are present in the event.


105-127: Updated test case for rendering the flipping card component looks good.

The test case is well-structured and ensures that the component behaves correctly based on the presence of players in the event.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameIdiotIsSparedEvent/GameIdiotIsSparedEvent.nuxt.spec.ts (6)

2-2: LGTM! The new utility function improves test setup.

The createFakeGameEvent utility function enhances the readability and maintainability of the test setup.


16-22: LGTM! The new defaultProps setup is clear and maintainable.

The defaultProps object is now more consistent and clear, improving the initialization of component properties during tests.


38-38: LGTM! The new props structure is clear.

The updated props structure in the mountGameIdiotIsSparedEventComponent function improves the clarity of the test cases.


45-46: LGTM! The game store is correctly populated.

The beforeEach block now ensures the game store is correctly populated before each test runs.


75-75: LGTM! The new test case improves robustness.

The new test case for scenarios where the idiot player is not found improves the robustness of the component.


97-104: LGTM! The new test case ensures correct behavior.

The new test case ensures that the component behaves correctly when the idiot player is not found.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSeerHasSeenEvent/GameSeerHasSeenEvent.nuxt.spec.ts (6)

2-6: LGTM! The new utility functions improve test setup.

The createFakeGameEvent and other utility functions enhance the readability and maintainability of the test setup.


20-25: LGTM! The new defaultProps setup is clear and maintainable.

The defaultProps object is now more consistent and clear, improving the initialization of component properties during tests.


35-35: LGTM! The new props structure is clear.

The updated props structure in the mountGameSeerHasSeenEventComponent function improves the clarity of the test cases.


42-43: LGTM! The game store is correctly populated.

The beforeEach block now ensures the game store is correctly populated before each test runs.


73-80: LGTM! The new test case improves robustness.

The new test case for scenarios where no players are present improves the robustness of the component.


89-95: LGTM! The new test case improves robustness.

The new test case for scenarios where players in the event are undefined improves the robustness of the component.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameStartsEvent/GameStartsEvent.nuxt.spec.ts (3)

7-7: LGTM! The import statement has been updated correctly.

The import statement for the GameEventFlippingPlayerCard component has been updated to reflect the new directory structure.


7-7: LGTM! The new test cases ensure correct behavior.

The new test cases ensure that the component behaves correctly under various game start scenarios.


7-7: LGTM! The new test case ensures correct behavior.

The new test case ensures that all players are passed to the flipping player card component when rendered.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameScandalmongerMayHaveMarkedEvent/GameScandalmongerMayHaveMarkedEvent.nuxt.spec.ts (6)

1-12: LGTM!

The imports are necessary and correctly used in the file.


15-26: LGTM!

The describe block and constants are correctly defined and used in the tests.


27-38: LGTM!

The mount function and beforeEach block are correctly defined and used.


40-50: LGTM!

The snapshot tests are correctly defined and cover various rendering scenarios.


52-71: LGTM!

The sound effect tests are correctly defined and cover various scenarios.


Line range hint 74-164: LGTM!

The game event texts and flipping card tests are correctly defined and cover various scenarios.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameDeathEvent/GameDeathEvent.nuxt.spec.ts (6)

1-19: LGTM!

The imports are necessary and correctly used in the file.


20-29: LGTM!

The describe block and constants are correctly defined and used in the tests.


Line range hint 30-52: LGTM!

The mount function and beforeEach block are correctly defined and used.


Line range hint 40-49: LGTM!

The snapshot tests are correctly defined and cover various rendering scenarios.


Line range hint 53-125: LGTM!

The sound effect tests are correctly defined and cover various scenarios.


Line range hint 63-142: LGTM!

The game event texts and flipping card tests are correctly defined and cover various scenarios.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameSheriffPromotionEvent/GameSheriffPromotionEvent.nuxt.spec.ts (5)

Line range hint 1-19: LGTM!

The imports are necessary and correctly used in the file.


22-29: LGTM!

The describe block and constants are correctly defined and used in the tests.


Line range hint 30-52: LGTM!

The mount function and beforeEach block are correctly defined and used.


Line range hint 53-58: LGTM!

The snapshot tests are correctly defined and cover various rendering scenarios.


Line range hint 74-172: LGTM!

The game event texts and flipping card tests are correctly defined and cover various scenarios.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorFooter/GameEventsMonitorFooter.nuxt.spec.ts (2)

3-4: LGTM!

The imports for createFakeGameEvent and createFakeGame are appropriate for creating mock game events and games.


Line range hint 26-40: LGTM!

The initialization of defaultGame and its assignment in the beforeEach setup improves test consistency and maintainability.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameWolfHoundHasChosenSideEvent/GameWolfHoundHasChosenSideEvent.nuxt.spec.ts (2)

2-2: LGTM!

The import for createFakeGameEvent is appropriate for creating mock game events.


Line range hint 26-40: LGTM!

The initialization of defaultProps and its assignment in the beforeEach setup improves test clarity and maintainability.

tests/unit/specs/components/pages/game/GamePlaying/GameEventsMonitor/GameEventsMonitorCurrentEvent/GameEventsMonitorCurrentEvent.nuxt.spec.ts (2)

2-26: LGTM!

The imports for createFakeGameEvent and new event components are appropriate for creating mock game events and testing new event types.


Line range hint 36-63: LGTM!

The initialization of defaultGame and its assignment in the beforeEach setup improves test consistency and maintainability.

modules/i18n/locales/fr.json (3)

1343-1344: Verify the correctness of the updated translation.

The localization string for "seerHasSeenRole" has been updated. Ensure that the translation is accurate and consistent with the surrounding context.

Verification successful

Verified: The translation for "seerHasSeenRole" is accurate and consistent.

The French translation "La Voyante a vu {role} !" correctly translates the English version "The Seer has seen {role}!" and maintains consistency within the file.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the correctness of the updated translation for "seerHasSeenRole".

# Test: Search for the updated translation string. Expect: Consistent usage in the context.
rg --type json -A 5 $'"seerHasSeenRole"'

Length of output: 1182


Line range hint 1356-1360:
Verify the usage of the new event identifier.

The event identifier "GameScandalmongerHasMarkedEvent" has been renamed to "GameScandalmongerMayHaveMarkedEvent". Ensure that this new identifier is consistently used throughout the codebase.

Verification successful

The event identifier "GameScandalmongerHasMarkedEvent" has been successfully renamed to "GameScandalmongerMayHaveMarkedEvent" and is consistently used throughout the codebase.

  • The new identifier is present in both modules/i18n/locales/en.json and modules/i18n/locales/fr.json.
  • The old identifier "GameScandalmongerHasMarkedEvent" is no longer found in the codebase.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage of the new event identifier "GameScandalmongerMayHaveMarkedEvent".

# Test: Search for the new event identifier. Expect: Only occurrences of the new identifier.
rg --type json -A 5 $'"GameScandalmongerMayHaveMarkedEvent"'

Length of output: 1272


Script:

#!/bin/bash
# Description: Verify that the old event identifier "GameScandalmongerHasMarkedEvent" is no longer present in the codebase.

# Test: Search for the old event identifier. Expect: No occurrences of the old identifier.
rg --type json -A 5 $'"GameScandalmongerHasMarkedEvent"'

Length of output: 57


Line range hint 1330-1334:
Verify the usage of the new event identifier.

The event identifier "GamePlayerDiesEvent" has been renamed to "GameDeathEvent". Ensure that this new identifier is consistently used throughout the codebase.

Verification successful

Verification successful: The event identifier "GamePlayerDiesEvent" has been successfully replaced with "GameDeathEvent" throughout the codebase.

  • The new identifier "GameDeathEvent" is present in both French and English localization files.
  • The old identifier "GamePlayerDiesEvent" is no longer present in JSON, JavaScript, or TypeScript files.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage of the new event identifier "GameDeathEvent".

# Test: Search for the new event identifier. Expect: Only occurrences of the new identifier.
rg --type json -A 5 $'"GameDeathEvent"'

Length of output: 1185


Script:

#!/bin/bash
# Description: Verify that the old event identifier "GamePlayerDiesEvent" is no longer used in the codebase.

# Test: Search for the old event identifier. Expect: No occurrences of the old identifier.
rg --type json -A 5 $'"GamePlayerDiesEvent"'

Length of output: 45


Script:

#!/bin/bash
# Description: Verify that the old event identifier "GamePlayerDiesEvent" is no longer used in the codebase.

# Test: Search for the old event identifier in non-JSON files. Expect: No occurrences of the old identifier.
rg --type js,ts -A 5 $'"GamePlayerDiesEvent"'

Length of output: 76


Script:

#!/bin/bash
# Description: Verify that the old event identifier "GamePlayerDiesEvent" is no longer used in the codebase.

# Test: Search for the old event identifier in JavaScript and TypeScript files. Expect: No occurrences of the old identifier.
rg --type js -A 5 $'"GamePlayerDiesEvent"'
rg --type ts -A 5 $'"GamePlayerDiesEvent"'

Length of output: 87

Copy link

sonarcloud bot commented Jul 25, 2024

@antoinezanardi antoinezanardi merged commit cc5938b into develop Jul 25, 2024
14 checks passed
@antoinezanardi antoinezanardi deleted the feat/use-game-events-from-api branch July 25, 2024 13:50
antoinezanardi pushed a commit that referenced this pull request Aug 7, 2024
## [1.27.0](v1.26.0...v1.27.0) (2024-08-07)

### 🚀 Features

* **bear-tamer:** bear tamer events ([#677](#677)) ([3d890fd](3d890fd))
* **docker:** docker file and push to hub ([#708](#708)) ([3e1a22d](3e1a22d))
* **elder:** elder has taken revenge event ([#656](#656)) ([25f46d5](25f46d5))
* **fox:** game events ([#692](#692)) ([0de3432](0de3432))
* **game-lobby:** additional cards manager ([#706](#706)) ([5eb8ce3](5eb8ce3))
* **game-lobby:** display position coordinator button on two players ([#698](#698)) ([404b184](404b184))
* **game:** game events from api ([#674](#674)) ([cc5938b](cc5938b))
* **scandalmonger:** scandalmonger mark is active event ([#681](#681)) ([828acaa](828acaa))

### 🐛 Bug Fixes

* **deps:** update dependency primevue to v4 ([#605](#605)) ([c05c2be](c05c2be))

### ✅ Tests

* **fox:** targets in game events ([#696](#696)) ([7eb4ff6](7eb4ff6))
* **rusty-sword-knight:** acceptance tests ([#689](#689)) ([8b60d86](8b60d86))

### 🧹 Chore

* **deps:** update antoinezanardi/werewolves-assistant-api docker tag to v1.35.1 ([#720](#720)) ([a4eef03](a4eef03))
* **deps:** update dependency @commitlint/cli to ^19.4.0 ([#721](#721)) ([10ae971](10ae971))
* **deps:** update dependency @nuxt/test-utils to ^3.14.0 ([#684](#684)) ([e842c26](e842c26))
* **deps:** update dependency @nuxtjs/i18n to ^8.3.2 ([#686](#686)) ([a5fc6d6](a5fc6d6))
* **deps:** update dependency @nuxtjs/i18n to ^8.3.3 ([#688](#688)) ([6c04526](6c04526))
* **deps:** update dependency @pinia/nuxt to ^0.5.2 ([#679](#679)) ([268cb94](268cb94))
* **deps:** update dependency @pinia/nuxt to ^0.5.3 ([#712](#712)) ([4c0e823](4c0e823))
* **deps:** update dependency @pinia/testing to ^0.1.4 ([#680](#680)) ([6aaa549](6aaa549))
* **deps:** update dependency @pinia/testing to ^0.1.5 ([#713](#713)) ([1e865de](1e865de))
* **deps:** update dependency @stryker-mutator/core to ^8.4.0 ([#717](#717)) ([18fd997](18fd997))
* **deps:** update dependency @stylistic/eslint-plugin to ^2.4.0 ([#687](#687)) ([b96f302](b96f302))
* **deps:** update dependency @stylistic/eslint-plugin to ^2.6.1 ([#701](#701)) ([d057800](d057800))
* **deps:** update dependency @types/eslint to v9 ([#665](#665)) ([e4cf01c](e4cf01c))
* **deps:** update dependency eslint to ^9.8.0 ([#685](#685)) ([722ad20](722ad20))
* **deps:** update dependency husky to ^9.1.1 ([#650](#650)) ([03ff232](03ff232))
* **deps:** update dependency husky to ^9.1.2 ([#675](#675)) ([8b450f1](8b450f1))
* **deps:** update dependency husky to ^9.1.3 ([#683](#683)) ([8fb79bb](8fb79bb))
* **deps:** update dependency husky to ^9.1.4 ([#690](#690)) ([8e4afd7](8e4afd7))
* **deps:** update dependency lint-staged to ^15.2.8 ([#707](#707)) ([9d0ea50](9d0ea50))
* **deps:** update dependency msw to ^2.3.2 ([#654](#654)) ([df18287](df18287))
* **deps:** update dependency msw to ^2.3.3 ([#667](#667)) ([4e31286](4e31286))
* **deps:** update dependency msw to ^2.3.4 ([#668](#668)) ([d368d3a](d368d3a))
* **deps:** update dependency msw to ^2.3.5 ([#705](#705)) ([e44c938](e44c938))
* **deps:** update dependency pinia to ^2.2.0 ([#682](#682)) ([a264598](a264598))
* **deps:** update dependency pinia to ^2.2.1 ([#714](#714)) ([7ec9618](7ec9618))
* **deps:** update dependency prettier-plugin-gherkin to ^2.4.1 ([#678](#678)) ([fdf456f](fdf456f))
* **deps:** update dependency prettier-plugin-gherkin to v3 ([#693](#693)) ([951b899](951b899))
* **deps:** update dependency qs to ^6.13.0 ([#703](#703)) ([be22e54](be22e54))
* **deps:** update dependency tailwindcss to ^3.4.7 ([#676](#676)) ([9653815](9653815))
* **deps:** update dependency tailwindcss to ^3.4.8 ([#722](#722)) ([706364a](706364a))
* **deps:** update dependency tsx to ^4.16.3 ([#694](#694)) ([ac58a05](ac58a05))
* **deps:** update dependency tsx to ^4.16.5 ([#702](#702)) ([bd33184](bd33184))
* **deps:** update dependency type-fest to ^4.22.1 ([#651](#651)) ([e21922d](e21922d))
* **deps:** update dependency type-fest to ^4.23.0 ([#661](#661)) ([54e81b0](54e81b0))
* **deps:** update dependency typescript to ^5.5.4 ([#666](#666)) ([b3d9999](b3d9999))
* **deps:** update dependency validate-branch-name to ^1.3.1 ([#672](#672)) ([ee73726](ee73726))
* **deps:** update dependency vue to ^3.4.33 ([#655](#655)) ([2b6f4be](2b6f4be))
* **deps:** update dependency vue to ^3.4.34 ([#671](#671)) ([a4628ae](a4628ae))
* **deps:** update dependency vue to ^3.4.35 ([#695](#695)) ([632b6e6](632b6e6))
* **deps:** update dependency vue to ^3.4.36 ([#715](#715)) ([0e26759](0e26759))
* **deps:** update dependency vue-router to ^4.4.2 ([#699](#699)) ([55c7ea4](55c7ea4))
* **deps:** update dependency vue-router to ^4.4.3 ([#716](#716)) ([41940fc](41940fc))
* **deps:** update dependency vue-tsc to ^2.0.28 ([#658](#658)) ([376855f](376855f))
* **deps:** update dependency vue-tsc to ^2.0.29 ([#673](#673)) ([e8c0b73](e8c0b73))
* **deps:** update node docker tag to v22.6.0 ([#718](#718)) ([2b3eb0f](2b3eb0f))
* **deps:** update node.js to >=20.16.0 ([#670](#670)) ([4b03818](4b03818))
* **deps:** update nuxtjs monorepo to ^3.12.4 ([#653](#653)) ([08a94ce](08a94ce))
* **deps:** update playwright monorepo to ^1.45.3 ([#663](#663)) ([99322ea](99322ea))
* **deps:** update playwright monorepo to ^1.46.0 ([#710](#710)) ([cdcc769](cdcc769))
* **deps:** update pnpm to v9.6.0 ([#657](#657)) ([8a18dec](8a18dec))
* **deps:** update pnpm to v9.7.0 ([#719](#719)) ([deb0b81](deb0b81))
* **deps:** update stryker-js monorepo to ^8.3.0 ([#704](#704)) ([0d4788e](0d4788e))
* **deps:** update stryker-js monorepo to ^8.4.0 ([#711](#711)) ([5def08d](5def08d))
* **deps:** update typescript-eslint monorepo to ^7.17.0 ([#664](#664)) ([cf7484f](cf7484f))
* **deps:** update typescript-eslint monorepo to ^7.18.0 ([#691](#691)) ([fe46fff](fe46fff))
* **deps:** update typescript-eslint monorepo to ^8.0.1 ([#709](#709)) ([d189e1e](d189e1e))
* **deps:** update typescript-eslint monorepo to v8 (major) ([#700](#700)) ([de6cf8d](de6cf8d))
* **deps:** update vitest monorepo to ^2.0.3 ([#636](#636)) ([0cdd8e6](0cdd8e6))
* **deps:** update vitest monorepo to ^2.0.4 ([#659](#659)) ([a4a5d77](a4a5d77))
* **deps:** update vitest monorepo to ^2.0.5 ([#697](#697)) ([5783273](5783273))
@antoinezanardi
Copy link
Owner Author

🎉 This PR is included in version 1.27.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🚀 feature New feature or request released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant