From 99c903e7a84c7a9a670b210809c529b0429a2387 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 24 Feb 2024 10:29:00 +0000 Subject: [PATCH 1/6] chore(release): 1.7.0 [skip ci] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [1.7.0](https://github.com/antoinezanardi/werewolves-assistant-web-next/compare/v1.6.0...v1.7.0) (2024-2-24) ### 🚀 Features * **make-game-play:** models and store ([#172](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/172)) ([6103aef](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/6103aefcd8ab052ef3c76602052e9ac2a19bc029)) ### 🔁 CI * **github-pages:** specific token for deploying on github pages ([#171](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/171)) ([108c6c4](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/108c6c4b6aaa83a4d5551fcc69eaaebeec7c52c2)) * **reports:** keep only one report at a time ([#173](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/173)) ([c6dab73](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/c6dab7350ca2643701ae9810606a5fadd96fa225)) * **reports:** remove reports of deleted branch ([#174](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/174)) ([a58cee7](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/a58cee76f5765074567ac8b89203f309d0b0abe4)) ### 🧹 Chore * **deps:** bump the eslint group with 1 update ([#168](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/168)) ([a31a1b2](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/a31a1b2cb1565981a7734670c748d1420261ecef)) * **deps:** bump the types group with 1 update ([#167](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/167)) ([c172fa4](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/c172fa481ed3fafada7619e0c68b9c2ccff0d993)) * **deps:** bump type-fest from 4.10.2 to 4.10.3 ([#169](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/169)) ([ab4d675](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/ab4d6759e3758b71de306a4c13fcb68dd4d12ab8)), closes [#764](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/764) --- CHANGELOG.md | 21 +++++++++++++++++++++ package.json | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0143296eecc..0f7d6eeacd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # 🐺 Werewolves Assistant Web Versioning Changelog +## [1.7.0](https://github.com/antoinezanardi/werewolves-assistant-web-next/compare/v1.6.0...v1.7.0) (2024-2-24) + + +### 🚀 Features + +* **make-game-play:** models and store ([#172](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/172)) ([6103aef](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/6103aefcd8ab052ef3c76602052e9ac2a19bc029)) + + +### 🔁 CI + +* **github-pages:** specific token for deploying on github pages ([#171](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/171)) ([108c6c4](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/108c6c4b6aaa83a4d5551fcc69eaaebeec7c52c2)) +* **reports:** keep only one report at a time ([#173](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/173)) ([c6dab73](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/c6dab7350ca2643701ae9810606a5fadd96fa225)) +* **reports:** remove reports of deleted branch ([#174](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/174)) ([a58cee7](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/a58cee76f5765074567ac8b89203f309d0b0abe4)) + + +### 🧹 Chore + +* **deps:** bump the eslint group with 1 update ([#168](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/168)) ([a31a1b2](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/a31a1b2cb1565981a7734670c748d1420261ecef)) +* **deps:** bump the types group with 1 update ([#167](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/167)) ([c172fa4](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/c172fa481ed3fafada7619e0c68b9c2ccff0d993)) +* **deps:** bump type-fest from 4.10.2 to 4.10.3 ([#169](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/169)) ([ab4d675](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/ab4d6759e3758b71de306a4c13fcb68dd4d12ab8)), closes [#764](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/764) + ## [1.6.0](https://github.com/antoinezanardi/werewolves-assistant-web-next/compare/v1.5.0...v1.6.0) (2024-2-22) diff --git a/package.json b/package.json index 52529fdc152..7e7cf321662 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "werewolves-assistant-web-next", - "version": "1.6.0", + "version": "1.7.0", "description": "Werewolves Assistant Web is a Nuxt Web App using the Werewolves Assistant API. It helps you, the game master, to manage your games of Werewolves Of Millers Hollow.", "readme": "README.md", "type": "module", From f59f8d3b2cc7109516fa44bd53be8f6284f2334b Mon Sep 17 00:00:00 2001 From: Antoine Zanardi Date: Sat, 24 Feb 2024 12:42:14 +0100 Subject: [PATCH 2/6] Update release-creation.yml --- .github/workflows/release-creation.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-creation.yml b/.github/workflows/release-creation.yml index fe8cd763a8a..54966a9dccd 100644 --- a/.github/workflows/release-creation.yml +++ b/.github/workflows/release-creation.yml @@ -269,7 +269,7 @@ jobs: outputs: CUCUMBER_SCENARIOS_COUNT: ${{ steps.outputs.outputs.CUCUMBER_SCENARIOS_COUNT }} needs: - - build + - install steps: - name: Checkout GitHub repository 📡 uses: actions/checkout@v4 @@ -444,4 +444,4 @@ jobs: uses: SonarSource/sonarcloud-github-action@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }} \ No newline at end of file + SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }} From 84db5aae23954d2d03281f3c2699d9d3cdbca7d6 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 24 Feb 2024 11:43:20 +0000 Subject: [PATCH 3/6] chore(release): 1.7.1 [skip ci] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [1.7.1](https://github.com/antoinezanardi/werewolves-assistant-web-next/compare/v1.7.0...v1.7.1) (2024-2-24) ### 🔁 CI * **badges:** generate badges on release creation ([#177](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/177)) ([4af228d](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/4af228df939c097d322d526be115011a22b0d748)), closes [#134](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/134) * **reports:** checkout directly to github pages branch ([#175](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/175)) ([3111da5](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/3111da588cb2b5745b52606fab698264ffd996a8)) --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f7d6eeacd7..35329c1e3a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # 🐺 Werewolves Assistant Web Versioning Changelog +## [1.7.1](https://github.com/antoinezanardi/werewolves-assistant-web-next/compare/v1.7.0...v1.7.1) (2024-2-24) + + +### 🔁 CI + +* **badges:** generate badges on release creation ([#177](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/177)) ([4af228d](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/4af228df939c097d322d526be115011a22b0d748)), closes [#134](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/134) +* **reports:** checkout directly to github pages branch ([#175](https://github.com/antoinezanardi/werewolves-assistant-web-next/issues/175)) ([3111da5](https://github.com/antoinezanardi/werewolves-assistant-web-next/commit/3111da588cb2b5745b52606fab698264ffd996a8)) + ## [1.7.0](https://github.com/antoinezanardi/werewolves-assistant-web-next/compare/v1.6.0...v1.7.0) (2024-2-24) diff --git a/package.json b/package.json index 7e7cf321662..60f715e267d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "werewolves-assistant-web-next", - "version": "1.7.0", + "version": "1.7.1", "description": "Werewolves Assistant Web is a Nuxt Web App using the Werewolves Assistant API. It helps you, the game master, to manage your games of Werewolves Of Millers Hollow.", "readme": "README.md", "type": "module", From 20f6d14c4798a1cddf893e59272517e9f995a4f4 Mon Sep 17 00:00:00 2001 From: Antoine ZANARDI Date: Sat, 24 Feb 2024 16:21:22 +0100 Subject: [PATCH 4/6] feat(game-playground): game playground basic structure --- .../GamePlayground/GamePlayground.vue | 18 +++++++++++++ .../GamePlaygroundContent.vue | 5 ++++ .../GamePlaygroundFooter.vue | 5 ++++ .../GamePlaygroundHeader.vue | 5 ++++ .../pages/game/GamePlaying/GamePlaying.vue | 19 +++++++++++--- .../GamePlaying/GameTeamSide/GameTeamSide.vue | 25 +++++++++++++++++++ .../GameTeamSidePlayer/GameTeamSidePlayer.vue | 11 ++++++++ .../game-team-side-player.types.ts | 7 ++++++ .../GameTeamSide/game-team-side.types.ts | 7 ++++++ .../players/player-role/player-role.class.ts | 16 ++++++++++++ .../players/player-role/player-side.class.ts | 13 ++++++++++ .../api/game/types/players/player.class.ts | 15 ++++++++++- 12 files changed, 142 insertions(+), 4 deletions(-) create mode 100644 components/pages/game/GamePlaying/GamePlayground/GamePlayground.vue create mode 100644 components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.vue create mode 100644 components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.vue create mode 100644 components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.vue create mode 100644 components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.vue create mode 100644 components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue create mode 100644 components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/game-team-side-player.types.ts create mode 100644 components/pages/game/GamePlaying/GameTeamSide/game-team-side.types.ts create mode 100644 composables/api/game/types/players/player-role/player-role.class.ts create mode 100644 composables/api/game/types/players/player-role/player-side.class.ts diff --git a/components/pages/game/GamePlaying/GamePlayground/GamePlayground.vue b/components/pages/game/GamePlaying/GamePlayground/GamePlayground.vue new file mode 100644 index 00000000000..3f53bf034de --- /dev/null +++ b/components/pages/game/GamePlaying/GamePlayground/GamePlayground.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.vue b/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.vue new file mode 100644 index 00000000000..dc27c846ff0 --- /dev/null +++ b/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.vue b/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.vue new file mode 100644 index 00000000000..d6f8cb2382a --- /dev/null +++ b/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.vue b/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.vue new file mode 100644 index 00000000000..7387cc94ee1 --- /dev/null +++ b/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GamePlaying.vue b/components/pages/game/GamePlaying/GamePlaying.vue index c7d8c669397..4ec4ec99b73 100644 --- a/components/pages/game/GamePlaying/GamePlaying.vue +++ b/components/pages/game/GamePlaying/GamePlaying.vue @@ -1,5 +1,18 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.vue b/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.vue new file mode 100644 index 00000000000..ce44ffd1aa8 --- /dev/null +++ b/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue b/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue new file mode 100644 index 00000000000..42c8d5b5c39 --- /dev/null +++ b/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/game-team-side-player.types.ts b/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/game-team-side-player.types.ts new file mode 100644 index 00000000000..77a7f9c3575 --- /dev/null +++ b/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/game-team-side-player.types.ts @@ -0,0 +1,7 @@ +import type { Player } from "~/composables/api/game/types/players/player.class"; + +type GameTeamSidePlayerProps = { + player: Player; +}; + +export type { GameTeamSidePlayerProps }; \ No newline at end of file diff --git a/components/pages/game/GamePlaying/GameTeamSide/game-team-side.types.ts b/components/pages/game/GamePlaying/GameTeamSide/game-team-side.types.ts new file mode 100644 index 00000000000..3c21b7a565e --- /dev/null +++ b/components/pages/game/GamePlaying/GameTeamSide/game-team-side.types.ts @@ -0,0 +1,7 @@ +import type { RoleSides } from "~/composables/api/role/enums/role.enums"; + +type GameTeamSideProps = { + side: RoleSides; +}; + +export type { GameTeamSideProps }; \ No newline at end of file diff --git a/composables/api/game/types/players/player-role/player-role.class.ts b/composables/api/game/types/players/player-role/player-role.class.ts new file mode 100644 index 00000000000..77a3c1f1c74 --- /dev/null +++ b/composables/api/game/types/players/player-role/player-role.class.ts @@ -0,0 +1,16 @@ +import { Expose } from "class-transformer"; + +import { RoleNames } from "~/composables/api/role/enums/role.enums"; + +class PlayerRole { + @Expose() + public original: RoleNames; + + @Expose() + public current: RoleNames; + + @Expose() + public isRevealed: boolean; +} + +export { PlayerRole }; \ No newline at end of file diff --git a/composables/api/game/types/players/player-role/player-side.class.ts b/composables/api/game/types/players/player-role/player-side.class.ts new file mode 100644 index 00000000000..7b61c706358 --- /dev/null +++ b/composables/api/game/types/players/player-role/player-side.class.ts @@ -0,0 +1,13 @@ +import { Expose } from "class-transformer"; + +import { RoleSides } from "~/composables/api/role/enums/role.enums"; + +class PlayerSide { + @Expose() + public original: RoleSides; + + @Expose() + public current: RoleSides; +} + +export { PlayerSide }; \ No newline at end of file diff --git a/composables/api/game/types/players/player.class.ts b/composables/api/game/types/players/player.class.ts index 248bb27803b..2666274fd9d 100644 --- a/composables/api/game/types/players/player.class.ts +++ b/composables/api/game/types/players/player.class.ts @@ -1,5 +1,7 @@ -import { Expose, plainToInstance } from "class-transformer"; +import { Expose, plainToInstance, Type } from "class-transformer"; +import { PlayerRole } from "~/composables/api/game/types/players/player-role/player-role.class"; +import { PlayerSide } from "~/composables/api/game/types/players/player-role/player-side.class"; import { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from "~/utils/constants/class-transformer.constants"; class Player { @@ -9,6 +11,17 @@ class Player { @Expose() public name: string; + @Expose() + @Type(() => PlayerRole) + public role: PlayerRole; + + @Expose() + @Type(() => PlayerSide) + public side: PlayerSide; + + @Expose() + public isAlive: boolean; + public static create(player: Player): Player { return plainToInstance(Player, player, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS); } From 6adfe24827ced6f9f9cc4ae9e8edda2a612c24cc Mon Sep 17 00:00:00 2001 From: Antoine ZANARDI Date: Sun, 25 Feb 2024 14:42:01 +0100 Subject: [PATCH 5/6] feat(game-playground): game playground basic structure --- .../players/player-role/player-role.class.ts | 7 +- .../players/player-role/player-side.class.ts | 7 +- tests/stryker/incremental.json | 19330 ++++++++-------- .../GamePlayground.nuxt.spec.ts | 17 + .../GamePlaygroundContent.nuxt.spec.ts | 17 + .../GamePlaygroundContent.nuxt.spec.ts.snap | 3 + .../GamePlaygroundFooter.nuxt.spec.ts | 17 + .../GamePlaygroundFooter.nuxt.spec.ts.snap | 3 + .../GamePlaygroundHeader.nuxt.spec.ts | 17 + .../GamePlaygroundHeader.nuxt.spec.ts.snap | 3 + .../GamePlayground.nuxt.spec.ts.snap | 9 + .../GameTeamSide/GameTeamSide.nuxt.spec.ts | 82 + .../GameTeamSidePlayer.nuxt.spec.ts | 20 + .../GameTeamSidePlayer.nuxt.spec.ts.snap | 3 + .../GameTeamSide.nuxt.spec.ts.snap | 3 + .../GamePlaying.nuxt.spec.ts.snap | 8 +- .../player-role/player-role.class.spec.ts | 21 + .../player-side/player-side.class.spec.ts | 19 + .../api/game/player/player.class.spec.ts | 10 + .../player/player-role/player-role.factory.ts | 14 + .../player/player-side/player-side.factory.ts | 13 + .../game/player/player-with-role.factory.ts | 273 + .../api/game/player/player.factory.ts | 17 + 23 files changed, 10467 insertions(+), 9446 deletions(-) create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlayground.nuxt.spec.ts create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.nuxt.spec.ts create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/__snapshots__/GamePlaygroundContent.nuxt.spec.ts.snap create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.nuxt.spec.ts create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/__snapshots__/GamePlaygroundFooter.nuxt.spec.ts.snap create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.nuxt.spec.ts create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/__snapshots__/GamePlaygroundHeader.nuxt.spec.ts.snap create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/__snapshots__/GamePlayground.nuxt.spec.ts.snap create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.nuxt.spec.ts create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/__snapshots__/GameTeamSidePlayer.nuxt.spec.ts.snap create mode 100644 tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/__snapshots__/GameTeamSide.nuxt.spec.ts.snap create mode 100644 tests/unit/specs/composables/api/game/player/player-role/player-role.class.spec.ts create mode 100644 tests/unit/specs/composables/api/game/player/player-side/player-side.class.spec.ts create mode 100644 tests/unit/utils/factories/composables/api/game/player/player-role/player-role.factory.ts create mode 100644 tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory.ts create mode 100644 tests/unit/utils/factories/composables/api/game/player/player-with-role.factory.ts create mode 100644 tests/unit/utils/factories/composables/api/game/player/player.factory.ts diff --git a/composables/api/game/types/players/player-role/player-role.class.ts b/composables/api/game/types/players/player-role/player-role.class.ts index 77a3c1f1c74..0c0f9d8b195 100644 --- a/composables/api/game/types/players/player-role/player-role.class.ts +++ b/composables/api/game/types/players/player-role/player-role.class.ts @@ -1,6 +1,7 @@ -import { Expose } from "class-transformer"; +import { Expose, plainToInstance } from "class-transformer"; import { RoleNames } from "~/composables/api/role/enums/role.enums"; +import { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from "~/utils/constants/class-transformer.constants"; class PlayerRole { @Expose() @@ -11,6 +12,10 @@ class PlayerRole { @Expose() public isRevealed: boolean; + + public static create(role: Partial): PlayerRole { + return plainToInstance(PlayerRole, role, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS); + } } export { PlayerRole }; \ No newline at end of file diff --git a/composables/api/game/types/players/player-role/player-side.class.ts b/composables/api/game/types/players/player-role/player-side.class.ts index 7b61c706358..6985b393dfe 100644 --- a/composables/api/game/types/players/player-role/player-side.class.ts +++ b/composables/api/game/types/players/player-role/player-side.class.ts @@ -1,6 +1,7 @@ -import { Expose } from "class-transformer"; +import { Expose, plainToInstance } from "class-transformer"; import { RoleSides } from "~/composables/api/role/enums/role.enums"; +import { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from "~/utils/constants/class-transformer.constants"; class PlayerSide { @Expose() @@ -8,6 +9,10 @@ class PlayerSide { @Expose() public current: RoleSides; + + public static create(side: Partial): PlayerSide { + return plainToInstance(PlayerSide, side, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS); + } } export { PlayerSide }; \ No newline at end of file diff --git a/tests/stryker/incremental.json b/tests/stryker/incremental.json index 840cdd4a4f4..18f3f8ff6ad 100644 --- a/tests/stryker/incremental.json +++ b/tests/stryker/incremental.json @@ -1,971 +1,929 @@ { "files": { - "components/pages/about/AboutAvailableRoles/AboutAvailableRoleDescription/AboutAvailableRoleDescription.vue": { + "components/layouts/default/NavBar/ParametersMenu/ParametersMenu.vue": { "language": "html", "mutants": [ { - "id": "31", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "0", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "Snapshot `Parameters Menu Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "122" + "66" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 2, - "line": 67 + "column": 3, + "line": 49 }, "start": { - "column": 55, - "line": 58 + "column": 42, + "line": 36 } } }, { - "id": "32", - "mutatorName": "BooleanLiteral", - "replacement": "roleDescriptionMessages", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "1", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "122" + "69" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 31, - "line": 63 + "column": 2, + "line": 49 }, "start": { - "column": 7, - "line": 63 + "column": 49, + "line": 36 } } }, { - "id": "33", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "2", + "mutatorName": "BooleanLiteral", + "replacement": "!game.value._id", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "122" + "69" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 31, - "line": 63 + "column": 28, + "line": 37 }, "start": { - "column": 7, - "line": 63 + "column": 12, + "line": 37 } } }, { - "id": "34", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "Test timed out in 5000ms.\nIf this is a long-running test, pass a timeout value as the last argument or configure it globally with \"testTimeout\".", + "id": "3", + "mutatorName": "BooleanLiteral", + "replacement": "game.value._id", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 8, + "testsCompleted": 4, "static": false, "killedBy": [ - "129" + "69" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 31, - "line": 63 + "column": 28, + "line": 37 }, "start": { - "column": 7, - "line": 63 + "column": 13, + "line": 37 } } }, { - "id": "35", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Test timed out in 5000ms.\nIf this is a long-running test, pass a timeout value as the last argument or configure it globally with \"testTimeout\".", + "id": "4", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 5, "static": false, "killedBy": [ - "129" + "70" ], "coveredBy": [ - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 4, - "line": 65 + "column": 44, + "line": 38 }, "start": { - "column": 33, - "line": 63 + "column": 12, + "line": 38 } } }, { - "id": "36", + "id": "5", "mutatorName": "ArrayDeclaration", - "replacement": "[\"Stryker was here\"]", - "statusReason": "expected [ DOMWrapper{ …(2) } ] to have a length of +0 but got 1", + "replacement": "[]", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "129" + "69" ], "coveredBy": [ - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 14, - "line": 64 + "column": 4, + "line": 48 }, "start": { - "column": 12, - "line": 64 + "column": 10, + "line": 39 } } }, { - "id": "37", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "6", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "122" + "69" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 142, - "line": 66 + "column": 6, + "line": 47 }, "start": { - "column": 51, - "line": 66 + "column": 5, + "line": 40 } } }, { - "id": "38", + "id": "7", "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "replacement": "\"\"", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "122" + "69" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 141, - "line": 66 + "column": 54, + "line": 41 }, "start": { - "column": 60, - "line": 66 + "column": 16, + "line": 41 } } }, { - "id": "39", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "8", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 5, "static": false, "killedBy": [ - "122" + "70" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 2, - "line": 71 + "column": 36, + "line": 42 }, "start": { - "column": 70, - "line": 69 + "column": 13, + "line": 42 } } }, { - "id": "40", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "9", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "122" + "69" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 82, - "line": 70 + "column": 48, + "line": 43 }, "start": { - "column": 12, - "line": 70 + "column": 17, + "line": 43 } } }, { - "id": "41", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "10", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 5, "static": false, "killedBy": [ - "122" + "70" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 120, - "line": 70 + "column": 48, + "line": 43 }, "start": { - "column": 84, - "line": 70 + "column": 17, + "line": 43 } } - } - ], - "source": "\n\n\n\n" - }, - "components/pages/about/AboutAvailableRoles/AboutAvailableRoles.vue": { - "language": "html", - "mutants": [ + }, { - "id": "42", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected '' to be 'components.AboutAvailableRoles.assist…' // Object.is equality", + "id": "11", + "mutatorName": "EqualityOperator", + "replacement": "game.value.status === \"playing\"", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 4, "static": false, "killedBy": [ - "91" + "69" ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 2, - "line": 81 + "column": 48, + "line": 43 }, "start": { - "column": 63, - "line": 76 + "column": 17, + "line": 43 } } }, { - "id": "43", - "mutatorName": "BooleanLiteral", - "replacement": "roles.value", - "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", + "id": "12", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "86" + "69" ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 19, - "line": 77 + "column": 48, + "line": 43 }, "start": { - "column": 7, - "line": 77 + "column": 39, + "line": 43 } } }, { - "id": "44", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected '' to be 'components.AboutAvailableRoles.assist…' // Object.is equality", + "id": "13", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 1, "static": false, "killedBy": [ - "91" + "69" ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95" + "69", + "73" ], "location": { "end": { - "column": 19, - "line": 77 + "column": 8, + "line": 46 }, "start": { - "column": 7, - "line": 77 + "column": 28, + "line": 44 } } }, { - "id": "45", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", + "id": "14", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "Snapshot `Parameters Menu Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "86" + "66" ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 19, - "line": 77 + "column": 2, + "line": 61 }, "start": { - "column": 7, - "line": 77 + "column": 50, + "line": 51 } } }, { - "id": "46", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", + "id": "15", + "mutatorName": "ArrayDeclaration", + "replacement": "[]", + "statusReason": "Snapshot `Parameters Menu Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "86" + "66" ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 4, - "line": 79 + "column": 2, + "line": 61 }, "start": { - "column": 21, - "line": 77 + "column": 56, + "line": 51 } } }, { - "id": "47", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected ', 3' to be 'components.AboutAvailableRoles.assist…' // Object.is equality", + "id": "16", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expected [ { visible: false, …(2) }, {} ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 5, "static": false, "killedBy": [ - "91" + "70" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 66, - "line": 80 + "column": 4, + "line": 60 }, "start": { - "column": 12, - "line": 80 + "column": 3, + "line": 53 } } }, { - "id": "48", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected { headerAction: { …(1) } } to strictly equal { Object (headerAction) }", + "id": "17", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ { visible: false, …(2) }, …(1) ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 5, "static": false, "killedBy": [ - "93" + "70" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 2, - "line": 85 + "column": 52, + "line": 54 }, "start": { - "column": 80, - "line": 83 + "column": 14, + "line": 54 } } }, { - "id": "49", + "id": "18", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expected { Object (headerAction) } to strictly equal { Object (headerAction) }", + "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 5, "static": false, "killedBy": [ - "93" + "70" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 73, - "line": 84 + "column": 27, + "line": 55 }, "start": { - "column": 12, - "line": 84 + "column": 11, + "line": 55 } } }, { - "id": "50", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expected { Object (headerAction) } to strictly equal { Object (headerAction) }", + "id": "19", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 5, "static": false, "killedBy": [ - "93" + "70" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "208", + "252" ], "location": { "end": { - "column": 111, - "line": 84 + "column": 57, + "line": 56 }, "start": { - "column": 75, - "line": 84 + "column": 19, + "line": 56 } } }, { - "id": "51", + "id": "20", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected undefined to be 'components.AboutAvailableRoles.availa…' // Object.is equality", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "94" + "74" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95" + "74" ], "location": { "end": { - "column": 2, - "line": 89 + "column": 6, + "line": 59 }, "start": { - "column": 70, - "line": 87 + "column": 21, + "line": 57 } } }, { - "id": "52", + "id": "21", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expected ', {\"role\":\"werewolf\"}' to be 'components.AboutAvailableRoles.availa…' // Object.is equality", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/\",\n], but it was called with \"\"", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "94" + "74" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95" + "74" ], "location": { "end": { - "column": 63, - "line": 88 - }, - "start": { - "column": 12, - "line": 88 - } - } - }, - { - "id": "53", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expected 'components.AboutAvailableRoles.availa…' to be 'components.AboutAvailableRoles.availa…' // Object.is equality", - "status": "Killed", - "testsCompleted": 4, - "static": false, - "killedBy": [ - "94" - ], - "coveredBy": [ - "91", - "92", - "93", - "94", - "95" - ], - "location": { - "end": { - "column": 101, - "line": 88 - }, - "start": { - "column": 65, - "line": 88 - } - } - } - ], - "source": "\n\n" - }, - "components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.vue": { - "language": "html", - "mutants": [ - { - "id": "54", - "mutatorName": "BooleanLiteral", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", - "status": "Killed", - "testsCompleted": 1, - "static": false, - "killedBy": [ - "56" - ], - "coveredBy": [ - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65" - ], - "location": { - "end": { - "column": 61, - "line": 38 + "column": 26, + "line": 58 }, "start": { - "column": 56, - "line": 38 + "column": 23, + "line": 58 } } }, { - "id": "55", + "id": "22", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "56" + "67" ], "coveredBy": [ - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65" + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74" ], "location": { "end": { "column": 2, - "line": 45 + "line": 70 }, "start": { - "column": 61, - "line": 40 + "column": 56, + "line": 65 } } }, { - "id": "56", + "id": "23", "mutatorName": "BooleanLiteral", - "replacement": "isMinimumPlayersReached.value", - "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", + "replacement": "parametersMenu.value", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "56" + "67" ], "coveredBy": [ - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65" + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74" ], "location": { "end": { - "column": 37, - "line": 41 + "column": 28, + "line": 66 }, "start": { "column": 7, - "line": 41 + "line": 66 } } }, { - "id": "57", + "id": "24", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "expected 'components.GameLobbyRandomComposition…' to be undefined", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "58" + "67" ], "coveredBy": [ - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65" + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74" ], "location": { "end": { - "column": 37, - "line": 41 + "column": 28, + "line": 66 }, "start": { "column": 7, - "line": 41 + "line": 66 } } }, { - "id": "58", + "id": "25", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "56" + "68" ], "coveredBy": [ - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65" + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74" ], "location": { "end": { - "column": 37, - "line": 41 + "column": 28, + "line": 66 }, "start": { "column": 7, - "line": 41 + "line": 66 } } }, { - "id": "59", + "id": "26", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "56" + "68" ], "coveredBy": [ - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65" + "68" ], "location": { "end": { "column": 4, - "line": 43 + "line": 68 }, "start": { - "column": 39, - "line": 41 + "column": 30, + "line": 66 } } }, { - "id": "60", + "id": "27", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"Parameters Menu is not initialized\",\n], but it was called with \"\"", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "56" + "68" ], "coveredBy": [ - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65" + "68" ], "location": { "end": { - "column": 80, - "line": 42 + "column": 59, + "line": 67 }, "start": { - "column": 14, - "line": 42 + "column": 23, + "line": 67 } } }, { - "id": "61", + "id": "28", "mutatorName": "BlockStatement", "replacement": "{}", "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", @@ -973,6106 +931,5655 @@ "testsCompleted": 1, "static": false, "killedBy": [ - "61" + "69" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "69", + "73" ], "location": { "end": { "column": 2, - "line": 61 + "line": 75 }, "start": { - "column": 68, - "line": 47 + "column": 29, + "line": 72 } } }, { - "id": "62", - "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", + "id": "29", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.ParametersMenu.gameCanceled\",\n },\n], but it was called with Object {}", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "64" + "69" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "69", + "73" ], "location": { "end": { - "column": 49, - "line": 48 + "column": 75, + "line": 74 }, "start": { - "column": 45, - "line": 48 + "column": 19, + "line": 74 } } }, { - "id": "63", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"excludedRoles\": Array [\n \"thief\",\n \"actor\",\n \"prejudiced-manipulator\",\n ],\n \"players\": Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 2\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 3\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 4\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ],\n },\n], but it was called with Object {}", + "id": "30", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.ParametersMenu.gameCanceled\",\n },\n], but it was called with Object {\n \"summary\": \"\",\n}", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "61" + "69" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "69", + "73" ], "location": { "end": { - "column": 4, - "line": 56 + "column": 72, + "line": 74 }, "start": { - "column": 66, - "line": 49 + "column": 32, + "line": 74 } } - }, + } + ], + "source": "\n\n" + }, + "components/pages/about/AboutAvailableRoles/AboutAvailableRoleDescription/AboutAvailableRoleDescription.vue": { + "language": "html", + "mutants": [ { - "id": "64", - "mutatorName": "ArrayDeclaration", - "replacement": "[]", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"excludedRoles\": Array [\n \"thief\",\n \"actor\",\n \"prejudiced-manipulator\",\n ],\n \"players\": Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 2\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 3\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 4\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ],\n },\n], but it was called with Object {\n \"excludedRoles\": Array [],\n \"players\": Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 2\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 3\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 4\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ],\n}", + "id": "31", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "61" + "122" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 6, - "line": 55 + "column": 2, + "line": 67 }, "start": { - "column": 20, - "line": 51 + "column": 55, + "line": 58 } } }, { - "id": "65", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n null,\n ]\n\n\nNumber of calls: 1\n", + "id": "32", + "mutatorName": "BooleanLiteral", + "replacement": "roleDescriptionMessages", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "63" + "122" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 37, - "line": 57 + "column": 31, + "line": 63 }, "start": { "column": 7, - "line": 57 + "line": 63 } } }, { - "id": "66", + "id": "33", "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "replacement": "true", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "62" + "122" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 37, - "line": 57 + "column": 31, + "line": 63 }, "start": { "column": 7, - "line": 57 + "line": 63 } } }, { - "id": "67", - "mutatorName": "EqualityOperator", - "replacement": "randomGameComposition === null", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "34", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "Test timed out in 5000ms.\nIf this is a long-running test, pass a timeout value as the last argument or configure it globally with \"testTimeout\".", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 8, "static": false, "killedBy": [ - "62" + "129" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 37, - "line": 57 + "column": 31, + "line": 63 }, "start": { "column": 7, - "line": 57 + "line": 63 } } }, { - "id": "68", + "id": "35", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "Test timed out in 5000ms.\nIf this is a long-running test, pass a timeout value as the last argument or configure it globally with \"testTimeout\".", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "62" + "129" ], "coveredBy": [ - "61", - "62", - "64", - "65" + "129" ], "location": { "end": { "column": 4, - "line": 59 + "line": 65 }, "start": { - "column": 39, - "line": 57 + "column": 33, + "line": 63 } } }, { - "id": "69", - "mutatorName": "BooleanLiteral", - "replacement": "true", - "statusReason": "expected 'true' to be 'false' // Object.is equality", + "id": "36", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "expected [ DOMWrapper{ …(2) } ] to have a length of +0 but got 1", "status": "Killed", - "testsCompleted": 5, + "testsCompleted": 1, "static": false, "killedBy": [ - "65" + "129" ], "coveredBy": [ - "61", - "62", - "63", - "64", - "65" + "129" ], "location": { "end": { - "column": 50, - "line": 60 + "column": 14, + "line": 64 }, "start": { - "column": 45, - "line": 60 + "column": 12, + "line": 64 } } - } - ], - "source": "\n\n" - }, - "components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.vue": { - "language": "html", - "mutants": [ + }, { - "id": "81", - "mutatorName": "StringLiteral", - "replacement": "\"Stryker was here!\"", - "statusReason": "Snapshot `Game Lobby Header Component > should match snapshot when rendered. 1` mismatched", + "id": "37", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "96" + "122" ], "coveredBy": [ - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 40, - "line": 35 + "column": 142, + "line": 66 }, "start": { - "column": 38, - "line": 35 + "column": 51, + "line": 66 } } }, { - "id": "82", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "38", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "100" + "122" ], "coveredBy": [ - "100", - "101", - "102", - "103", - "104", - "105" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 2, - "line": 57 + "column": 141, + "line": 66 }, "start": { - "column": 43, - "line": 39 + "column": 60, + "line": 66 } } }, { - "id": "83", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "39", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 5, + "testsCompleted": 1, "static": false, "killedBy": [ - "104" + "122" ], "coveredBy": [ - "100", - "101", - "102", - "103", - "104", - "105" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 42, - "line": 40 + "column": 2, + "line": 71 }, "start": { - "column": 7, - "line": 40 + "column": 70, + "line": 69 } } }, { - "id": "84", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "40", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "100" + "122" ], "coveredBy": [ - "100", - "101", - "102", - "103", - "104", - "105" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 42, - "line": 40 + "column": 82, + "line": 70 }, "start": { - "column": 7, - "line": 40 + "column": 12, + "line": 70 } } }, { - "id": "85", - "mutatorName": "EqualityOperator", - "replacement": "gameLobbyPlayerInput.value !== null", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "41", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "100" + "122" ], "coveredBy": [ - "100", - "101", - "102", - "103", - "104", - "105" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129" ], "location": { "end": { - "column": 42, - "line": 40 + "column": 120, + "line": 70 }, "start": { - "column": 7, - "line": 40 + "column": 84, + "line": 70 } } - }, + } + ], + "source": "\n\n\n\n" + }, + "components/pages/about/AboutAvailableRoles/AboutAvailableRoles.vue": { + "language": "html", + "mutants": [ { - "id": "86", + "id": "42", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "expected '' to be 'components.AboutAvailableRoles.assist…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 6, "static": false, "killedBy": [ - "100" + "91" ], "coveredBy": [ - "100" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 4, - "line": 42 + "column": 2, + "line": 81 }, "start": { - "column": 44, - "line": 40 + "column": 63, + "line": 76 } } }, { - "id": "87", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"Game Lobby Player Input is not initialized\",\n], but it was called with \"\"", + "id": "43", + "mutatorName": "BooleanLiteral", + "replacement": "roles.value", + "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "100" + "86" ], "coveredBy": [ - "100" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 67, - "line": 41 + "column": 19, + "line": 77 }, "start": { - "column": 23, - "line": 41 + "column": 7, + "line": 77 } } }, { - "id": "88", + "id": "44", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "expected '' to be 'components.AboutAvailableRoles.assist…' // Object.is equality", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 6, "static": false, "killedBy": [ - "104" + "91" ], "coveredBy": [ - "101", - "102", - "103", - "104", - "105" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 53, - "line": 43 + "column": 19, + "line": 77 }, "start": { "column": 7, - "line": 43 + "line": 77 } } }, { - "id": "89", + "id": "45", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "expected '' to be 'Player 1' // Object.is equality", + "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "101" + "86" ], "coveredBy": [ - "101", - "102", - "103", - "104", - "105" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 53, - "line": 43 + "column": 19, + "line": 77 }, "start": { "column": 7, - "line": 43 + "line": 77 } } }, { - "id": "90", + "id": "46", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected '' to be 'Player 1' // Object.is equality", + "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "101" + "86" ], "coveredBy": [ - "101", - "102" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { "column": 4, - "line": 45 + "line": 79 }, "start": { - "column": 55, - "line": 43 + "column": 21, + "line": 77 } } }, { - "id": "91", - "mutatorName": "MethodExpression", - "replacement": "playerInputValue.value", - "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \" \",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", + "id": "47", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected ', 3' to be 'components.AboutAvailableRoles.assist…' // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "103" + "91" ], "coveredBy": [ - "103", - "104", - "105" + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 64, - "line": 46 + "column": 66, + "line": 80 }, "start": { - "column": 35, - "line": 46 + "column": 12, + "line": 80 } } }, { - "id": "92", - "mutatorName": "StringLiteral", - "replacement": "\"Stryker was here!\"", - "statusReason": "expected 'Stryker was here!' to be '' // Object.is equality", + "id": "48", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected { headerAction: { …(1) } } to strictly equal { Object (headerAction) }", "status": "Killed", "testsCompleted": 3, "static": false, "killedBy": [ - "105" + "93" ], "coveredBy": [ - "103", - "104", - "105" + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 30, - "line": 47 + "column": 2, + "line": 85 }, "start": { - "column": 28, - "line": 47 + "column": 80, + "line": 83 } } }, { - "id": "93", - "mutatorName": "BooleanLiteral", - "replacement": "trimmedPlayerInputValue", - "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", + "id": "49", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected { Object (headerAction) } to strictly equal { Object (headerAction) }", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "103" + "93" ], "coveredBy": [ - "103", - "104", - "105" + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 31, - "line": 48 + "column": 73, + "line": 84 }, "start": { - "column": 7, - "line": 48 + "column": 12, + "line": 84 } } }, { - "id": "94", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "50", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expected { Object (headerAction) } to strictly equal { Object (headerAction) }", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 3, "static": false, "killedBy": [ - "104" + "93" ], "coveredBy": [ - "103", - "104", - "105" + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 31, - "line": 48 + "column": 111, + "line": 84 }, "start": { - "column": 7, - "line": 48 + "column": 75, + "line": 84 } } }, { - "id": "95", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", + "id": "51", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected undefined to be 'components.AboutAvailableRoles.availa…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "103" + "94" ], "coveredBy": [ - "103", - "104", - "105" + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 31, - "line": 48 + "column": 2, + "line": 89 }, "start": { - "column": 7, - "line": 48 + "column": 70, + "line": 87 } } }, { - "id": "96", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", + "id": "52", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected ', {\"role\":\"werewolf\"}' to be 'components.AboutAvailableRoles.availa…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "103" + "94" ], "coveredBy": [ - "103" + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 4, - "line": 50 + "column": 63, + "line": 88 }, "start": { - "column": 33, - "line": 48 + "column": 12, + "line": 88 } } }, { - "id": "97", + "id": "53", "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n], but it was called with _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": undefined,\n \"role\": undefined,\n \"side\": undefined,\n}", + "statusReason": "expected 'components.AboutAvailableRoles.availa…' to be 'components.AboutAvailableRoles.availa…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "104" + "94" ], "coveredBy": [ - "104", - "105" + "91", + "92", + "93", + "94", + "95" ], "location": { "end": { - "column": 4, - "line": 55 + "column": 101, + "line": 88 }, "start": { - "column": 71, - "line": 51 + "column": 65, + "line": 88 } } } ], - "source": "\n\n" + "source": "\n\n" }, - "components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.vue": { + "components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.vue": { "language": "html", "mutants": [ { - "id": "98", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "We can't mutate defineModel macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", - "status": "Ignored", - "static": false, - "location": { - "end": { - "column": 58, - "line": 66 - }, - "start": { - "column": 40, - "line": 66 - } - } - }, - { - "id": "99", + "id": "60", "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "We can't mutate defineModel macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", - "status": "Ignored", - "static": false, - "location": { - "end": { - "column": 56, - "line": 66 - }, - "start": { - "column": 52, - "line": 66 - } - } - }, - { - "id": "100", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", + "replacement": "true", + "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "44" + "56" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 139, - "line": 68 + "column": 61, + "line": 38 }, "start": { - "column": 53, - "line": 68 + "column": 56, + "line": 38 } } }, { - "id": "101", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.every(({\n name\n}) => name === inputValue.value.trim())", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "61", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "41" + "56" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 139, - "line": 68 + "column": 2, + "line": 45 }, "start": { - "column": 59, - "line": 68 + "column": 61, + "line": 40 } } }, { - "id": "102", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", + "id": "62", + "mutatorName": "BooleanLiteral", + "replacement": "isMinimumPlayersReached.value", + "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "44" + "56" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 138, - "line": 68 + "column": 37, + "line": 41 }, "start": { - "column": 92, - "line": 68 + "column": 7, + "line": 41 } } }, { - "id": "103", + "id": "63", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "expected 'true' to be 'false' // Object.is equality", + "statusReason": "expected 'components.GameLobbyRandomComposition…' to be undefined", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 3, "static": false, "killedBy": [ - "50" + "58" ], "coveredBy": [ - "43", - "44", - "45", - "47", - "48", - "49", - "50", - "52", - "53" + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 138, - "line": 68 + "column": 37, + "line": 41 }, "start": { - "column": 106, - "line": 68 + "column": 7, + "line": 41 } } }, { - "id": "104", + "id": "64", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", + "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "44" + "56" ], "coveredBy": [ - "43", - "44", - "45", - "47", - "48", - "49", - "50", - "52", - "53" + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 138, - "line": 68 + "column": 37, + "line": 41 }, "start": { - "column": 106, - "line": 68 + "column": 7, + "line": 41 } } }, { - "id": "105", - "mutatorName": "EqualityOperator", - "replacement": "name !== inputValue.value.trim()", - "statusReason": "expected 'true' to be 'false' // Object.is equality", + "id": "65", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 1, "static": false, "killedBy": [ - "50" + "56" ], "coveredBy": [ - "43", - "44", - "45", - "47", - "48", - "49", - "50", - "52", - "53" + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 138, - "line": 68 + "column": 4, + "line": 43 }, "start": { - "column": 106, - "line": 68 + "column": 39, + "line": 41 } } }, { - "id": "106", - "mutatorName": "MethodExpression", - "replacement": "inputValue.value", - "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", + "id": "66", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Game Lobby Random Composition Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "44" + "56" ], "coveredBy": [ - "43", - "44", - "45", - "47", - "48", - "49", - "50", - "52", - "53" + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 138, - "line": 68 + "column": 80, + "line": 42 }, "start": { - "column": 115, - "line": 68 + "column": 14, + "line": 42 } } }, { - "id": "107", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "67", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 14, + "testsCompleted": 1, "static": false, "killedBy": [ - "54" + "61" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 119, - "line": 70 + "column": 2, + "line": 61 }, "start": { - "column": 57, - "line": 70 + "column": 68, + "line": 47 } } }, { - "id": "108", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "68", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "41" + "64" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 119, - "line": 70 + "column": 49, + "line": 48 }, "start": { - "column": 63, - "line": 70 + "column": 45, + "line": 48 } } }, { - "id": "109", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "69", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"excludedRoles\": Array [\n \"thief\",\n \"actor\",\n \"prejudiced-manipulator\",\n ],\n \"players\": Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 2\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 3\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 4\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ],\n },\n], but it was called with Object {}", "status": "Killed", - "testsCompleted": 14, + "testsCompleted": 1, "static": false, "killedBy": [ - "54" + "61" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 119, - "line": 70 + "column": 4, + "line": 56 }, "start": { - "column": 63, - "line": 70 + "column": 66, + "line": 49 } } }, { - "id": "110", - "mutatorName": "EqualityOperator", - "replacement": "inputValue.value.trim().length > MAX_PLAYER_NAME_LENGTH", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "70", + "mutatorName": "ArrayDeclaration", + "replacement": "[]", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"excludedRoles\": Array [\n \"thief\",\n \"actor\",\n \"prejudiced-manipulator\",\n ],\n \"players\": Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 2\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 3\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 4\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ],\n },\n], but it was called with Object {\n \"excludedRoles\": Array [],\n \"players\": Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 2\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 3\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 4\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ],\n}", "status": "Killed", - "testsCompleted": 14, + "testsCompleted": 1, "static": false, "killedBy": [ - "54" + "61" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 119, - "line": 70 + "column": 6, + "line": 55 }, "start": { - "column": 63, - "line": 70 + "column": 20, + "line": 51 } } }, { - "id": "111", - "mutatorName": "EqualityOperator", - "replacement": "inputValue.value.trim().length < MAX_PLAYER_NAME_LENGTH", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "71", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n null,\n ]\n\n\nNumber of calls: 1\n", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "41" + "63" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 119, - "line": 70 + "column": 37, + "line": 57 }, "start": { - "column": 63, - "line": 70 + "column": 7, + "line": 57 } } }, { - "id": "112", - "mutatorName": "MethodExpression", - "replacement": "inputValue.value", - "statusReason": "expected 'components.GameLobbyPlayerInput.playe…' to be 'components.GameLobbyPlayerInput.pleas…' // Object.is equality", + "id": "72", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 15, + "testsCompleted": 2, "static": false, "killedBy": [ - "55" + "62" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 86, - "line": 70 + "column": 37, + "line": 57 }, "start": { - "column": 63, - "line": 70 + "column": 7, + "line": 57 } } }, { - "id": "113", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "73", + "mutatorName": "EqualityOperator", + "replacement": "randomGameComposition === null", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "41" + "62" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 113, - "line": 72 + "column": 37, + "line": 57 }, "start": { - "column": 50, - "line": 72 + "column": 7, + "line": 57 } } }, { - "id": "114", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "74", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "41" + "62" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "64", + "65" ], "location": { "end": { - "column": 113, - "line": 72 + "column": 4, + "line": 59 }, "start": { - "column": 56, - "line": 72 + "column": 39, + "line": 57 } } }, { - "id": "115", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected 'false' to be 'true' // Object.is equality", + "id": "75", + "mutatorName": "BooleanLiteral", + "replacement": "true", + "statusReason": "expected 'true' to be 'false' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 5, "static": false, "killedBy": [ - "43" + "65" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "61", + "62", + "63", + "64", + "65" ], "location": { "end": { - "column": 113, - "line": 72 + "column": 50, + "line": 60 }, "start": { - "column": 56, - "line": 72 + "column": 45, + "line": 60 } } - }, + } + ], + "source": "\n\n" + }, + "components/pages/game-lobby/GameLobbyFooter/GameLobbyStartGameButton/GameLobbyStartGameButton.vue": { + "language": "html", + "mutants": [ { - "id": "116", - "mutatorName": "EqualityOperator", - "replacement": "createGameDto.value.players.length > MAX_PLAYERS_IN_GAME", - "statusReason": "expected 'false' to be 'true' // Object.is equality", + "id": "76", + "mutatorName": "BooleanLiteral", + "replacement": "true", + "statusReason": "Snapshot `Game Lobby Start Game Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "43" + "75" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 113, - "line": 72 + "column": 47, + "line": 38 }, "start": { - "column": 56, - "line": 72 + "column": 42, + "line": 38 } } }, { - "id": "117", - "mutatorName": "EqualityOperator", - "replacement": "createGameDto.value.players.length < MAX_PLAYERS_IN_GAME", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "77", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "Snapshot `Game Lobby Start Game Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "41" + "75" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 113, - "line": 72 + "column": 98, + "line": 40 }, "start": { - "column": 56, - "line": 72 + "column": 55, + "line": 40 } } }, { - "id": "118", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "78", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "41" + "80" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 77, - "line": 74 + "column": 2, + "line": 50 }, "start": { - "column": 43, - "line": 74 + "column": 60, + "line": 42 } } }, { - "id": "119", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "79", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 5, "static": false, "killedBy": [ - "41" + "84" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 109, - "line": 76 + "column": 35, + "line": 43 }, "start": { - "column": 47, - "line": 76 + "column": 31, + "line": 43 } } }, { - "id": "120", + "id": "80", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "expected 'true' to be 'false' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 6, "static": false, "killedBy": [ - "41" + "85" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 109, - "line": 76 + "column": 18, + "line": 45 }, "start": { - "column": 53, - "line": 76 + "column": 7, + "line": 45 } } }, { - "id": "121", + "id": "81", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "expected 'false' to be 'true' // Object.is equality", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 2, "static": false, "killedBy": [ - "47" + "81" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 109, - "line": 76 + "column": 18, + "line": 45 }, "start": { - "column": 53, - "line": 76 + "column": 7, + "line": 45 } } }, { - "id": "122", - "mutatorName": "LogicalOperator", - "replacement": "doesPlayerNameExistInGame.value && isInputDisabled.value", - "statusReason": "expected 'false' to be 'true' // Object.is equality", + "id": "82", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 1, "static": false, "killedBy": [ - "47" + "81" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "81", + "82" ], "location": { "end": { - "column": 109, - "line": 76 + "column": 4, + "line": 48 }, "start": { - "column": 53, - "line": 76 + "column": 20, + "line": 45 } } }, { - "id": "123", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "83", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/game/a083cc4d-0e66-4cae-8c6b-9ec36224ce6d\",\n], but it was called with \"\"", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "41" + "81" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "81", + "82" ], "location": { "end": { - "column": 2, - "line": 89 + "column": 48, + "line": 46 }, "start": { - "column": 56, - "line": 78 + "column": 22, + "line": 46 } } }, { - "id": "124", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "84", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.GameLobbyStartGameButton.gameCreated\",\n },\n], but it was called with Object {}", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "41" + "82" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "81", + "82" ], "location": { "end": { - "column": 35, - "line": 79 + "column": 86, + "line": 47 }, "start": { - "column": 7, - "line": 79 + "column": 21, + "line": 47 } } }, { - "id": "125", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.maxPl…' // Object.is equality", + "id": "85", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.GameLobbyStartGameButton.gameCreated\",\n },\n], but it was called with Object {\n \"summary\": \"\",\n}", "status": "Killed", - "testsCompleted": 12, + "testsCompleted": 2, "static": false, "killedBy": [ - "52" + "82" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "81", + "82" ], "location": { "end": { - "column": 35, - "line": 79 + "column": 83, + "line": 47 }, "start": { - "column": 7, - "line": 79 + "column": 34, + "line": 47 } } }, { - "id": "126", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.maxPl…' // Object.is equality", + "id": "86", + "mutatorName": "BooleanLiteral", + "replacement": "true", + "statusReason": "expected 'true' to be 'false' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 6, "static": false, "killedBy": [ - "52" + "85" ], "coveredBy": [ - "43", - "47", - "52" + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 81 + "column": 36, + "line": 49 }, "start": { - "column": 37, - "line": 79 + "column": 31, + "line": 49 } } - }, + } + ], + "source": "\n\n" + }, + "components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.vue": { + "language": "html", + "mutants": [ { - "id": "127", + "id": "87", "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected '' to be 'components.GameLobbyPlayerInput.maxPl…' // Object.is equality", + "replacement": "\"Stryker was here!\"", + "statusReason": "Snapshot `Game Lobby Header Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "52" + "96" ], "coveredBy": [ - "43", - "47", - "52" + "96", + "97", + "98", + "99", + "100", + "101", + "102", + "103", + "104", + "105" ], "location": { "end": { - "column": 65, - "line": 80 + "column": 40, + "line": 35 }, "start": { - "column": 14, - "line": 80 + "column": 38, + "line": 35 } } }, { - "id": "128", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "88", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "41" + "100" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "100", + "101", + "102", + "103", + "104", + "105" ], "location": { "end": { - "column": 38, - "line": 82 + "column": 2, + "line": 57 }, "start": { - "column": 7, - "line": 82 + "column": 43, + "line": 39 } } }, { - "id": "129", + "id": "89", "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "replacement": "true", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 13, + "testsCompleted": 5, "static": false, "killedBy": [ - "53" + "104" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "100", + "101", + "102", + "103", + "104", + "105" ], "location": { "end": { - "column": 38, - "line": 82 + "column": 42, + "line": 40 }, "start": { "column": 7, - "line": 82 + "line": 40 } } }, { - "id": "130", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "90", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "53" + "100" ], "coveredBy": [ - "44", - "48", - "49", - "53" + "100", + "101", + "102", + "103", + "104", + "105" ], "location": { "end": { - "column": 4, - "line": 84 + "column": 42, + "line": 40 }, "start": { - "column": 40, - "line": 82 + "column": 7, + "line": 40 } } }, { - "id": "131", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected '' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "91", + "mutatorName": "EqualityOperator", + "replacement": "gameLobbyPlayerInput.value !== null", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "53" + "100" ], "coveredBy": [ - "44", - "48", - "49", - "53" + "100", + "101", + "102", + "103", + "104", + "105" ], "location": { "end": { - "column": 72, - "line": 83 + "column": 42, + "line": 40 }, "start": { - "column": 14, - "line": 83 + "column": 7, + "line": 40 } } }, { - "id": "132", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "92", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "41" + "100" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "100" ], "location": { "end": { - "column": 42, - "line": 85 + "column": 4, + "line": 42 }, "start": { - "column": 7, - "line": 85 + "column": 44, + "line": 40 } } }, { - "id": "133", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "93", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"Game Lobby Player Input is not initialized\",\n], but it was called with \"\"", "status": "Killed", - "testsCompleted": 14, + "testsCompleted": 1, "static": false, "killedBy": [ - "54" + "100" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "100" ], "location": { "end": { - "column": 42, - "line": 85 + "column": 67, + "line": 41 }, "start": { - "column": 7, - "line": 85 + "column": 23, + "line": 41 } } }, { - "id": "134", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "94", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "54" + "104" ], "coveredBy": [ - "54" + "101", + "102", + "103", + "104", + "105" ], "location": { "end": { - "column": 4, - "line": 87 + "column": 53, + "line": 43 }, "start": { - "column": 44, - "line": 85 + "column": 7, + "line": 43 } } }, { - "id": "135", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected '' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", + "id": "95", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected '' to be 'Player 1' // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "54" + "101" ], "coveredBy": [ - "54" + "101", + "102", + "103", + "104", + "105" ], "location": { "end": { - "column": 74, - "line": 86 + "column": 53, + "line": 43 }, "start": { - "column": 14, - "line": 86 + "column": 7, + "line": 43 } } }, { - "id": "136", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "id": "96", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected '' to be 'Player 1' // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "41" + "101" ], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55" + "101", + "102" ], "location": { "end": { - "column": 67, - "line": 88 + "column": 4, + "line": 45 }, "start": { - "column": 12, - "line": 88 + "column": 55, + "line": 43 } } }, { - "id": "137", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "The macro defineExpose from Nuxt is breaking Stryker, so we ignore it.", - "status": "Ignored", + "id": "97", + "mutatorName": "MethodExpression", + "replacement": "playerInputValue.value", + "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \" \",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "103" + ], + "coveredBy": [ + "103", + "104", + "105" + ], "location": { "end": { - "column": 37, - "line": 91 + "column": 64, + "line": 46 }, "start": { - "column": 14, - "line": 91 + "column": 35, + "line": 46 } } - } - ], - "source": "\n\n" - }, - "components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayerCard/GameLobbyPlayerCard.vue": { - "language": "html", - "mutants": [ + }, { - "id": "138", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", + "id": "98", + "mutatorName": "StringLiteral", + "replacement": "\"Stryker was here!\"", + "statusReason": "expected 'Stryker was here!' to be '' // Object.is equality", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 3, "static": false, "killedBy": [ - "158" + "105" ], "coveredBy": [ - "155", - "156", - "157", - "158", - "159" + "103", + "104", + "105" ], "location": { "end": { - "column": 2, - "line": 48 + "column": 30, + "line": 47 }, "start": { - "column": 51, - "line": 43 + "column": 28, + "line": 47 } } }, { - "id": "139", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Player Card Component > should match snapshot when rendered. 1` mismatched", + "id": "99", + "mutatorName": "BooleanLiteral", + "replacement": "trimmedPlayerInputValue", + "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "155" + "103" ], "coveredBy": [ - "155", - "156", - "157", - "158", - "159" + "103", + "104", + "105" ], "location": { "end": { - "column": 43, - "line": 44 + "column": 31, + "line": 48 }, "start": { "column": 7, - "line": 44 + "line": 48 } } }, { - "id": "140", + "id": "100", "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", + "replacement": "true", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 2, "static": false, "killedBy": [ - "158" + "104" ], "coveredBy": [ - "155", - "156", - "157", - "158", - "159" + "103", + "104", + "105" ], "location": { "end": { - "column": 43, - "line": 44 + "column": 31, + "line": 48 }, "start": { "column": 7, - "line": 44 + "line": 48 } } }, { - "id": "141", - "mutatorName": "EqualityOperator", - "replacement": "props.player.role.name !== undefined", - "statusReason": "Snapshot `Game Lobby Player Card Component > should match snapshot when rendered. 1` mismatched", + "id": "101", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "155" + "103" ], "coveredBy": [ - "155", - "156", - "157", - "158", - "159" + "103", + "104", + "105" ], "location": { "end": { - "column": 43, - "line": 44 + "column": 31, + "line": 48 }, "start": { "column": 7, - "line": 44 + "line": 48 } } }, { - "id": "142", + "id": "102", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", + "statusReason": "expected \"spy\" to not be called at all, but actually been called 1 times\n\nReceived: \n\n 1st spy call:\n\n Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n ]\n\n\nNumber of calls: 1\n", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "158" + "103" ], "coveredBy": [ - "158" + "103" ], "location": { "end": { "column": 4, - "line": 46 - }, - "start": { - "column": 45, - "line": 44 - } - } - }, - { - "id": "143", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", - "status": "Killed", - "testsCompleted": 1, - "static": false, - "killedBy": [ - "158" - ], - "coveredBy": [ - "158" - ], - "location": { - "end": { - "column": 62, - "line": 45 + "line": 50 }, "start": { - "column": 14, - "line": 45 + "column": 33, + "line": 48 } } }, { - "id": "144", - "mutatorName": "BlockStatement", + "id": "103", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": \"Player 1\",\n \"role\": CreateGamePlayerRoleDto {\n \"name\": undefined,\n },\n \"side\": CreateGamePlayerSideDto {\n \"current\": undefined,\n \"original\": undefined,\n },\n },\n], but it was called with _CreateGamePlayerDto {\n \"group\": undefined,\n \"name\": undefined,\n \"role\": undefined,\n \"side\": undefined,\n}", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "157" + "104" ], "coveredBy": [ - "157" + "104", + "105" ], "location": { "end": { - "column": 2, - "line": 52 + "column": 4, + "line": 55 }, "start": { - "column": 48, - "line": 50 + "column": 71, + "line": 51 } } } ], - "source": "\n\n\n\n" + "source": "\n\n" }, - "components/shared/external/BuyMeACoffeeButton/BuyMeACoffeeButton.vue": { + "components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.vue": { "language": "html", "mutants": [ { - "id": "145", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", - "status": "Killed", - "testsCompleted": 1, + "id": "104", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "We can't mutate defineModel macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", + "status": "Ignored", "static": false, - "killedBy": [ - "244" - ], - "coveredBy": [ - "244", - "245" - ], "location": { "end": { "column": 58, - "line": 18 + "line": 66 }, "start": { - "column": 17, - "line": 18 + "column": 40, + "line": 66 } } }, { - "id": "146", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", - "status": "Killed", - "testsCompleted": 1, + "id": "105", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "We can't mutate defineModel macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", + "status": "Ignored", "static": false, - "killedBy": [ - "244" - ], - "coveredBy": [ - "244", - "245" - ], "location": { "end": { - "column": 2, - "line": 27 + "column": 56, + "line": 66 }, "start": { - "column": 38, - "line": 19 + "column": 52, + "line": 66 } } }, { - "id": "147", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "106", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "244" + "44" ], "coveredBy": [ - "244", - "245" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 26, - "line": 20 + "column": 139, + "line": 68 }, "start": { - "column": 9, - "line": 20 + "column": 53, + "line": 68 } } }, { - "id": "148", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "107", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.every(({\n name\n}) => name === inputValue.value.trim())", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "244" + "41" ], "coveredBy": [ - "244", - "245" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 25, - "line": 21 + "column": 139, + "line": 68 }, "start": { - "column": 9, - "line": 21 + "column": 59, + "line": 68 } } }, { - "id": "149", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "108", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "244" + "44" ], "coveredBy": [ - "244", - "245" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 25, - "line": 22 + "column": 138, + "line": 68 }, "start": { - "column": 17, - "line": 22 + "column": 92, + "line": 68 } } }, { - "id": "150", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "109", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected 'true' to be 'false' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 7, "static": false, "killedBy": [ - "244" + "50" ], "coveredBy": [ - "244", - "245" + "43", + "44", + "45", + "47", + "48", + "49", + "50", + "52", + "53" ], "location": { "end": { - "column": 23, - "line": 23 + "column": 138, + "line": 68 }, "start": { - "column": 15, - "line": 23 + "column": 106, + "line": 68 } } }, { - "id": "151", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "110", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "244" + "44" ], "coveredBy": [ - "244", - "245" + "43", + "44", + "45", + "47", + "48", + "49", + "50", + "52", + "53" ], "location": { "end": { - "column": 21, - "line": 24 + "column": 138, + "line": 68 }, "start": { - "column": 15, - "line": 24 + "column": 106, + "line": 68 } } }, { - "id": "152", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "111", + "mutatorName": "EqualityOperator", + "replacement": "name !== inputValue.value.trim()", + "statusReason": "expected 'true' to be 'false' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 7, "static": false, "killedBy": [ - "244" + "50" ], "coveredBy": [ - "244", - "245" + "43", + "44", + "45", + "47", + "48", + "49", + "50", + "52", + "53" ], "location": { "end": { - "column": 26, - "line": 25 + "column": 138, + "line": 68 }, "start": { - "column": 18, - "line": 25 + "column": 106, + "line": 68 } } }, { - "id": "153", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "112", + "mutatorName": "MethodExpression", + "replacement": "inputValue.value", + "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "244" + "44" ], "coveredBy": [ - "244", - "245" + "43", + "44", + "45", + "47", + "48", + "49", + "50", + "52", + "53" ], "location": { "end": { - "column": 25, - "line": 26 + "column": 138, + "line": 68 }, "start": { - "column": 17, - "line": 26 + "column": 115, + "line": 68 } } }, { - "id": "154", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "id": "113", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 14, "static": false, "killedBy": [ - "244" + "54" ], "coveredBy": [ - "244", - "245" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 55, - "line": 28 + "column": 119, + "line": 70 }, "start": { - "column": 13, - "line": 28 + "column": 57, + "line": 70 } } - } - ], - "source": "\n\n" - }, - "components/shared/external/GitHubRepositoryButton/GitHubRepositoryButton.vue": { - "language": "html", - "mutants": [ + }, { - "id": "155", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", + "id": "114", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "218" + "41" ], "coveredBy": [ - "218", - "219", - "220", - "223", - "224", - "247" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 2, - "line": 29 + "column": 119, + "line": 70 }, "start": { - "column": 43, - "line": 24 + "column": 63, + "line": 70 } } }, { - "id": "156", + "id": "115", "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected '' to be 'components.GitHubRepositoryButton.thi…' // Object.is equality", + "replacement": "false", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 14, "static": false, "killedBy": [ - "220" + "54" ], "coveredBy": [ - "218", - "219", - "220", - "223", - "224", - "247" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 37, - "line": 25 + "column": 119, + "line": 70 }, "start": { - "column": 7, - "line": 25 + "column": 63, + "line": 70 } } }, { - "id": "157", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", + "id": "116", + "mutatorName": "EqualityOperator", + "replacement": "inputValue.value.trim().length > MAX_PLAYER_NAME_LENGTH", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 14, "static": false, "killedBy": [ - "218" + "54" ], "coveredBy": [ - "218", - "219", - "220", - "223", - "224", - "247" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 37, - "line": 25 + "column": 119, + "line": 70 }, "start": { - "column": 7, - "line": 25 + "column": 63, + "line": 70 } } }, { - "id": "158", + "id": "117", "mutatorName": "EqualityOperator", - "replacement": "props.textButton === undefined", - "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", + "replacement": "inputValue.value.trim().length < MAX_PLAYER_NAME_LENGTH", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "218" + "41" ], "coveredBy": [ - "218", - "219", - "220", - "223", - "224", - "247" - ], - "location": { - "end": { - "column": 37, - "line": 25 - }, - "start": { - "column": 7, - "line": 25 - } - } - }, - { - "id": "159", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", - "status": "Killed", - "testsCompleted": 1, - "static": false, - "killedBy": [ - "218" - ], - "coveredBy": [ - "218", - "219", - "220" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 4, - "line": 27 + "column": 119, + "line": 70 }, "start": { - "column": 39, - "line": 25 + "column": 63, + "line": 70 } } }, { - "id": "160", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected '' to be 'components.GitHubRepositoryButton.thi…' // Object.is equality", + "id": "118", + "mutatorName": "MethodExpression", + "replacement": "inputValue.value", + "statusReason": "expected 'components.GameLobbyPlayerInput.playe…' to be 'components.GameLobbyPlayerInput.pleas…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 15, "static": false, "killedBy": [ - "220" + "55" ], "coveredBy": [ - "220", - "223", - "224", - "247" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 71, - "line": 28 + "column": 86, + "line": 70 }, "start": { - "column": 12, - "line": 28 + "column": 63, + "line": 70 } } - } - ], - "source": "\n\n" - }, - "components/shared/game/player/PlayerCard/PlayerCard.vue": { - "language": "html", - "mutants": [ + }, { - "id": "161", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", - "status": "Ignored", + "id": "119", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "41" + ], + "coveredBy": [ + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" + ], "location": { "end": { - "column": 94, - "line": 27 + "column": 113, + "line": 72 }, "start": { - "column": 60, - "line": 27 + "column": 50, + "line": 72 } } }, { - "id": "162", - "mutatorName": "BooleanLiteral", + "id": "120", + "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", - "status": "Ignored", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "41" + ], + "coveredBy": [ + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" + ], "location": { "end": { - "column": 92, - "line": 27 + "column": 113, + "line": 72 }, "start": { - "column": 87, - "line": 27 + "column": 56, + "line": 72 } } }, { - "id": "163", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected undefined to be 'Select Player' // Object.is equality", + "id": "121", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected 'false' to be 'true' // Object.is equality", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 3, "static": false, "killedBy": [ - "168" + "43" ], "coveredBy": [ - "165", - "166", - "167", - "168", - "169", - "170" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 128, - "line": 33 + "column": 113, + "line": 72 }, "start": { - "column": 53, - "line": 33 + "column": 56, + "line": 72 } } }, { - "id": "164", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Snapshot `Player Card Component > should match snapshot when rendered. 1` mismatched", + "id": "122", + "mutatorName": "EqualityOperator", + "replacement": "createGameDto.value.players.length > MAX_PLAYERS_IN_GAME", + "statusReason": "expected 'false' to be 'true' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "165" + "43" ], "coveredBy": [ - "165", - "166", - "167", - "168", - "169", - "170" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 2, - "line": 37 + "column": 113, + "line": 72 }, "start": { - "column": 46, - "line": 35 + "column": 56, + "line": 72 } } }, { - "id": "165", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Player Card Component > should match snapshot when rendered. 1` mismatched", + "id": "123", + "mutatorName": "EqualityOperator", + "replacement": "createGameDto.value.players.length < MAX_PLAYERS_IN_GAME", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "165" + "41" ], "coveredBy": [ - "165", - "166", - "167", - "168", - "169", - "170" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 58, - "line": 36 + "column": 113, + "line": 72 }, "start": { - "column": 12, - "line": 36 + "column": 56, + "line": 72 } } }, { - "id": "166", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "Snapshot `Player Card Component > should match snapshot when rendered. 1` mismatched", + "id": "124", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "165" + "41" ], "coveredBy": [ - "165", - "166", - "167", - "168", - "169", - "170" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 92, - "line": 36 + "column": 77, + "line": 74 }, "start": { - "column": 60, - "line": 36 + "column": 43, + "line": 74 } } }, { - "id": "167", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Target cannot be null or undefined.", + "id": "125", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "167" + "41" ], "coveredBy": [ - "167" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 2, - "line": 41 + "column": 109, + "line": 76 }, "start": { - "column": 51, - "line": 39 + "column": 47, + "line": 76 } } }, { - "id": "168", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Target cannot be null or undefined.", + "id": "126", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "167" + "41" ], "coveredBy": [ - "167" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 33, - "line": 40 - }, - "start": { - "column": 8, - "line": 40 - } - } - } - ], - "source": "\n\n\n\n" - }, - "components/shared/role/RoleImage/RoleImage.vue": { - "language": "html", - "mutants": [ - { - "id": "169", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", - "status": "Ignored", - "static": false, - "location": { - "end": { - "column": 2, - "line": 19 - }, - "start": { - "column": 59, - "line": 16 - } - } - }, - { - "id": "170", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", - "status": "Ignored", - "static": false, - "location": { - "end": { - "column": 14, - "line": 17 + "column": 109, + "line": 76 }, "start": { - "column": 10, - "line": 17 + "column": 53, + "line": 76 } } }, { - "id": "171", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", - "status": "Ignored", + "id": "127", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected 'false' to be 'true' // Object.is equality", + "status": "Killed", + "testsCompleted": 7, "static": false, + "killedBy": [ + "47" + ], + "coveredBy": [ + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" + ], "location": { "end": { - "column": 23, - "line": 18 + "column": 109, + "line": 76 }, "start": { - "column": 15, - "line": 18 + "column": 53, + "line": 76 } } }, { - "id": "172", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected '' to be '/img/role/back.jpeg' // Object.is equality", + "id": "128", + "mutatorName": "LogicalOperator", + "replacement": "doesPlayerNameExistInGame.value && isInputDisabled.value", + "statusReason": "expected 'false' to be 'true' // Object.is equality", "status": "Killed", - "testsCompleted": 8, + "testsCompleted": 7, "static": false, "killedBy": [ - "198" + "47" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 43, - "line": 23 + "column": 109, + "line": 76 }, "start": { - "column": 22, - "line": 23 + "column": 53, + "line": 76 } } }, { - "id": "173", + "id": "129", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "91" + "41" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { "column": 2, - "line": 34 + "line": 89 }, "start": { - "column": 45, - "line": 25 + "column": 56, + "line": 78 } } }, { - "id": "174", + "id": "130", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 1, "static": false, "killedBy": [ - "196" + "41" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { "column": 35, - "line": 26 + "line": 79 }, "start": { "column": 7, - "line": 26 + "line": 79 } } }, { - "id": "175", + "id": "131", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be '/img/role/back.jpeg' // Object.is equality", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.maxPl…' // Object.is equality", "status": "Killed", - "testsCompleted": 8, + "testsCompleted": 12, "static": false, "killedBy": [ - "198" + "52" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { "column": 35, - "line": 26 + "line": 79 }, "start": { "column": 7, - "line": 26 + "line": 79 } } }, { - "id": "176", - "mutatorName": "EqualityOperator", - "replacement": "props.roleName !== undefined", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "id": "132", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.maxPl…' // Object.is equality", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 3, "static": false, "killedBy": [ - "196" + "52" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "43", + "47", + "52" ], "location": { "end": { - "column": 35, - "line": 26 + "column": 4, + "line": 81 }, "start": { - "column": 7, - "line": 26 + "column": 37, + "line": 79 } } }, { - "id": "177", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be '/img/role/back.jpeg' // Object.is equality", + "id": "133", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected '' to be 'components.GameLobbyPlayerInput.maxPl…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "198" + "52" ], "coveredBy": [ - "198" + "43", + "47", + "52" ], "location": { "end": { - "column": 4, - "line": 28 + "column": 65, + "line": 80 }, "start": { - "column": 37, - "line": 26 + "column": 14, + "line": 80 } } }, { - "id": "178", + "id": "134", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be 'http://127.0.0.1/public/assets/images…' // Object.is equality", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 10, + "testsCompleted": 1, "static": false, "killedBy": [ - "200" + "41" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 52, - "line": 31 + "column": 38, + "line": 82 }, "start": { - "column": 23, - "line": 31 + "column": 7, + "line": 82 } } }, { - "id": "179", + "id": "135", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 13, "static": false, "killedBy": [ - "196" + "53" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 52, - "line": 31 + "column": 38, + "line": 82 }, "start": { - "column": 23, - "line": 31 + "column": 7, + "line": 82 } } }, { - "id": "180", - "mutatorName": "EqualityOperator", - "replacement": "props.definition !== \"normal\"", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "id": "136", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "196" + "53" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "44", + "48", + "49", + "53" ], "location": { "end": { - "column": 52, - "line": 31 + "column": 4, + "line": 84 }, "start": { - "column": 23, - "line": 31 + "column": 40, + "line": 82 } } }, { - "id": "181", + "id": "137", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "statusReason": "expected '' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "196" + "53" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "44", + "48", + "49", + "53" ], "location": { "end": { - "column": 52, - "line": 31 + "column": 72, + "line": 83 }, "start": { - "column": 44, - "line": 31 + "column": 14, + "line": 83 } } }, { - "id": "182", - "mutatorName": "StringLiteral", - "replacement": "\"Stryker was here!\"", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "id": "138", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 1, "static": false, "killedBy": [ - "196" + "41" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 57, - "line": 31 + "column": 42, + "line": 85 }, "start": { - "column": 55, - "line": 31 + "column": 7, + "line": 85 } } }, { - "id": "183", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be 'http://127.0.0.1/public/assets/images…' // Object.is equality", + "id": "139", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 14, "static": false, "killedBy": [ - "200" + "54" ], "coveredBy": [ - "200" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 82, - "line": 31 + "column": 42, + "line": 85 }, "start": { - "column": 60, - "line": 31 + "column": 7, + "line": 85 } } }, { - "id": "184", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "id": "140", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected 'components.GameLobbyPlayerInput.pleas…' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "196" + "54" ], "coveredBy": [ - "91", - "92", - "93", - "94", - "95", - "196", - "197", - "198", - "199", - "200" + "54" ], "location": { "end": { - "column": 107, - "line": 33 + "column": 4, + "line": 87 }, "start": { - "column": 10, - "line": 33 + "column": 44, + "line": 85 } } - } - ], - "source": "\n\n\n\n" - }, - "components/shared/role/RoleTypeBadge/RoleTypeBadge.vue": { - "language": "html", - "mutants": [ + }, { - "id": "185", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", + "id": "141", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected '' to be 'components.GameLobbyPlayerInput.playe…' // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "171" + "54" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "54" ], "location": { "end": { - "column": 2, - "line": 28 + "column": 74, + "line": 86 }, "start": { - "column": 60, - "line": 19 + "column": 14, + "line": 86 } } }, { - "id": "186", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", + "id": "142", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Game Lobby Player Input Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "171" + "41" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55" ], "location": { "end": { - "column": 4, - "line": 25 + "column": 67, + "line": 88 }, "start": { - "column": 67, - "line": 20 + "column": 12, + "line": 88 } } }, { - "id": "187", + "id": "143", "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expected undefined to be 'success' // Object.is equality", - "status": "Killed", - "testsCompleted": 5, + "statusReason": "The macro defineExpose from Nuxt is breaking Stryker, so we ignore it.", + "status": "Ignored", "static": false, - "killedBy": [ - "175" - ], - "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" - ], "location": { "end": { - "column": 50, - "line": 21 + "column": 37, + "line": 91 }, "start": { - "column": 27, - "line": 21 + "column": 14, + "line": 91 } } - }, + } + ], + "source": "\n\n" + }, + "components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayerCard/GameLobbyPlayerCard.vue": { + "language": "html", + "mutants": [ { - "id": "188", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected '' to be 'success' // Object.is equality", + "id": "144", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", "status": "Killed", - "testsCompleted": 5, + "testsCompleted": 4, "static": false, "killedBy": [ - "175" + "161" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "158", + "159", + "160", + "161", + "162" ], "location": { "end": { - "column": 48, - "line": 21 + "column": 2, + "line": 48 }, "start": { - "column": 39, - "line": 21 + "column": 51, + "line": 43 } } }, { - "id": "189", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "Snapshot `Role Type Badge Component > should match snapshot when rendered. 1` mismatched", + "id": "145", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "Snapshot `Game Lobby Player Card Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "171" + "158" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "158", + "159", + "160", + "161", + "162" ], "location": { "end": { - "column": 49, - "line": 22 + "column": 43, + "line": 44 }, "start": { - "column": 27, - "line": 22 + "column": 7, + "line": 44 } } }, { - "id": "190", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "Snapshot `Role Type Badge Component > should match snapshot when rendered. 1` mismatched", + "id": "146", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", + "status": "Killed", + "testsCompleted": 4, + "static": false, + "killedBy": [ + "161" + ], + "coveredBy": [ + "158", + "159", + "160", + "161", + "162" + ], + "location": { + "end": { + "column": 43, + "line": 44 + }, + "start": { + "column": 7, + "line": 44 + } + } + }, + { + "id": "147", + "mutatorName": "EqualityOperator", + "replacement": "props.player.role.name !== undefined", + "statusReason": "Snapshot `Game Lobby Player Card Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "171" + "158" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "158", + "159", + "160", + "161", + "162" ], "location": { "end": { - "column": 47, - "line": 22 + "column": 43, + "line": 44 }, "start": { - "column": 39, - "line": 22 + "column": 7, + "line": 44 } } }, { - "id": "191", - "mutatorName": "ObjectLiteral", + "id": "148", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected undefined to be 'info' // Object.is equality", + "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 1, "static": false, "killedBy": [ - "177" + "161" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "161" ], "location": { "end": { - "column": 45, - "line": 23 + "column": 4, + "line": 46 }, "start": { - "column": 25, - "line": 23 + "column": 45, + "line": 44 } } }, { - "id": "192", + "id": "149", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expected '' to be 'info' // Object.is equality", + "statusReason": "expected '' to be 'components.GameLobbyPlayerCard.roleNo…' // Object.is equality", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 1, "static": false, "killedBy": [ - "177" + "161" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "161" ], "location": { "end": { - "column": 43, - "line": 23 + "column": 62, + "line": 45 }, "start": { - "column": 37, - "line": 23 + "column": 14, + "line": 45 } } }, { - "id": "193", - "mutatorName": "ObjectLiteral", + "id": "150", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected undefined to be 'warning' // Object.is equality", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 1, "static": false, "killedBy": [ - "176" + "160" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "160" ], "location": { "end": { - "column": 51, - "line": 24 + "column": 2, + "line": 52 }, "start": { - "column": 28, - "line": 24 + "column": 48, + "line": 50 } } - }, + } + ], + "source": "\n\n\n\n" + }, + "components/shared/external/BuyMeACoffeeButton/BuyMeACoffeeButton.vue": { + "language": "html", + "mutants": [ { - "id": "194", + "id": "151", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expected '' to be 'warning' // Object.is equality", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 1, "static": false, "killedBy": [ - "176" + "247" ], "coveredBy": [ - "171", - "172", - "173", - "174", - "175", - "176", - "177" + "247", + "248" ], "location": { "end": { - "column": 49, - "line": 24 + "column": 58, + "line": 18 }, "start": { - "column": 40, - "line": 24 + "column": 17, + "line": 18 } } - } - ], - "source": "\n\n\n\n" - }, - "composables/api/error/useWerewolvesAssistantApiError.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "196", - "mutatorName": "BlockStatement", + "id": "152", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "210" + "247" ], "coveredBy": [ - "210", - "211" + "247", + "248" ], "location": { "end": { - "column": 4, - "line": 22 + "column": 2, + "line": 27 }, "start": { - "column": 124, - "line": 14 + "column": 38, + "line": 19 } } }, { - "id": "197", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n },\n], but it was called with Object {}", + "id": "153", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "211" + "247" ], "coveredBy": [ - "210", - "211" + "247", + "248" ], "location": { "end": { - "column": 6, - "line": 21 + "column": 26, + "line": 20 }, "start": { - "column": 19, - "line": 18 + "column": 9, + "line": 20 } } }, { - "id": "198", + "id": "154", "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n },\n], but it was called with Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"\",\n}", + "replacement": "\"\"", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "211" + "247" ], "coveredBy": [ - "210", - "211" + "247", + "248" ], "location": { "end": { - "column": 92, - "line": 19 + "column": 25, + "line": 21 }, "start": { - "column": 18, - "line": 19 + "column": 9, + "line": 21 } } }, { - "id": "199", + "id": "155", "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n },\n], but it was called with Object {\n \"detail\": \"\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n}", + "replacement": "\"\"", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "211" + "247" ], "coveredBy": [ - "210", - "211" + "247", + "248" ], "location": { "end": { - "column": 88, - "line": 20 + "column": 25, + "line": 22 }, "start": { "column": 17, - "line": 20 + "line": 22 } } }, { - "id": "195", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/error/useWerewolvesAssistantApiError.ts(10,44): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", - "static": true, + "id": "156", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "247" + ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "205", - "210", - "211", - "241", - "242", - "243", - "246", "247", - "248", - "257" + "248" ], "location": { "end": { - "column": 2, - "line": 24 + "column": 23, + "line": 23 }, "start": { - "column": 75, - "line": 10 + "column": 15, + "line": 23 } } }, { - "id": "200", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/api/error/useWerewolvesAssistantApiError.ts(23,3): error TS2741: Property 'handleWerewolvesAssistantApiError' is missing in type '{}' but required in type 'UseWerewolvesAssistantApiError'.\n", - "status": "CompileError", - "static": true, + "id": "157", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "247" + ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "205", - "210", - "211", - "241", - "242", - "243", - "246", "247", - "248", - "257" + "248" ], "location": { "end": { - "column": 47, - "line": 23 + "column": 21, + "line": 24 }, "start": { - "column": 10, - "line": 23 + "column": 15, + "line": 24 } } - } - ], - "source": "import type { FetchResponse } from \"ofetch\";\n\nimport type { WerewolvesAssistantApiError } from \"~/composables/api/error/types/api-error.types\";\nimport { useVuePrimeToasts } from \"~/composables/vue-prime/useVuePrimeToasts\";\n\ntype UseWerewolvesAssistantApiError = {\n handleWerewolvesAssistantApiError: (error: { response: FetchResponse }) => void;\n};\n\nfunction useWerewolvesAssistantApiError(): UseWerewolvesAssistantApiError {\n const { addErrorToast } = useVuePrimeToasts();\n const { t } = useI18n();\n\n function handleWerewolvesAssistantApiError({ response }: { response: FetchResponse }): void {\n const { _data: errorData } = response;\n // eslint-disable-next-line no-console\n console.error(errorData);\n addErrorToast({\n summary: t(`composables.useWerewolvesAssistantApiError.statusCode.${response.status}`),\n detail: t(`composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails`),\n });\n }\n return { handleWerewolvesAssistantApiError };\n}\n\nexport { useWerewolvesAssistantApiError };" - }, - "composables/api/game/dto/create-game/create-game-additional-card/create-game-additional-card.dto.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "201", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/dto/create-game/create-game-additional-card/create-game-additional-card.dto.ts(15,83): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", - "static": true, - "killedBy": [], + "id": "158", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "247" + ], "coveredBy": [ - "249" + "247", + "248" ], "location": { "end": { - "column": 4, - "line": 17 + "column": 26, + "line": 25 }, "start": { - "column": 111, - "line": 15 + "column": 18, + "line": 25 } } - } - ], - "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { GameAdditionalCardRecipientRoleName } from \"~/composables/api/game/types/game-additional-card/types/game-additional-card.types\";\nimport { RoleNames } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGameAdditionalCardDto {\n @Expose()\n public roleName: RoleNames;\n\n @Expose()\n public recipient: GameAdditionalCardRecipientRoleName;\n\n public static create(createGameAdditionalCardDto: CreateGameAdditionalCardDto): CreateGameAdditionalCardDto {\n return plainToInstance(CreateGameAdditionalCardDto, createGameAdditionalCardDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGameAdditionalCardDto };" - }, - "composables/api/game/types/players/player.class.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "211", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/types/players/player.class.ts(12,41): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "159", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "247" + ], "coveredBy": [ - "263" + "247", + "248" ], "location": { "end": { - "column": 4, - "line": 14 + "column": 25, + "line": 26 }, "start": { - "column": 48, - "line": 12 + "column": 17, + "line": 26 } } - } - ], - "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass Player {\n @Expose()\n public _id: string;\n\n @Expose()\n public name: string;\n\n public static create(player: Player): Player {\n return plainToInstance(Player, player, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { Player };" - }, - "composables/api/game/useCreateGameDtoValidation.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "214", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "id": "160", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "Snapshot `Buy Me A Coffee Button Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "0" + "247" ], "coveredBy": [ - "0", - "1", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "247", + "248" ], "location": { "end": { - "column": 116, - "line": 22 + "column": 55, + "line": 28 }, "start": { - "column": 59, - "line": 22 + "column": 13, + "line": 28 } } - }, + } + ], + "source": "\n\n" + }, + "components/shared/external/GitHubRepositoryButton/GitHubRepositoryButton.vue": { + "language": "html", + "mutants": [ { - "id": "215", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", + "id": "161", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "1" + "221" ], "coveredBy": [ - "0", - "1", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "221", + "222", + "223", + "226", + "227", + "252" ], "location": { "end": { - "column": 116, - "line": 22 + "column": 2, + "line": 29 }, "start": { - "column": 59, - "line": 22 + "column": 43, + "line": 24 } } }, { - "id": "217", - "mutatorName": "EqualityOperator", - "replacement": "createGameDto.value.players.length < MIN_PLAYERS_IN_GAME", - "statusReason": "expected true to be false // Object.is equality", + "id": "162", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected '' to be 'components.GitHubRepositoryButton.thi…' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "0" + "223" ], "coveredBy": [ - "0", - "1", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "221", + "222", + "223", + "226", + "227", + "252" ], "location": { "end": { - "column": 116, - "line": 22 + "column": 37, + "line": 25 }, "start": { - "column": 59, - "line": 22 + "column": 7, + "line": 25 } } }, { - "id": "219", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.some(player => player.role.name !== undefined)", - "statusReason": "expected true to be false // Object.is equality", + "id": "163", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "3" + "221" ], "coveredBy": [ - "2", - "3", - "15", - "16", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "221", + "222", + "223", + "226", + "227", + "252" ], "location": { "end": { - "column": 125, - "line": 24 + "column": 37, + "line": 25 }, "start": { - "column": 50, - "line": 24 + "column": 7, + "line": 25 } } }, { - "id": "220", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected false to be true // Object.is equality", + "id": "164", + "mutatorName": "EqualityOperator", + "replacement": "props.textButton === undefined", + "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "2" + "221" ], "coveredBy": [ - "2", - "3", - "15", - "16", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "221", + "222", + "223", + "226", + "227", + "252" ], "location": { "end": { - "column": 124, - "line": 24 + "column": 37, + "line": 25 }, "start": { - "column": 84, - "line": 24 + "column": 7, + "line": 25 } } }, { - "id": "221", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "id": "165", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Snapshot `GitHub Repository Button > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 10, + "testsCompleted": 1, "static": false, "killedBy": [ - "3" + "221" ], "coveredBy": [ - "2", - "3", - "15", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "221", + "222", + "223" ], "location": { "end": { - "column": 124, - "line": 24 + "column": 4, + "line": 27 }, "start": { - "column": 94, - "line": 24 + "column": 39, + "line": 25 } } }, { - "id": "222", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", + "id": "166", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected '' to be 'components.GitHubRepositoryButton.thi…' // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "2" + "223" ], "coveredBy": [ - "2", - "3", - "15", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "223", + "226", + "227", + "252" ], "location": { "end": { - "column": 124, - "line": 24 + "column": 71, + "line": 28 }, "start": { - "column": 94, - "line": 24 + "column": 12, + "line": 28 } } - }, + } + ], + "source": "\n\n" + }, + "components/shared/game/player/PlayerCard/PlayerCard.vue": { + "language": "html", + "mutants": [ { - "id": "223", - "mutatorName": "EqualityOperator", - "replacement": "player.role.name === undefined", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 1, - "static": false, - "killedBy": [ - "2" - ], - "coveredBy": [ - "2", - "3", - "15", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" - ], + "id": "167", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", + "status": "Ignored", + "static": false, "location": { "end": { - "column": 124, - "line": 24 + "column": 94, + "line": 27 }, "start": { - "column": 94, - "line": 24 + "column": 60, + "line": 27 } } }, { - "id": "225", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.every(player => player.side.current === RoleSides.VILLAGERS)", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 1, + "id": "168", + "mutatorName": "BooleanLiteral", + "replacement": "true", + "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", + "status": "Ignored", "static": false, - "killedBy": [ - "4" - ], - "coveredBy": [ - "4", - "5", - "16", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" - ], "location": { "end": { - "column": 154, - "line": 26 + "column": 92, + "line": 27 }, "start": { - "column": 67, - "line": 26 + "column": 87, + "line": 27 } } }, { - "id": "226", + "id": "169", "mutatorName": "ArrowFunction", "replacement": "() => undefined", - "statusReason": "expected false to be true // Object.is equality", + "statusReason": "expected undefined to be 'Select Player' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "4" + "171" ], "coveredBy": [ - "4", - "5", - "16", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "168", + "169", + "170", + "171", + "172", + "173" ], "location": { "end": { - "column": 153, - "line": 26 + "column": 128, + "line": 33 }, "start": { - "column": 100, - "line": 26 + "column": 53, + "line": 33 } } }, { - "id": "227", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "id": "170", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Snapshot `Player Card Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "5" + "168" ], "coveredBy": [ - "4", - "5", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "168", + "169", + "170", + "171", + "172", + "173" ], "location": { "end": { - "column": 153, - "line": 26 + "column": 2, + "line": 37 }, "start": { - "column": 110, - "line": 26 + "column": 46, + "line": 35 } } }, { - "id": "228", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", + "id": "171", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Player Card Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "4" + "168" ], "coveredBy": [ - "4", - "5", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "168", + "169", + "170", + "171", + "172", + "173" ], "location": { "end": { - "column": 153, - "line": 26 + "column": 58, + "line": 36 }, "start": { - "column": 110, - "line": 26 + "column": 12, + "line": 36 } } }, { - "id": "229", - "mutatorName": "EqualityOperator", - "replacement": "player.side.current !== RoleSides.VILLAGERS", - "statusReason": "expected true to be false // Object.is equality", + "id": "172", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "Snapshot `Player Card Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "5" + "168" ], "coveredBy": [ - "4", - "5", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "168", + "169", + "170", + "171", + "172", + "173" ], "location": { "end": { - "column": 153, - "line": 26 + "column": 92, + "line": 36 }, "start": { - "column": 110, - "line": 26 + "column": 60, + "line": 36 } } }, { - "id": "231", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.every(player => player.side.current === RoleSides.WEREWOLVES)", - "statusReason": "expected false to be true // Object.is equality", + "id": "173", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Target cannot be null or undefined.", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "6" + "170" ], "coveredBy": [ - "6", - "7", - "16", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "170" ], "location": { "end": { - "column": 155, - "line": 28 + "column": 2, + "line": 41 }, "start": { - "column": 67, - "line": 28 + "column": 51, + "line": 39 } } }, { - "id": "232", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected false to be true // Object.is equality", + "id": "174", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Target cannot be null or undefined.", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "6" + "170" ], "coveredBy": [ - "6", - "7", - "16", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "170" ], "location": { "end": { - "column": 154, - "line": 28 + "column": 33, + "line": 40 }, "start": { - "column": 100, - "line": 28 + "column": 8, + "line": 40 } } - }, + } + ], + "source": "\n\n\n\n" + }, + "components/shared/role/RoleImage/RoleImage.vue": { + "language": "html", + "mutants": [ { - "id": "233", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 2, + "id": "175", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", + "status": "Ignored", "static": false, - "killedBy": [ - "7" - ], - "coveredBy": [ - "6", - "7", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" - ], "location": { "end": { - "column": 154, - "line": 28 + "column": 2, + "line": 19 }, "start": { - "column": 110, - "line": 28 + "column": 59, + "line": 16 } } }, { - "id": "234", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 1, + "id": "176", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", + "status": "Ignored", "static": false, - "killedBy": [ - "6" - ], - "coveredBy": [ - "6", - "7", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" - ], "location": { "end": { - "column": 154, - "line": 28 + "column": 14, + "line": 17 }, "start": { - "column": 110, - "line": 28 + "column": 10, + "line": 17 } } }, { - "id": "235", - "mutatorName": "EqualityOperator", - "replacement": "player.side.current !== RoleSides.WEREWOLVES", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 2, + "id": "177", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "We can't mutate defineProps macro as it is stated here: https://github.com/stryker-mutator/stryker-js/issues/3305.", + "status": "Ignored", "static": false, - "killedBy": [ - "7" - ], - "coveredBy": [ - "6", - "7", - "16", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" - ], "location": { "end": { - "column": 154, - "line": 28 + "column": 23, + "line": 18 }, "start": { - "column": 110, - "line": 28 + "column": 15, + "line": 18 } } }, { - "id": "237", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.every(player => player.role.name === RoleNames.THIEF)", - "statusReason": "expected true to be false // Object.is equality", + "id": "178", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected '' to be '/img/role/back.jpeg' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 8, "static": false, "killedBy": [ - "9" + "201" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 108, - "line": 31 + "column": 43, + "line": 23 }, "start": { - "column": 28, - "line": 31 + "column": 22, + "line": 23 } } }, { - "id": "238", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected true to be false // Object.is equality", + "id": "179", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "9" + "91" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 107, - "line": 31 + "column": 2, + "line": 34 }, "start": { - "column": 61, - "line": 31 + "column": 45, + "line": 25 } } }, { - "id": "239", + "id": "180", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "expected false to be true // Object.is equality", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 6, "static": false, "killedBy": [ - "8" + "199" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 107, - "line": 31 + "column": 35, + "line": 26 }, "start": { - "column": 71, - "line": 31 + "column": 7, + "line": 26 } } }, { - "id": "240", + "id": "181", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "expected true to be false // Object.is equality", + "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be '/img/role/back.jpeg' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 8, "static": false, "killedBy": [ - "9" + "201" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 107, - "line": 31 + "column": 35, + "line": 26 }, "start": { - "column": 71, - "line": 31 + "column": 7, + "line": 26 } } }, { - "id": "241", + "id": "182", "mutatorName": "EqualityOperator", - "replacement": "player.role.name !== RoleNames.THIEF", - "statusReason": "expected false to be true // Object.is equality", + "replacement": "props.roleName !== undefined", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 6, "static": false, "killedBy": [ - "8" + "199" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 107, - "line": 31 + "column": 35, + "line": 26 }, "start": { - "column": 71, - "line": 31 + "column": 7, + "line": 26 } } }, { - "id": "242", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "id": "183", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be '/img/role/back.jpeg' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "9" + "201" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "201" ], "location": { "end": { - "column": 137, - "line": 32 + "column": 4, + "line": 28 }, "start": { - "column": 43, - "line": 32 + "column": 37, + "line": 26 } } }, { - "id": "243", + "id": "184", "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", + "replacement": "true", + "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be 'http://127.0.0.1/public/assets/images…' // Object.is equality", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 10, "static": false, "killedBy": [ - "8" + "203" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 137, - "line": 32 + "column": 52, + "line": 31 }, "start": { - "column": 43, - "line": 32 + "column": 23, + "line": 31 } } }, { - "id": "244", - "mutatorName": "EqualityOperator", - "replacement": "createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.THIEF) !== true", - "statusReason": "expected false to be true // Object.is equality", + "id": "185", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "8" + "199" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 137, - "line": 32 + "column": 52, + "line": 31 }, "start": { - "column": 43, - "line": 32 + "column": 23, + "line": 31 } } }, { - "id": "245", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.additionalCards?.every(card => card.recipient === RoleNames.THIEF)", - "statusReason": "expected false to be true // Object.is equality", + "id": "186", + "mutatorName": "EqualityOperator", + "replacement": "props.definition !== \"normal\"", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "8" + "199" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 128, - "line": 32 + "column": 52, + "line": 31 }, "start": { - "column": 43, - "line": 32 + "column": 23, + "line": 31 } } }, { - "id": "247", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected false to be true // Object.is equality", + "id": "187", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "8" + "199" ], "coveredBy": [ - "8", - "9" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 127, - "line": 32 + "column": 52, + "line": 31 }, "start": { - "column": 85, - "line": 32 + "column": 44, + "line": 31 } } }, { - "id": "248", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "id": "188", + "mutatorName": "StringLiteral", + "replacement": "\"Stryker was here!\"", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 6, "static": false, "killedBy": [ - "9" + "199" ], "coveredBy": [ - "8", - "9" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 127, - "line": 32 + "column": 57, + "line": 31 }, "start": { - "column": 93, - "line": 32 + "column": 55, + "line": 31 } } }, { - "id": "249", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", + "id": "189", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expected 'http://127.0.0.1/public/assets/images…' to be 'http://127.0.0.1/public/assets/images…' // Object.is equality", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "8" + "203" ], "coveredBy": [ - "8", - "9" + "203" ], "location": { "end": { - "column": 127, - "line": 32 + "column": 82, + "line": 31 }, "start": { - "column": 93, - "line": 32 + "column": 60, + "line": 31 } } }, { - "id": "250", - "mutatorName": "EqualityOperator", - "replacement": "card.recipient !== RoleNames.THIEF", - "statusReason": "expected true to be false // Object.is equality", + "id": "190", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "9" + "199" ], "coveredBy": [ - "8", - "9" + "91", + "92", + "93", + "94", + "95", + "199", + "200", + "201", + "202", + "203" ], "location": { "end": { - "column": 127, - "line": 32 + "column": 107, + "line": 33 }, "start": { - "column": 93, - "line": 32 + "column": 10, + "line": 33 } } - }, + } + ], + "source": "\n\n\n\n" + }, + "components/shared/role/RoleTypeBadge/RoleTypeBadge.vue": { + "language": "html", + "mutants": [ { - "id": "251", - "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", + "id": "191", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 1, "static": false, "killedBy": [ - "8" + "174" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 137, - "line": 32 + "column": 2, + "line": 28 }, "start": { - "column": 133, - "line": 32 + "column": 60, + "line": 19 } } }, { - "id": "252", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected false to be true // Object.is equality", + "id": "192", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "Hook timed out in 10000ms.\nIf this is a long-running hook, pass a timeout value as the last argument or configure it globally with \"hookTimeout\".", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "8" + "174" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 23, - "line": 33 + "column": 4, + "line": 25 }, "start": { - "column": 9, - "line": 33 + "column": 67, + "line": 20 } } }, { - "id": "253", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected true to be false // Object.is equality", + "id": "193", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expected undefined to be 'success' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 5, "static": false, "killedBy": [ - "9" + "178" ], "coveredBy": [ - "8", - "9", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 23, - "line": 33 + "column": 50, + "line": 21 }, "start": { - "column": 9, - "line": 33 + "column": 27, + "line": 21 } } }, { - "id": "254", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected true to be false // Object.is equality", + "id": "194", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected '' to be 'success' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 5, "static": false, "killedBy": [ - "9" + "178" ], "coveredBy": [ - "8", - "9", - "21" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 6, - "line": 35 + "column": 48, + "line": 21 }, "start": { - "column": 25, - "line": 33 + "column": 39, + "line": 21 } } }, { - "id": "255", - "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 1, - "static": false, + "id": "195", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "Snapshot `Role Type Badge Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, + "static": false, "killedBy": [ - "8" + "174" ], "coveredBy": [ - "8", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 16, - "line": 36 + "column": 49, + "line": 22 }, "start": { - "column": 12, - "line": 36 + "column": 27, + "line": 22 } } }, { - "id": "257", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.every(player => player.role.name === RoleNames.ACTOR)", - "statusReason": "expected true to be false // Object.is equality", + "id": "196", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "Snapshot `Role Type Badge Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", - "testsCompleted": 14, + "testsCompleted": 1, "static": false, "killedBy": [ - "11" + "174" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 108, - "line": 40 + "column": 47, + "line": 22 }, "start": { - "column": 28, - "line": 40 + "column": 39, + "line": 22 } } }, { - "id": "258", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected true to be false // Object.is equality", + "id": "197", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expected undefined to be 'info' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 7, "static": false, "killedBy": [ - "11" + "180" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 107, - "line": 40 + "column": 45, + "line": 23 }, "start": { - "column": 61, - "line": 40 + "column": 25, + "line": 23 } } }, { - "id": "259", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected false to be true // Object.is equality", + "id": "198", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected '' to be 'info' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 7, "static": false, "killedBy": [ - "10" + "180" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 107, - "line": 40 + "column": 43, + "line": 23 }, "start": { - "column": 71, - "line": 40 + "column": 37, + "line": 23 } } }, { - "id": "260", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected true to be false // Object.is equality", + "id": "199", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expected undefined to be 'warning' // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 6, "static": false, "killedBy": [ - "11" + "179" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 107, - "line": 40 + "column": 51, + "line": 24 }, "start": { - "column": 71, - "line": 40 + "column": 28, + "line": 24 } } }, { - "id": "261", - "mutatorName": "EqualityOperator", - "replacement": "player.role.name !== RoleNames.ACTOR", - "statusReason": "expected false to be true // Object.is equality", + "id": "200", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected '' to be 'warning' // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 6, "static": false, "killedBy": [ - "10" + "179" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "174", + "175", + "176", + "177", + "178", + "179", + "180" ], "location": { "end": { - "column": 107, - "line": 40 + "column": 49, + "line": 24 }, "start": { - "column": 71, - "line": 40 + "column": 40, + "line": 24 } } - }, + } + ], + "source": "\n\n\n\n" + }, + "composables/api/error/useWerewolvesAssistantApiError.ts": { + "language": "typescript", + "mutants": [ { - "id": "262", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "id": "202", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "11" + "213" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "213", + "214" ], "location": { "end": { - "column": 137, - "line": 41 + "column": 4, + "line": 22 }, "start": { - "column": 43, - "line": 41 + "column": 124, + "line": 14 } } }, { - "id": "263", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", + "id": "203", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n },\n], but it was called with Object {}", "status": "Killed", "testsCompleted": 2, "static": false, "killedBy": [ - "10" + "214" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "213", + "214" ], "location": { "end": { - "column": 137, - "line": 41 + "column": 6, + "line": 21 }, "start": { - "column": 43, - "line": 41 + "column": 19, + "line": 18 } } }, { - "id": "264", - "mutatorName": "EqualityOperator", - "replacement": "createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.ACTOR) !== true", - "statusReason": "expected false to be true // Object.is equality", + "id": "204", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n },\n], but it was called with Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"\",\n}", "status": "Killed", "testsCompleted": 2, "static": false, "killedBy": [ - "10" + "214" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "213", + "214" ], "location": { "end": { - "column": 137, - "line": 41 + "column": 92, + "line": 19 }, "start": { - "column": 43, - "line": 41 + "column": 18, + "line": 19 } } }, { - "id": "265", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.additionalCards?.every(card => card.recipient === RoleNames.ACTOR)", - "statusReason": "expected false to be true // Object.is equality", + "id": "205", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"detail\": \"composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n },\n], but it was called with Object {\n \"detail\": \"\",\n \"summary\": \"composables.useWerewolvesAssistantApiError.statusCode.404\",\n}", "status": "Killed", "testsCompleted": 2, "static": false, "killedBy": [ - "10" + "214" ], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "213", + "214" ], "location": { "end": { - "column": 128, - "line": 41 + "column": 88, + "line": 20 }, "start": { - "column": 43, - "line": 41 + "column": 17, + "line": 20 } } }, { - "id": "267", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 2, - "static": false, - "killedBy": [ - "10" - ], + "id": "206", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "composables/api/error/useWerewolvesAssistantApiError.ts(23,3): error TS2741: Property 'handleWerewolvesAssistantApiError' is missing in type '{}' but required in type 'UseWerewolvesAssistantApiError'.\n", + "status": "CompileError", + "static": true, "coveredBy": [ - "10", - "11" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "208", + "213", + "214", + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { - "column": 127, - "line": 41 + "column": 47, + "line": 23 }, "start": { - "column": 85, - "line": 41 + "column": 10, + "line": 23 } } }, { - "id": "268", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 4, - "static": false, - "killedBy": [ - "11" - ], + "id": "201", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/error/useWerewolvesAssistantApiError.ts(10,44): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, "coveredBy": [ - "10", - "11" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "208", + "213", + "214", + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { - "column": 127, - "line": 41 + "column": 2, + "line": 24 }, "start": { - "column": 93, - "line": 41 + "column": 75, + "line": 10 } } - }, + } + ], + "source": "import type { FetchResponse } from \"ofetch\";\n\nimport type { WerewolvesAssistantApiError } from \"~/composables/api/error/types/api-error.types\";\nimport { useVuePrimeToasts } from \"~/composables/vue-prime/useVuePrimeToasts\";\n\ntype UseWerewolvesAssistantApiError = {\n handleWerewolvesAssistantApiError: (error: { response: FetchResponse }) => void;\n};\n\nfunction useWerewolvesAssistantApiError(): UseWerewolvesAssistantApiError {\n const { addErrorToast } = useVuePrimeToasts();\n const { t } = useI18n();\n\n function handleWerewolvesAssistantApiError({ response }: { response: FetchResponse }): void {\n const { _data: errorData } = response;\n // eslint-disable-next-line no-console\n console.error(errorData);\n addErrorToast({\n summary: t(`composables.useWerewolvesAssistantApiError.statusCode.${response.status}`),\n detail: t(`composables.useWerewolvesAssistantApiError.checkConsoleForMoreDetails`),\n });\n }\n return { handleWerewolvesAssistantApiError };\n}\n\nexport { useWerewolvesAssistantApiError };" + }, + "composables/api/game/dto/create-game/create-game-additional-card/create-game-additional-card.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "269", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 2, - "static": false, - "killedBy": [ - "10" - ], + "id": "207", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/create-game/create-game-additional-card/create-game-additional-card.dto.ts(15,83): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, + "killedBy": [], "coveredBy": [ - "10", - "11" + "254" ], "location": { "end": { - "column": 127, - "line": 41 + "column": 4, + "line": 17 }, "start": { - "column": 93, - "line": 41 - } - } - }, - { - "id": "270", - "mutatorName": "EqualityOperator", - "replacement": "card.recipient !== RoleNames.ACTOR", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 4, - "static": false, - "killedBy": [ - "11" - ], - "coveredBy": [ - "10", - "11" - ], - "location": { - "end": { - "column": 127, - "line": 41 - }, - "start": { - "column": 93, - "line": 41 + "column": 111, + "line": 15 } } - }, + } + ], + "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { GameAdditionalCardRecipientRoleName } from \"~/composables/api/game/types/game-additional-card/types/game-additional-card.types\";\nimport { RoleNames } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGameAdditionalCardDto {\n @Expose()\n public roleName: RoleNames;\n\n @Expose()\n public recipient: GameAdditionalCardRecipientRoleName;\n\n public static create(createGameAdditionalCardDto: CreateGameAdditionalCardDto): CreateGameAdditionalCardDto {\n return plainToInstance(CreateGameAdditionalCardDto, createGameAdditionalCardDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGameAdditionalCardDto };" + }, + "composables/api/game/dto/create-game/create-game-player/create-game-player-role.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "271", - "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 2, - "static": false, - "killedBy": [ - "10" - ], + "id": "208", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/create-game/create-game-player/create-game-player-role.dto.ts(10,75): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, + "killedBy": [], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", + "43", + "44", + "45", + "47", + "48", + "49", + "50", + "52", + "53", + "58", + "60", + "61", + "62", + "63", + "64", + "65", "80", "81", "82", "83", "84", - "85" + "85", + "104", + "116", + "117", + "118", + "119", + "120", + "121", + "161", + "212", + "229", + "255" ], "location": { "end": { - "column": 137, - "line": 41 + "column": 4, + "line": 12 }, "start": { - "column": 133, - "line": 41 + "column": 99, + "line": 10 } } - }, + } + ], + "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { RoleNames } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGamePlayerRoleDto {\n @Expose()\n public name?: RoleNames;\n\n public static create(createGamePlayerRoleDto: CreateGamePlayerRoleDto): CreateGamePlayerRoleDto {\n return plainToInstance(CreateGamePlayerRoleDto, createGamePlayerRoleDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGamePlayerRoleDto };" + }, + "composables/api/game/dto/create-game/create-game-player/create-game-player-side.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "272", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 1, - "static": false, - "killedBy": [ - "10" - ], + "id": "209", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/create-game/create-game-player/create-game-player-side.dto.ts(13,75): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, + "killedBy": [], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", + "43", + "44", + "45", + "47", + "48", + "49", + "50", + "52", + "53", + "58", + "60", + "61", + "62", + "63", + "64", + "65", "80", "81", "82", "83", "84", - "85" + "85", + "104", + "116", + "117", + "118", + "119", + "120", + "121", + "161", + "212", + "229", + "255" ], "location": { "end": { - "column": 23, - "line": 42 + "column": 4, + "line": 15 }, "start": { - "column": 9, - "line": 42 + "column": 99, + "line": 13 } } - }, + } + ], + "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGamePlayerSideDto {\n @Expose()\n public original?: RoleSides;\n\n @Expose()\n public current?: RoleSides;\n\n public static create(createGamePlayerSideDto: CreateGamePlayerSideDto): CreateGamePlayerSideDto {\n return plainToInstance(CreateGamePlayerSideDto, createGamePlayerSideDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGamePlayerSideDto };" + }, + "composables/api/game/dto/create-game/create-game-player/create-game-player.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "273", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 3, - "static": false, - "killedBy": [ - "11" - ], + "id": "210", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/create-game/create-game-player/create-game-player.dto.ts(22,67): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, + "killedBy": [], "coveredBy": [ - "10", - "11", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", + "43", + "44", + "45", + "47", + "48", + "49", + "50", + "52", + "53", + "58", + "60", + "61", + "62", + "63", + "64", + "65", "80", "81", "82", "83", "84", - "85" + "85", + "104", + "105", + "116", + "117", + "118", + "119", + "120", + "121", + "161", + "212", + "229", + "255" ], "location": { "end": { - "column": 23, - "line": 42 + "column": 4, + "line": 24 }, "start": { - "column": 9, - "line": 42 + "column": 87, + "line": 22 } } - }, + } + ], + "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\nimport { CreateGamePlayerRoleDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player-role.dto\";\nimport { CreateGamePlayerSideDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player-side.dto\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGamePlayerDto {\n @Expose()\n public name: string;\n\n @Type(() => CreateGamePlayerRoleDto)\n @Expose()\n public role: CreateGamePlayerRoleDto;\n\n @Type(() => CreateGamePlayerSideDto)\n @Expose()\n public side: CreateGamePlayerSideDto;\n\n @Expose()\n public group?: string;\n\n public static create(createGamePlayerDto: CreateGamePlayerDto): CreateGamePlayerDto {\n return plainToInstance(CreateGamePlayerDto, createGamePlayerDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGamePlayerDto };" + }, + "composables/api/game/dto/create-game/create-game.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "274", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 3, - "static": false, - "killedBy": [ - "11" - ], - "coveredBy": [ - "10", - "11", - "21" - ], - "location": { - "end": { - "column": 6, - "line": 44 - }, - "start": { - "column": 25, - "line": 42 - } - } - }, - { - "id": "275", - "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 1, - "static": false, - "killedBy": [ - "10" - ], + "id": "211", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "composables/api/game/dto/create-game/create-game.dto.ts(10,44): error TS2322: Type 'string' is not assignable to type 'CreateGamePlayerDto'.\n", + "status": "CompileError", + "static": true, + "killedBy": [], "coveredBy": [ - "10", - "20", - "21", "22", + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7083,36 +6590,86 @@ "82", "83", "84", - "85" + "85", + "96", + "97", + "98", + "99", + "100", + "101", + "102", + "103", + "104", + "105", + "115", + "116", + "117", + "118", + "119", + "120", + "121", + "142", + "143", + "158", + "159", + "160", + "161", + "162", + "209", + "210", + "211", + "212", + "244", + "245", + "246", + "255" ], "location": { "end": { - "column": 16, - "line": 45 + "column": 45, + "line": 10 }, "start": { - "column": 12, - "line": 45 + "column": 43, + "line": 10 } } }, { - "id": "277", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.every(player => player.role.name === RoleNames.PREJUDICED_MANIPULATOR)", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 3, - "static": false, - "killedBy": [ - "13" - ], + "id": "212", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/create-game/create-game.dto.ts(16,55): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, + "killedBy": [], "coveredBy": [ - "12", - "13", - "20", - "21", "22", + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7123,114 +6680,216 @@ "82", "83", "84", - "85" + "85", + "96", + "97", + "98", + "99", + "100", + "101", + "102", + "103", + "104", + "105", + "115", + "116", + "117", + "118", + "119", + "120", + "121", + "142", + "143", + "158", + "159", + "160", + "161", + "162", + "209", + "210", + "211", + "212", + "244", + "245", + "246", + "255" ], "location": { "end": { - "column": 141, - "line": 49 + "column": 4, + "line": 18 }, "start": { - "column": 44, - "line": 49 + "column": 69, + "line": 16 } } - }, + } + ], + "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\nimport { CreateGameAdditionalCardDto } from \"~/composables/api/game/dto/create-game/create-game-additional-card/create-game-additional-card.dto\";\nimport { CreateGamePlayerDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player.dto\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGameDto {\n @Type(() => CreateGamePlayerDto)\n @Expose()\n public players: CreateGamePlayerDto[] = [];\n\n @Type(() => CreateGameAdditionalCardDto)\n @Expose()\n public additionalCards?: CreateGameAdditionalCardDto[];\n\n public static create(createGameDto: CreateGameDto): CreateGameDto {\n return plainToInstance(CreateGameDto, createGameDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGameDto };" + }, + "composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "278", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 3, + "id": "213", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto.ts(14,71): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "13" - ], + "killedBy": [], "coveredBy": [ - "12", - "13", - "20", - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "26", + "27", + "29", + "30", + "31" ], "location": { "end": { - "column": 140, - "line": 49 + "column": 4, + "line": 16 }, "start": { - "column": 77, - "line": 49 + "column": 93, + "line": 14 } } - }, + } + ], + "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { WitchPotion } from \"~/composables/api/game/types/game-play/game-play.types\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass MakeGamePlayTargetDto {\n @Expose()\n public playerId: string;\n\n @Expose()\n public drankPotion?: WitchPotion;\n\n public static create(makeGamePlayTargetDto: MakeGamePlayTargetDto): MakeGamePlayTargetDto {\n return plainToInstance(MakeGamePlayTargetDto, makeGamePlayTargetDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { MakeGamePlayTargetDto };" + }, + "composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "279", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 4, + "id": "214", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto.ts(12,67): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "20" - ], + "killedBy": [], "coveredBy": [ - "12", - "13", - "20", - "21", - "22", - "77", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "32", + "33", + "35", + "36", + "37" ], "location": { "end": { - "column": 140, - "line": 49 + "column": 4, + "line": 14 }, "start": { "column": 87, - "line": 49 + "line": 12 } } - }, + } + ], + "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass MakeGamePlayVoteDto {\n @Expose()\n public sourceId: string;\n\n @Expose()\n public targetId: string;\n\n public static create(makeGamePlayVoteDto: MakeGamePlayVoteDto): MakeGamePlayVoteDto {\n return plainToInstance(MakeGamePlayVoteDto, makeGamePlayVoteDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { MakeGamePlayVoteDto };" + }, + "composables/api/game/dto/make-game-play/make-game-play.dto.ts": { + "language": "typescript", + "mutants": [ { - "id": "280", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 3, + "id": "215", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/dto/make-game-play/make-game-play.dto.ts(26,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "13" + "killedBy": [], + "coveredBy": [ + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30", + "31", + "32", + "33", + "34", + "35", + "36", + "37", + "38", + "39", + "40", + "148", + "149", + "156", + "157" ], + "location": { + "end": { + "column": 4, + "line": 28 + }, + "start": { + "column": 75, + "line": 26 + } + } + } + ], + "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\nimport { MakeGamePlayTargetDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto\";\nimport { MakeGamePlayVoteDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto\";\nimport { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass MakeGamePlayDto {\n @Type(() => MakeGamePlayTargetDto)\n @Expose()\n public targets?: MakeGamePlayTargetDto[];\n\n @Type(() => MakeGamePlayVoteDto)\n @Expose()\n public votes?: MakeGamePlayVoteDto[];\n\n @Expose()\n public doesJudgeRequestAnotherVote?: boolean;\n\n @Expose()\n public chosenCardId?: string;\n\n @Expose()\n public chosenSide?: RoleSides;\n\n public static create(makeGamePlayDto: MakeGamePlayDto): MakeGamePlayDto {\n return plainToInstance(MakeGamePlayDto, makeGamePlayDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { MakeGamePlayDto };" + }, + "composables/api/game/useCreateGameDtoValidation.ts": { + "language": "typescript", + "mutants": [ + { + "id": "220", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(19,73): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], "coveredBy": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", "12", "13", + "14", + "15", + "16", + "17", + "18", + "19", "20", "21", "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", + "75", + "76", "77", + "78", "79", "80", "81", @@ -7241,33 +6900,61 @@ ], "location": { "end": { - "column": 140, - "line": 49 + "column": 2, + "line": 90 }, "start": { - "column": 87, - "line": 49 + "column": 100, + "line": 19 } } }, { - "id": "281", - "mutatorName": "EqualityOperator", - "replacement": "player.role.name !== RoleNames.PREJUDICED_MANIPULATOR", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 4, + "id": "221", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(22,35): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "20" - ], + "killedBy": [], "coveredBy": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", "12", "13", + "14", + "15", + "16", + "17", + "18", + "19", "20", "21", "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", + "75", + "76", "77", + "78", "79", "80", "81", @@ -7278,32 +6965,48 @@ ], "location": { "end": { - "column": 140, - "line": 49 + "column": 116, + "line": 22 }, "start": { - "column": 87, - "line": 49 + "column": 53, + "line": 22 } } }, { - "id": "282", - "mutatorName": "MethodExpression", - "replacement": "createGameDto.value.players.some(player => player.group)", + "id": "222", + "mutatorName": "ConditionalExpression", + "replacement": "true", "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "13" + "0" ], "coveredBy": [ - "12", - "13", + "0", + "1", + "14", + "15", + "16", + "17", + "18", + "19", "20", "21", "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7318,32 +7021,48 @@ ], "location": { "end": { - "column": 89, - "line": 50 + "column": 116, + "line": 22 }, "start": { - "column": 32, - "line": 50 + "column": 59, + "line": 22 } } }, { - "id": "283", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", + "id": "223", + "mutatorName": "ConditionalExpression", + "replacement": "false", "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 2, "static": false, "killedBy": [ - "12" + "1" ], "coveredBy": [ - "12", - "13", + "0", + "1", + "14", + "15", + "16", + "17", + "18", + "19", "20", "21", "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7358,32 +7077,48 @@ ], "location": { "end": { - "column": 88, - "line": 50 + "column": 116, + "line": 22 }, "start": { - "column": 66, - "line": 50 + "column": 59, + "line": 22 } } }, { - "id": "284", - "mutatorName": "ConditionalExpression", - "replacement": "true", + "id": "224", + "mutatorName": "EqualityOperator", + "replacement": "createGameDto.value.players.length > MIN_PLAYERS_IN_GAME", "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 2, "static": false, "killedBy": [ - "20" + "1" ], "coveredBy": [ - "12", - "13", + "0", + "1", + "14", + "15", + "16", + "17", + "18", + "19", "20", "21", "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7398,32 +7133,48 @@ ], "location": { "end": { - "column": 39, - "line": 51 + "column": 116, + "line": 22 }, "start": { - "column": 9, - "line": 51 + "column": 59, + "line": 22 } } }, { - "id": "285", - "mutatorName": "ConditionalExpression", - "replacement": "false", + "id": "225", + "mutatorName": "EqualityOperator", + "replacement": "createGameDto.value.players.length < MIN_PLAYERS_IN_GAME", "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 3, + "testsCompleted": 1, "static": false, "killedBy": [ - "13" + "0" ], "coveredBy": [ - "12", - "13", + "0", + "1", + "14", + "15", + "16", + "17", + "18", + "19", "20", "21", "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7438,58 +7189,57 @@ ], "location": { "end": { - "column": 39, - "line": 51 + "column": 116, + "line": 22 }, "start": { - "column": 9, - "line": 51 + "column": 59, + "line": 22 } } }, { - "id": "286", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 3, + "id": "226", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(24,26): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "13" - ], + "killedBy": [], "coveredBy": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", "12", "13", - "21" - ], - "location": { - "end": { - "column": 6, - "line": 53 - }, - "start": { - "column": 41, - "line": 51 - } - } - }, - { - "id": "287", - "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "expected false to be true // Object.is equality", - "status": "Killed", - "testsCompleted": 1, - "static": false, - "killedBy": [ - "12" - ], - "coveredBy": [ - "12", + "14", + "15", + "16", + "17", + "18", + "19", "20", "21", "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7504,34 +7254,34 @@ ], "location": { "end": { - "column": 16, - "line": 54 + "column": 125, + "line": 24 }, "start": { - "column": 12, - "line": 54 + "column": 44, + "line": 24 } } }, { - "id": "289", - "mutatorName": "ConditionalExpression", - "replacement": "true", + "id": "227", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.some(player => player.role.name !== undefined)", "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "14" + "3" ], "coveredBy": [ - "14", + "2", + "3", "15", "16", - "17", - "18", - "19", "20", + "21", + "22", "75", "76", "77", @@ -7546,34 +7296,34 @@ ], "location": { "end": { - "column": 62, - "line": 63 + "column": 125, + "line": 24 }, "start": { - "column": 49, - "line": 57 + "column": 50, + "line": 24 } } }, { - "id": "290", - "mutatorName": "ConditionalExpression", - "replacement": "false", + "id": "228", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 8, + "testsCompleted": 1, "static": false, "killedBy": [ - "20" + "2" ], "coveredBy": [ - "14", + "2", + "3", "15", "16", - "17", - "18", - "19", "20", + "21", + "22", "75", "76", "77", @@ -7588,38 +7338,35 @@ ], "location": { "end": { - "column": 62, - "line": 63 + "column": 124, + "line": 24 }, "start": { - "column": 49, - "line": 57 + "column": 84, + "line": 24 } } }, { - "id": "291", - "mutatorName": "LogicalOperator", - "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value && doesContainOneWerewolfSidedRole.value && areAdditionalCardsSetForThiefIfPresent.value && areAdditionalCardsSetForActorIfPresent.value || arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value", + "id": "229", + "mutatorName": "ConditionalExpression", + "replacement": "true", "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 10, "static": false, "killedBy": [ - "14" + "3" ], "coveredBy": [ - "14", + "2", + "3", "15", "16", - "17", - "18", - "19", "20", - "75", - "76", + "21", + "22", "77", - "78", "79", "80", "81", @@ -7630,38 +7377,35 @@ ], "location": { "end": { - "column": 62, - "line": 63 + "column": 124, + "line": 24 }, "start": { - "column": 49, - "line": 57 + "column": 94, + "line": 24 } } }, { - "id": "292", + "id": "230", "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "14" + "2" ], "coveredBy": [ - "14", + "2", + "3", "15", "16", - "17", - "18", - "19", "20", - "75", - "76", + "21", + "22", "77", - "78", "79", "80", "81", @@ -7672,38 +7416,35 @@ ], "location": { "end": { - "column": 49, - "line": 62 + "column": 124, + "line": 24 }, "start": { - "column": 49, - "line": 57 + "column": 94, + "line": 24 } } }, { - "id": "293", - "mutatorName": "LogicalOperator", - "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value && doesContainOneWerewolfSidedRole.value && areAdditionalCardsSetForThiefIfPresent.value || areAdditionalCardsSetForActorIfPresent.value", - "statusReason": "expected true to be false // Object.is equality", + "id": "231", + "mutatorName": "EqualityOperator", + "replacement": "player.role.name === undefined", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "14" + "2" ], "coveredBy": [ - "14", + "2", + "3", "15", "16", - "17", - "18", - "19", "20", - "75", - "76", + "21", + "22", "77", - "78", "79", "80", "81", @@ -7714,27 +7455,38 @@ ], "location": { "end": { - "column": 49, - "line": 62 + "column": 124, + "line": 24 }, "start": { - "column": 49, - "line": 57 + "column": 94, + "line": 24 } } }, { - "id": "294", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 1, + "id": "232", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(26,43): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "14" - ], + "killedBy": [], "coveredBy": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", "14", "15", "16", @@ -7742,6 +7494,18 @@ "18", "19", "20", + "21", + "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", "75", "76", "77", @@ -7756,34 +7520,33 @@ ], "location": { "end": { - "column": 49, - "line": 61 + "column": 154, + "line": 26 }, "start": { - "column": 49, - "line": 57 + "column": 61, + "line": 26 } } }, { - "id": "295", - "mutatorName": "LogicalOperator", - "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value && doesContainOneWerewolfSidedRole.value || areAdditionalCardsSetForThiefIfPresent.value", - "statusReason": "expected true to be false // Object.is equality", + "id": "233", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.every(player => player.side.current === RoleSides.VILLAGERS)", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "14" + "4" ], "coveredBy": [ - "14", - "15", + "4", + "5", "16", - "17", - "18", - "19", "20", + "21", + "22", "75", "76", "77", @@ -7798,34 +7561,33 @@ ], "location": { "end": { - "column": 49, - "line": 61 + "column": 154, + "line": 26 }, "start": { - "column": 49, - "line": 57 + "column": 67, + "line": 26 } } }, { - "id": "296", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "id": "234", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "14" + "4" ], "coveredBy": [ - "14", - "15", + "4", + "5", "16", - "17", - "18", - "19", "20", + "21", + "22", "75", "76", "77", @@ -7840,38 +7602,34 @@ ], "location": { "end": { - "column": 42, - "line": 60 + "column": 153, + "line": 26 }, "start": { - "column": 49, - "line": 57 + "column": 100, + "line": 26 } } }, { - "id": "297", - "mutatorName": "LogicalOperator", - "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value || doesContainOneWerewolfSidedRole.value", + "id": "235", + "mutatorName": "ConditionalExpression", + "replacement": "true", "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "14" + "5" ], "coveredBy": [ - "14", - "15", + "4", + "5", "16", - "17", - "18", - "19", "20", - "75", - "76", + "21", + "22", "77", - "78", "79", "80", "81", @@ -7882,38 +7640,34 @@ ], "location": { "end": { - "column": 42, - "line": 60 + "column": 153, + "line": 26 }, "start": { - "column": 49, - "line": 57 + "column": 110, + "line": 26 } } }, { - "id": "298", + "id": "236", "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "14" + "4" ], "coveredBy": [ - "14", - "15", + "4", + "5", "16", - "17", - "18", - "19", "20", - "75", - "76", + "21", + "22", "77", - "78", "79", "80", "81", @@ -7924,38 +7678,34 @@ ], "location": { "end": { - "column": 42, - "line": 59 + "column": 153, + "line": 26 }, "start": { - "column": 49, - "line": 57 + "column": 110, + "line": 26 } } }, { - "id": "299", - "mutatorName": "LogicalOperator", - "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value || doesContainOneVillagerSidedRole.value", + "id": "237", + "mutatorName": "EqualityOperator", + "replacement": "player.side.current !== RoleSides.VILLAGERS", "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "14" + "5" ], "coveredBy": [ - "14", - "15", + "4", + "5", "16", - "17", - "18", - "19", "20", - "75", - "76", + "21", + "22", "77", - "78", "79", "80", "81", @@ -7966,36 +7716,59 @@ ], "location": { "end": { - "column": 42, - "line": 59 + "column": 153, + "line": 26 }, "start": { - "column": 49, - "line": 57 + "column": 110, + "line": 26 } } }, { - "id": "300", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected true to be false // Object.is equality", - "status": "Killed", - "testsCompleted": 1, + "id": "238", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(28,43): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "14" - ], + "killedBy": [], "coveredBy": [ - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "75", - "76", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", + "75", + "76", "77", "78", "79", @@ -8008,34 +7781,33 @@ ], "location": { "end": { - "column": 25, - "line": 58 + "column": 155, + "line": 28 }, "start": { - "column": 49, - "line": 57 + "column": 61, + "line": 28 } } }, { - "id": "301", - "mutatorName": "LogicalOperator", - "replacement": "isMinimumPlayersReached.value || areAllRolesSet.value", - "statusReason": "expected true to be false // Object.is equality", + "id": "239", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.every(player => player.side.current === RoleSides.WEREWOLVES)", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "14" + "6" ], "coveredBy": [ - "14", - "15", + "6", + "7", "16", - "17", - "18", - "19", "20", + "21", + "22", "75", "76", "77", @@ -8050,27 +7822,31 @@ ], "location": { "end": { - "column": 25, - "line": 58 + "column": 155, + "line": 28 }, "start": { - "column": 49, - "line": 57 + "column": 67, + "line": 28 } } }, { - "id": "303", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", + "id": "240", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "21" + "6" ], "coveredBy": [ + "6", + "7", + "16", + "20", "21", "22", "75", @@ -8087,33 +7863,34 @@ ], "location": { "end": { - "column": 6, - "line": 74 + "column": 154, + "line": 28 }, "start": { - "column": 45, - "line": 66 + "column": 100, + "line": 28 } } }, { - "id": "304", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ '' ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "241", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "21" + "7" ], "coveredBy": [ + "6", + "7", + "16", + "20", "21", "22", - "75", - "76", "77", - "78", "79", "80", "81", @@ -8124,33 +7901,34 @@ ], "location": { "end": { - "column": 77, - "line": 67 + "column": 154, + "line": 28 }, "start": { - "column": 10, - "line": 67 + "column": 110, + "line": 28 } } }, { - "id": "305", - "mutatorName": "BooleanLiteral", - "replacement": "isMinimumPlayersReached.value", - "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", + "id": "242", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "21" + "6" ], "coveredBy": [ + "6", + "7", + "16", + "20", "21", "22", - "75", - "76", "77", - "78", "79", "80", "81", @@ -8161,33 +7939,34 @@ ], "location": { "end": { - "column": 111, - "line": 67 + "column": 154, + "line": 28 }, "start": { - "column": 81, - "line": 67 + "column": 110, + "line": 28 } } }, { - "id": "306", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ '', …(2) ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "243", + "mutatorName": "EqualityOperator", + "replacement": "player.side.current !== RoleSides.WEREWOLVES", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 2, "static": false, "killedBy": [ - "21" + "7" ], "coveredBy": [ + "6", + "7", + "16", + "20", "21", "22", - "75", - "76", "77", - "78", "79", "80", "81", @@ -8198,27 +7977,27 @@ ], "location": { "end": { - "column": 68, - "line": 68 + "column": 154, + "line": 28 }, "start": { - "column": 10, - "line": 68 + "column": 110, + "line": 28 } } }, { - "id": "307", - "mutatorName": "BooleanLiteral", - "replacement": "areAllRolesSet.value", - "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", - "status": "Killed", - "testsCompleted": 2, + "id": "244", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(30,68): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'ComputedGetter'.\n Type 'void' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'WritableComputedOptions'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "21" - ], + "killedBy": [], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8235,27 +8014,30 @@ ], "location": { "end": { - "column": 93, - "line": 68 + "column": 4, + "line": 37 }, "start": { - "column": 72, - "line": 68 + "column": 74, + "line": 30 } } }, { - "id": "308", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ '' ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "245", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.every(player => player.role.name === RoleNames.THIEF)", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 3, "static": false, "killedBy": [ - "21" + "9" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8272,27 +8054,30 @@ ], "location": { "end": { - "column": 70, - "line": 69 + "column": 108, + "line": 31 }, "start": { - "column": 10, - "line": 69 + "column": 28, + "line": 31 } } }, { - "id": "309", - "mutatorName": "BooleanLiteral", - "replacement": "doesContainOneVillagerSidedRole.value", - "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", + "id": "246", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 3, "static": false, "killedBy": [ - "21" + "9" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8309,33 +8094,33 @@ ], "location": { "end": { - "column": 112, - "line": 69 + "column": 107, + "line": 31 }, "start": { - "column": 74, - "line": 69 + "column": 61, + "line": 31 } } }, { - "id": "310", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ '' ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "247", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 1, "static": false, "killedBy": [ - "21" + "8" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", - "75", - "76", "77", - "78", "79", "80", "81", @@ -8346,33 +8131,33 @@ ], "location": { "end": { - "column": 70, - "line": 70 + "column": 107, + "line": 31 }, "start": { - "column": 10, - "line": 70 + "column": 71, + "line": 31 } } }, { - "id": "311", - "mutatorName": "BooleanLiteral", - "replacement": "doesContainOneWerewolfSidedRole.value", - "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", + "id": "248", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 4, + "testsCompleted": 3, "static": false, "killedBy": [ - "21" + "9" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", - "75", - "76", "77", - "78", "79", "80", "81", @@ -8383,33 +8168,33 @@ ], "location": { "end": { - "column": 112, - "line": 70 + "column": 107, + "line": 31 }, "start": { - "column": 74, - "line": 70 + "column": 71, + "line": 31 } } }, { - "id": "312", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ …(3) ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "249", + "mutatorName": "EqualityOperator", + "replacement": "player.role.name !== RoleNames.THIEF", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 5, + "testsCompleted": 1, "static": false, "killedBy": [ - "21" + "8" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", - "75", - "76", "77", - "78", "79", "80", "81", @@ -8420,27 +8205,30 @@ ], "location": { "end": { - "column": 77, - "line": 71 + "column": 107, + "line": 31 }, "start": { - "column": 10, - "line": 71 + "column": 71, + "line": 31 } } }, { - "id": "313", - "mutatorName": "BooleanLiteral", - "replacement": "areAdditionalCardsSetForThiefIfPresent.value", - "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "250", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 5, + "testsCompleted": 3, "static": false, "killedBy": [ - "21" + "9" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8457,27 +8245,30 @@ ], "location": { "end": { - "column": 126, - "line": 71 + "column": 137, + "line": 32 }, "start": { - "column": 81, - "line": 71 + "column": 43, + "line": 32 } } }, { - "id": "314", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ …(3) ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "251", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 2, "static": false, "killedBy": [ - "21" + "8" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8494,27 +8285,30 @@ ], "location": { "end": { - "column": 77, - "line": 72 + "column": 137, + "line": 32 }, "start": { - "column": 10, - "line": 72 + "column": 43, + "line": 32 } } }, { - "id": "315", - "mutatorName": "BooleanLiteral", - "replacement": "areAdditionalCardsSetForActorIfPresent.value", - "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "252", + "mutatorName": "EqualityOperator", + "replacement": "createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.THIEF) !== true", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 6, + "testsCompleted": 2, "static": false, "killedBy": [ - "21" + "8" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8531,27 +8325,30 @@ ], "location": { "end": { - "column": 126, - "line": 72 + "column": 137, + "line": 32 }, "start": { - "column": 81, - "line": 72 + "column": 43, + "line": 32 } } }, { - "id": "316", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ …(3) ] to include 'composables.useCreateGameDtoValidatio…'", + "id": "253", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.additionalCards?.every(card => card.recipient === RoleNames.THIEF)", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 2, "static": false, "killedBy": [ - "21" + "8" ], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8568,27 +8365,27 @@ ], "location": { "end": { - "column": 84, - "line": 73 + "column": 128, + "line": 32 }, "start": { - "column": 10, - "line": 73 + "column": 43, + "line": 32 } } }, { - "id": "317", - "mutatorName": "BooleanLiteral", - "replacement": "arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value", - "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", - "status": "Killed", - "testsCompleted": 7, + "id": "254", + "mutatorName": "OptionalChaining", + "replacement": "createGameDto.value.additionalCards.some", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(32,43): error TS18048: 'createGameDto.value.additionalCards' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "21" - ], + "killedBy": [], "coveredBy": [ + "8", + "9", + "20", "21", "22", "75", @@ -8605,258 +8402,136 @@ ], "location": { "end": { - "column": 146, - "line": 73 + "column": 84, + "line": 32 }, "start": { - "column": 88, - "line": 73 + "column": 43, + "line": 32 } } }, { - "id": "318", - "mutatorName": "MethodExpression", - "replacement": "Object.keys(errors)", - "statusReason": "expected [ …(7) ] to strictly equal []", + "id": "255", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 8, + "testsCompleted": 2, "static": false, "killedBy": [ - "22" + "8" ], "coveredBy": [ - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "8", + "9" ], "location": { "end": { - "column": 81, - "line": 76 + "column": 127, + "line": 32 }, "start": { - "column": 12, - "line": 76 + "column": 85, + "line": 32 } } }, { - "id": "319", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", + "id": "256", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "21" + "9" ], "coveredBy": [ - "21", - "22", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "8", + "9" ], "location": { "end": { - "column": 80, - "line": 76 + "column": 127, + "line": 32 }, "start": { - "column": 39, - "line": 76 + "column": 93, + "line": 32 } } }, { - "id": "213", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(22,35): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", - "static": false, - "coveredBy": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", + "id": "257", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 2, + "static": false, + "killedBy": [ + "8" + ], + "coveredBy": [ "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "9" ], "location": { "end": { - "column": 116, - "line": 22 + "column": 127, + "line": 32 }, "start": { - "column": 53, - "line": 22 + "column": 93, + "line": 32 } } }, { - "id": "212", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(19,73): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "258", + "mutatorName": "EqualityOperator", + "replacement": "card.recipient !== RoleNames.THIEF", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 4, "static": false, + "killedBy": [ + "9" + ], "coveredBy": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "9" ], "location": { "end": { - "column": 2, - "line": 90 + "column": 127, + "line": 32 }, "start": { - "column": 100, - "line": 19 + "column": 93, + "line": 32 } } }, { - "id": "224", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(26,43): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", + "id": "259", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 2, "static": false, + "killedBy": [ + "8" + ], "coveredBy": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", "8", "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", "20", "21", "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", "75", "76", "77", @@ -8871,56 +8546,32 @@ ], "location": { "end": { - "column": 154, - "line": 26 + "column": 137, + "line": 32 }, "start": { - "column": 61, - "line": 26 + "column": 133, + "line": 32 } } }, { - "id": "230", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(28,43): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", + "id": "260", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "8" + ], "coveredBy": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", "8", "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", "20", "21", "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", "75", "76", "77", @@ -8935,22 +8586,26 @@ ], "location": { "end": { - "column": 155, - "line": 28 + "column": 23, + "line": 33 }, "start": { - "column": 61, - "line": 28 + "column": 9, + "line": 33 } } }, { - "id": "236", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(30,68): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'ComputedGetter'.\n Type 'void' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", + "id": "261", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, "static": false, + "killedBy": [ + "9" + ], "coveredBy": [ "8", "9", @@ -8971,25 +8626,55 @@ ], "location": { "end": { - "column": 4, - "line": 37 + "column": 23, + "line": 33 }, "start": { - "column": 74, - "line": 30 + "column": 9, + "line": 33 } } }, { - "id": "246", - "mutatorName": "OptionalChaining", - "replacement": "createGameDto.value.additionalCards.some", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(32,43): error TS18048: 'createGameDto.value.additionalCards' is possibly 'undefined'.\n", - "status": "CompileError", - "static": false, - "coveredBy": [ + "id": "262", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, + "static": false, + "killedBy": [ + "9" + ], + "coveredBy": [ "8", "9", + "21" + ], + "location": { + "end": { + "column": 6, + "line": 35 + }, + "start": { + "column": 25, + "line": 33 + } + } + }, + { + "id": "263", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "8" + ], + "coveredBy": [ + "8", "20", "21", "22", @@ -9007,22 +8692,23 @@ ], "location": { "end": { - "column": 84, - "line": 32 + "column": 16, + "line": 36 }, "start": { - "column": 43, - "line": 32 + "column": 12, + "line": 36 } } }, { - "id": "256", + "id": "264", "mutatorName": "BlockStatement", "replacement": "{}", "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(39,68): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'ComputedGetter'.\n Type 'void' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'WritableComputedOptions'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ "10", "11", @@ -9053,12 +8739,16 @@ } }, { - "id": "266", - "mutatorName": "OptionalChaining", - "replacement": "createGameDto.value.additionalCards.some", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(41,43): error TS18048: 'createGameDto.value.additionalCards' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "265", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.every(player => player.role.name === RoleNames.ACTOR)", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 14, "static": false, + "killedBy": [ + "11" + ], "coveredBy": [ "10", "11", @@ -9079,25 +8769,29 @@ ], "location": { "end": { - "column": 84, - "line": 41 + "column": 108, + "line": 40 }, "start": { - "column": 43, - "line": 41 + "column": 28, + "line": 40 } } }, { - "id": "276", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(48,81): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'ComputedGetter'.\n Type 'void' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", + "id": "266", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, "static": false, + "killedBy": [ + "11" + ], "coveredBy": [ - "12", - "13", + "10", + "11", "20", "21", "22", @@ -9115,60 +8809,33 @@ ], "location": { "end": { - "column": 4, - "line": 55 + "column": 107, + "line": 40 }, "start": { - "column": 87, - "line": 48 + "column": 61, + "line": 40 } } }, { - "id": "288", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(57,25): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", + "id": "267", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "10" + ], "coveredBy": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", "10", "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", "20", "21", "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", "77", - "78", "79", "80", "81", @@ -9179,60 +8846,33 @@ ], "location": { "end": { - "column": 62, - "line": 63 + "column": 107, + "line": 40 }, "start": { - "column": 43, - "line": 57 + "column": 71, + "line": 40 } } }, { - "id": "218", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(24,26): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", + "id": "268", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, "static": false, + "killedBy": [ + "11" + ], "coveredBy": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", "10", "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", "20", "21", "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", "77", - "78", "79", "80", "81", @@ -9243,29 +8883,33 @@ ], "location": { "end": { - "column": 125, - "line": 24 + "column": 107, + "line": 40 }, "start": { - "column": 44, - "line": 24 + "column": 71, + "line": 40 } } }, { - "id": "302", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(65,59): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'ComputedGetter'.\n Type 'void' is not assignable to type 'string[]'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'WritableComputedOptions'.\n", - "status": "CompileError", + "id": "269", + "mutatorName": "EqualityOperator", + "replacement": "player.role.name !== RoleNames.ACTOR", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "10" + ], "coveredBy": [ + "10", + "11", + "20", "21", "22", - "75", - "76", "77", - "78", "79", "80", "81", @@ -9276,56 +8920,32 @@ ], "location": { "end": { - "column": 4, - "line": 77 + "column": 107, + "line": 40 }, "start": { - "column": 65, - "line": 65 + "column": 71, + "line": 40 } } }, { - "id": "320", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(79,3): error TS2740: Type '{}' is missing the following properties from type 'UseCreateGameDtoValidation': isMinimumPlayersReached, areAllRolesSet, doesContainOneVillagerSidedRole, doesContainOneWerewolfSidedRole, and 5 more.\n", - "status": "CompileError", + "id": "270", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, "static": false, + "killedBy": [ + "11" + ], "coveredBy": [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", "10", "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", "20", "21", "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", "75", "76", "77", @@ -9340,48 +8960,32 @@ ], "location": { "end": { - "column": 4, - "line": 89 + "column": 137, + "line": 41 }, "start": { - "column": 10, - "line": 79 + "column": 43, + "line": 41 } } }, { - "id": "216", - "mutatorName": "EqualityOperator", - "replacement": "createGameDto.value.players.length > MIN_PLAYERS_IN_GAME", + "id": "271", + "mutatorName": "ConditionalExpression", + "replacement": "false", "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "static": false, "testsCompleted": 2, + "static": false, "killedBy": [ - "1" + "10" ], "coveredBy": [ - "0", - "1", - "14", - "15", - "16", - "17", - "18", - "19", + "10", + "11", "20", "21", "22", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", "75", "76", "77", @@ -9396,1833 +9000,2182 @@ ], "location": { "end": { - "column": 116, - "line": 22 + "column": 137, + "line": 41 }, "start": { - "column": 59, - "line": 22 + "column": 43, + "line": 41 } } - } - ], - "source": "import type { ComputedRef, Ref } from \"vue\";\n\nimport { MIN_PLAYERS_IN_GAME } from \"~/composables/api/game/constants/game.constants\";\nimport type { CreateGameDto } from \"~/composables/api/game/dto/create-game/create-game.dto\";\nimport { RoleNames, RoleSides } from \"~/composables/api/role/enums/role.enums\";\n\ntype UseCreateGameDtoValidation = {\n isMinimumPlayersReached: ComputedRef;\n areAllRolesSet: ComputedRef;\n doesContainOneVillagerSidedRole: ComputedRef;\n doesContainOneWerewolfSidedRole: ComputedRef;\n areAdditionalCardsSetForThiefIfPresent: ComputedRef;\n areAdditionalCardsSetForActorIfPresent: ComputedRef;\n arePlayerGroupsSetForPrejudicedManipulatorIfPresent: ComputedRef;\n canCreateGame: ComputedRef;\n gameCreationValidationErrors: ComputedRef;\n};\n\nfunction useCreateGameDtoValidation(createGameDto: Ref): UseCreateGameDtoValidation {\n const { t } = useI18n();\n\n const isMinimumPlayersReached = computed(() => createGameDto.value.players.length >= MIN_PLAYERS_IN_GAME);\n\n const areAllRolesSet = computed(() => createGameDto.value.players.every(player => player.role.name !== undefined));\n\n const doesContainOneVillagerSidedRole = computed(() => createGameDto.value.players.some(player => player.side.current === RoleSides.VILLAGERS));\n\n const doesContainOneWerewolfSidedRole = computed(() => createGameDto.value.players.some(player => player.side.current === RoleSides.WEREWOLVES));\n\n const areAdditionalCardsSetForThiefIfPresent = computed(() => {\n const isThiefPresent = createGameDto.value.players.some(player => player.role.name === RoleNames.THIEF);\n const areAdditionalCardsSetForThief = createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.THIEF) === true;\n if (isThiefPresent) {\n return areAdditionalCardsSetForThief;\n }\n return true;\n });\n\n const areAdditionalCardsSetForActorIfPresent = computed(() => {\n const isActorPresent = createGameDto.value.players.some(player => player.role.name === RoleNames.ACTOR);\n const areAdditionalCardsSetForActor = createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.ACTOR) === true;\n if (isActorPresent) {\n return areAdditionalCardsSetForActor;\n }\n return true;\n });\n\n const arePlayerGroupsSetForPrejudicedManipulatorIfPresent = computed(() => {\n const isPrejudicedManipulatorPresent = createGameDto.value.players.some(player => player.role.name === RoleNames.PREJUDICED_MANIPULATOR);\n const arePlayerGroupsSet = createGameDto.value.players.every(player => player.group);\n if (isPrejudicedManipulatorPresent) {\n return arePlayerGroupsSet;\n }\n return true;\n });\n\n const canCreateGame = computed(() => isMinimumPlayersReached.value &&\n areAllRolesSet.value &&\n doesContainOneVillagerSidedRole.value &&\n doesContainOneWerewolfSidedRole.value &&\n areAdditionalCardsSetForThiefIfPresent.value &&\n areAdditionalCardsSetForActorIfPresent.value &&\n arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value);\n\n const gameCreationValidationErrors = computed(() => {\n const errors: Record = {\n [t(\"composables.useCreateGameDtoValidation.minimumOfPlayersNotReached\")]: !isMinimumPlayersReached.value,\n [t(\"composables.useCreateGameDtoValidation.notAllRolesAreSet\")]: !areAllRolesSet.value,\n [t(\"composables.useCreateGameDtoValidation.noVillagerSidedRole\")]: !doesContainOneVillagerSidedRole.value,\n [t(\"composables.useCreateGameDtoValidation.noWerewolfSidedRole\")]: !doesContainOneWerewolfSidedRole.value,\n [t(\"composables.useCreateGameDtoValidation.thiefAdditionalCardsNotSet\")]: !areAdditionalCardsSetForThiefIfPresent.value,\n [t(\"composables.useCreateGameDtoValidation.actorAdditionalCardsNotSet\")]: !areAdditionalCardsSetForActorIfPresent.value,\n [t(\"composables.useCreateGameDtoValidation.prejudicedManipulatorGroupsNotSet\")]: !arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value,\n };\n\n return Object.keys(errors).filter((key: keyof typeof errors) => errors[key]);\n });\n\n return {\n isMinimumPlayersReached,\n areAllRolesSet,\n doesContainOneVillagerSidedRole,\n doesContainOneWerewolfSidedRole,\n areAdditionalCardsSetForThiefIfPresent,\n areAdditionalCardsSetForActorIfPresent,\n arePlayerGroupsSetForPrejudicedManipulatorIfPresent,\n canCreateGame,\n gameCreationValidationErrors,\n };\n}\n\nexport { useCreateGameDtoValidation };" - }, - "composables/api/game/useFetchRandomGameComposition.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "347", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(18,43): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "272", + "mutatorName": "EqualityOperator", + "replacement": "createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.ACTOR) !== true", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 2, "static": false, - "killedBy": [], + "killedBy": [ + "10" + ], "coveredBy": [ - "225" + "10", + "11", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 2, - "line": 27 + "column": 137, + "line": 41 }, "start": { - "column": 73, - "line": 18 + "column": 43, + "line": 41 } } }, { - "id": "348", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(21,84): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "273", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.additionalCards?.every(card => card.recipient === RoleNames.ACTOR)", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 2, "static": false, - "killedBy": [], + "killedBy": [ + "10" + ], "coveredBy": [ - "225" + "10", + "11", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 25 + "column": 128, + "line": 41 }, "start": { - "column": 149, - "line": 21 + "column": 43, + "line": 41 } } }, { - "id": "349", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/random-composition?stringifiedQuery\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"\"", - "status": "Killed", - "testsCompleted": 1, + "id": "274", + "mutatorName": "OptionalChaining", + "replacement": "createGameDto.value.additionalCards.some", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(41,43): error TS18048: 'createGameDto.value.additionalCards' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "225" - ], + "killedBy": [], "coveredBy": [ - "225" + "10", + "11", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 117, - "line": 24 + "column": 84, + "line": 41 }, "start": { - "column": 70, - "line": 24 + "column": 43, + "line": 41 } } }, { - "id": "350", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/random-composition?stringifiedQuery\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"/games/random-composition?stringifiedQuery\"", + "id": "275", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "225" + "10" ], "coveredBy": [ - "225" + "10", + "11" ], "location": { "end": { - "column": 136, - "line": 24 + "column": 127, + "line": 41 }, "start": { - "column": 119, - "line": 24 + "column": 85, + "line": 41 } } }, { - "id": "351", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(24,121): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", - "status": "CompileError", + "id": "276", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 4, "static": false, - "killedBy": [], + "killedBy": [ + "11" + ], "coveredBy": [ - "225" + "10", + "11" ], "location": { "end": { - "column": 134, - "line": 24 + "column": 127, + "line": 41 }, "start": { - "column": 129, - "line": 24 + "column": 93, + "line": 41 } } }, { - "id": "352", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(26,3): error TS2741: Property 'fetchRandomGameComposition' is missing in type '{}' but required in type 'UseFetchRandomGameComposition'.\n", - "status": "CompileError", + "id": "277", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 2, "static": false, - "killedBy": [], + "killedBy": [ + "10" + ], "coveredBy": [ - "225" + "10", + "11" ], "location": { "end": { - "column": 40, - "line": 26 + "column": 127, + "line": 41 }, "start": { - "column": 10, - "line": 26 - } + "column": 93, + "line": 41 + } } - } - ], - "source": "import { stringify } from \"qs\";\n\nimport type { CreateGamePlayerDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player.dto\";\nimport type { RoleNames } from \"~/composables/api/role/enums/role.enums\";\nimport { useWerewolvesAssistantApi } from \"~/composables/api/useWerewolvesAssistantApi\";\n\ntype GetRandomGameCompositionQuery = {\n players: { name: string }[];\n excludedRoles?: RoleNames[];\n};\n\ntype UseFetchRandomGameComposition = {\n fetchRandomGameComposition: (\n query: GetRandomGameCompositionQuery,\n ) => Promise>>;\n};\n\nfunction useFetchRandomGameComposition(): UseFetchRandomGameComposition {\n const { fetchWerewolvesAssistantApi } = useWerewolvesAssistantApi();\n\n async function fetchRandomGameComposition(query: GetRandomGameCompositionQuery): Promise>> {\n const stringifiedQuery = stringify(query);\n\n return fetchWerewolvesAssistantApi(`/games/random-composition?${stringifiedQuery}`, { method: \"GET\" });\n }\n return { fetchRandomGameComposition };\n}\n\nexport { useFetchRandomGameComposition };" - }, - "composables/api/role/useFetchRoles.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "353", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/role/useFetchRoles.ts(8,27): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "278", + "mutatorName": "EqualityOperator", + "replacement": "card.recipient !== RoleNames.ACTOR", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 4, "static": false, - "killedBy": [], + "killedBy": [ + "11" + ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "230", - "231", - "246", - "247", - "248" + "10", + "11" ], "location": { "end": { - "column": 2, - "line": 19 + "column": 127, + "line": 41 }, "start": { - "column": 41, - "line": 8 + "column": 93, + "line": 41 } } }, { - "id": "354", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/role/useFetchRoles.ts(11,32): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "279", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 2, "static": false, - "killedBy": [], + "killedBy": [ + "10" + ], "coveredBy": [ - "230", - "231" + "10", + "11", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 17 + "column": 137, + "line": 41 }, "start": { - "column": 82, - "line": 11 + "column": 133, + "line": 41 } } }, { - "id": "355", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/role/useFetchRoles.ts(11,32): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", - "status": "CompileError", + "id": "280", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "10" + ], "coveredBy": [ - "230", - "231" + "10", + "11", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 6, - "line": 14 + "column": 23, + "line": 42 }, "start": { "column": 9, - "line": 12 + "line": 42 } } }, { - "id": "356", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/roles\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"\"", + "id": "281", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "230" + "11" ], "coveredBy": [ - "230", - "231" + "10", + "11", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 64, - "line": 13 + "column": 23, + "line": 42 }, "start": { - "column": 56, - "line": 13 + "column": 9, + "line": 42 } } }, { - "id": "357", - "mutatorName": "ObjectLiteral", + "id": "282", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/roles\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"/roles\"", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "230" + "11" ], "coveredBy": [ - "230", - "231" + "10", + "11", + "21" ], "location": { "end": { - "column": 83, - "line": 13 + "column": 6, + "line": 44 }, "start": { - "column": 66, - "line": 13 + "column": 25, + "line": 42 } } }, { - "id": "358", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/api/role/useFetchRoles.ts(13,68): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", - "status": "CompileError", + "id": "283", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "10" + ], "coveredBy": [ - "230", - "231" + "10", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 81, - "line": 13 + "column": 16, + "line": 45 }, "start": { - "column": 76, - "line": 13 + "column": 12, + "line": 45 } } }, { - "id": "359", + "id": "284", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/role/useFetchRoles.ts(11,32): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(48,81): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'ComputedGetter'.\n Type 'void' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'WritableComputedOptions'.\n", "status": "CompileError", "static": false, "killedBy": [], "coveredBy": [ - "231" + "12", + "13", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 6, - "line": 16 + "column": 4, + "line": 55 }, "start": { - "column": 21, - "line": 14 + "column": 87, + "line": 48 } } }, { - "id": "360", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/api/role/useFetchRoles.ts(18,3): error TS2741: Property 'fetchRoles' is missing in type '{}' but required in type 'UseFetchRoles'.\n", - "status": "CompileError", - "static": false, - "killedBy": [], - "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "230", - "231", - "246", - "247", - "248" + "id": "285", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.every(player => player.role.name === RoleNames.PREJUDICED_MANIPULATOR)", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, + "static": false, + "killedBy": [ + "13" + ], + "coveredBy": [ + "12", + "13", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 24, - "line": 18 + "column": 141, + "line": 49 }, "start": { - "column": 10, - "line": 18 + "column": 44, + "line": 49 } } - } - ], - "source": "import type { Role } from \"~/composables/api/role/types/role.class\";\nimport { useWerewolvesAssistantApi } from \"~/composables/api/useWerewolvesAssistantApi\";\n\ntype UseFetchRoles = {\n fetchRoles: () => Promise> | null>;\n};\n\nfunction useFetchRoles(): UseFetchRoles {\n const { fetchWerewolvesAssistantApi } = useWerewolvesAssistantApi();\n\n async function fetchRoles(): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/roles`, { method: \"GET\" });\n } catch (error) {\n return null;\n }\n }\n return { fetchRoles };\n}\n\nexport { useFetchRoles };" - }, - "composables/api/role/useRoleName.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "361", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/role/useRoleName.ts(7,25): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "286", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, "static": false, - "killedBy": [], + "killedBy": [ + "13" + ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "254" + "12", + "13", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 2, - "line": 14 + "column": 140, + "line": 49 }, "start": { - "column": 37, - "line": 7 + "column": 77, + "line": 49 } } }, { - "id": "362", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/role/useRoleName.ts(10,51): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "287", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 4, "static": false, - "killedBy": [], + "killedBy": [ + "20" + ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "254" + "12", + "13", + "20", + "21", + "22", + "77", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 12 + "column": 140, + "line": 49 }, "start": { - "column": 58, - "line": 10 + "column": 87, + "line": 49 } } }, { - "id": "363", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", + "id": "288", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "122" + "13" ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "254" + "12", + "13", + "20", + "21", + "22", + "77", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 44, - "line": 11 + "column": 140, + "line": 49 }, "start": { - "column": 14, - "line": 11 + "column": 87, + "line": 49 } } }, { - "id": "364", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/api/role/useRoleName.ts(13,3): error TS2741: Property 'getRoleNameLabel' is missing in type '{}' but required in type 'UseRoleName'.\n", - "status": "CompileError", + "id": "289", + "mutatorName": "EqualityOperator", + "replacement": "player.role.name !== RoleNames.PREJUDICED_MANIPULATOR", + "statusReason": "expected false to be true // Object.is equality", + "status": "Killed", + "testsCompleted": 4, "static": false, - "killedBy": [], + "killedBy": [ + "20" + ], "coveredBy": [ - "122", - "123", - "124", - "125", - "126", - "127", - "128", - "129", - "254" + "12", + "13", + "20", + "21", + "22", + "77", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 30, - "line": 13 + "column": 140, + "line": 49 }, "start": { - "column": 10, - "line": 13 + "column": 87, + "line": 49 } } - } - ], - "source": "import type { RoleNames } from \"~/composables/api/role/enums/role.enums\";\n\ntype UseRoleName = {\n getRoleNameLabel: (roleName: RoleNames) => string;\n};\n\nfunction useRoleName(): UseRoleName {\n const { t } = useI18n();\n\n function getRoleNameLabel(roleName: RoleNames): string {\n return t(`shared.role.name.${roleName}`);\n }\n return { getRoleNameLabel };\n}\n\nexport { useRoleName };" - }, - "composables/api/useWerewolvesAssistantApi.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "366", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"application/json\",\n },\n \"onResponseError\": Any,\n },\n], but it was called with Object {}", + "id": "290", + "mutatorName": "MethodExpression", + "replacement": "createGameDto.value.players.some(player => player.group)", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 35, - "static": true, + "testsCompleted": 3, + "static": false, "killedBy": [ - "257" + "13" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257" + "12", + "13", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 19 + "column": 89, + "line": 50 }, "start": { - "column": 60, - "line": 15 + "column": 32, + "line": 50 } } }, { - "id": "367", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"application/json\",\n },\n \"onResponseError\": Any,\n },\n], but it was called with Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {},\n \"onResponseError\": [Function handleWerewolvesAssistantApiError],\n}", + "id": "291", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 35, - "static": true, + "testsCompleted": 2, + "static": false, "killedBy": [ - "257" + "12" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257" + "12", + "13", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 52, - "line": 17 + "column": 88, + "line": 50 }, "start": { - "column": 14, - "line": 17 + "column": 66, + "line": 50 } } }, { - "id": "368", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"application/json\",\n },\n \"onResponseError\": Any,\n },\n], but it was called with Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"\",\n },\n \"onResponseError\": [Function handleWerewolvesAssistantApiError],\n}", + "id": "292", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 35, - "static": true, + "testsCompleted": 4, + "static": false, "killedBy": [ - "257" + "20" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257" + "12", + "13", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 50, - "line": 17 + "column": 39, + "line": 51 }, "start": { - "column": 32, - "line": 17 + "column": 9, + "line": 51 } } }, { - "id": "369", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/api/useWerewolvesAssistantApi.ts(21,3): error TS2741: Property 'fetchWerewolvesAssistantApi' is missing in type '{}' but required in type 'UseWerewolvesAssistantApi'.\n", - "status": "CompileError", - "static": true, + "id": "293", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, + "static": false, + "killedBy": [ + "13" + ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257" + "12", + "13", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 41, - "line": 21 + "column": 39, + "line": 51 }, "start": { - "column": 10, - "line": 21 - } - } - }, - { - "id": "365", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/useWerewolvesAssistantApi.ts(10,39): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", - "static": true, - "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257" - ], - "location": { - "end": { - "column": 2, - "line": 22 - }, - "start": { - "column": 65, - "line": 10 + "column": 9, + "line": 51 } } - } - ], - "source": "import { createFetch } from \"ofetch\";\n\nimport { useWerewolvesAssistantApiError } from \"~/composables/api/error/useWerewolvesAssistantApiError\";\nimport { removeTrailingSlashes } from \"~/utils/url.utils\";\n\ntype UseWerewolvesAssistantApi = {\n fetchWerewolvesAssistantApi: typeof $fetch;\n};\n\nfunction useWerewolvesAssistantApi(): UseWerewolvesAssistantApi {\n const config = useRuntimeConfig();\n const { baseUrl } = config.public.werewolvesAssistantApi;\n const { handleWerewolvesAssistantApiError } = useWerewolvesAssistantApiError();\n\n const fetchWerewolvesAssistantApi = createFetch().create({\n baseURL: removeTrailingSlashes(baseUrl),\n headers: { \"Content-Type\": \"application/json\" },\n onResponseError: handleWerewolvesAssistantApiError,\n });\n\n return { fetchWerewolvesAssistantApi };\n}\n\nexport { useWerewolvesAssistantApi };" - }, - "composables/vue-prime/useVuePrimeToasts.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "370", + "id": "294", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(14,31): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 3, "static": false, - "killedBy": [], + "killedBy": [ + "13" + ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "160", - "161", - "162", - "163", - "164", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257" + "12", + "13", + "21" ], "location": { "end": { - "column": 2, - "line": 46 + "column": 6, + "line": 53 }, "start": { - "column": 49, - "line": 14 + "column": 41, + "line": 51 } } }, { - "id": "371", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "295", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "160" + "12" ], "coveredBy": [ - "160", - "161", - "162", - "163", - "164" + "12", + "20", + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 22 + "column": 16, + "line": 54 }, "start": { - "column": 57, - "line": 17 + "column": 12, + "line": 54 } } }, { - "id": "372", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"summary\": \"summary\",\n },\n], but it was called with Object {}", - "status": "Killed", - "testsCompleted": 1, + "id": "296", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(57,25): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Type 'undefined' is not assignable to type 'boolean'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => undefined' is not assignable to parameter of type 'WritableComputedOptions'.\n", + "status": "CompileError", "static": false, - "killedBy": [ - "160" - ], + "killedBy": [], "coveredBy": [ - "160", - "161", - "162", - "163", - "164" + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 6, - "line": 21 + "column": 62, + "line": 63 }, "start": { - "column": 15, - "line": 18 + "column": 43, + "line": 57 } } }, { - "id": "373", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "297", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "161" + "14" ], "coveredBy": [ - "161" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 26 + "column": 62, + "line": 63 }, "start": { - "column": 64, - "line": 24 + "column": 49, + "line": 57 } } }, { - "id": "374", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"success\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", + "id": "298", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected false to be true // Object.is equality", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 8, "static": false, "killedBy": [ - "161" + "20" ], "coveredBy": [ - "161" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 49, - "line": 25 + "column": 62, + "line": 63 }, "start": { - "column": 14, - "line": 25 + "column": 49, + "line": 57 } } }, { - "id": "375", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(25,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", - "status": "CompileError", + "id": "299", + "mutatorName": "LogicalOperator", + "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value && doesContainOneWerewolfSidedRole.value && areAdditionalCardsSetForThiefIfPresent.value && areAdditionalCardsSetForActorIfPresent.value || arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "14" + ], "coveredBy": [ - "161" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 35, - "line": 25 + "column": 62, + "line": 63 }, "start": { - "column": 26, - "line": 25 + "column": 49, + "line": 57 } } }, { - "id": "376", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "300", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "162" + "14" ], "coveredBy": [ - "162" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 30 + "column": 49, + "line": 62 }, "start": { - "column": 61, - "line": 28 + "column": 49, + "line": 57 } } }, { - "id": "377", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"info\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", + "id": "301", + "mutatorName": "LogicalOperator", + "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value && doesContainOneWerewolfSidedRole.value && areAdditionalCardsSetForThiefIfPresent.value || areAdditionalCardsSetForActorIfPresent.value", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "162" + "14" ], "coveredBy": [ - "162" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 46, - "line": 29 + "column": 49, + "line": 62 }, "start": { - "column": 14, - "line": 29 + "column": 49, + "line": 57 } } }, { - "id": "378", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(29,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", - "status": "CompileError", + "id": "302", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "14" + ], "coveredBy": [ - "162" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 32, - "line": 29 + "column": 49, + "line": 61 }, "start": { - "column": 26, - "line": 29 + "column": 49, + "line": 57 } } }, { - "id": "379", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "303", + "mutatorName": "LogicalOperator", + "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value && doesContainOneWerewolfSidedRole.value || areAdditionalCardsSetForThiefIfPresent.value", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "163" + "14" ], "coveredBy": [ - "163" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 34 + "column": 49, + "line": 61 }, "start": { - "column": 61, - "line": 32 + "column": 49, + "line": 57 } } }, { - "id": "380", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"warn\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", + "id": "304", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "163" + "14" ], "coveredBy": [ - "163" - ], - "location": { - "end": { - "column": 46, - "line": 33 - }, - "start": { - "column": 14, - "line": 33 - } - } - }, - { - "id": "381", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(33,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", - "status": "CompileError", - "static": false, - "killedBy": [], - "coveredBy": [ - "163" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 32, - "line": 33 + "column": 42, + "line": 60 }, "start": { - "column": 26, - "line": 33 + "column": 49, + "line": 57 } } }, { - "id": "382", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "305", + "mutatorName": "LogicalOperator", + "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value && doesContainOneVillagerSidedRole.value || doesContainOneWerewolfSidedRole.value", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "164" + "14" ], "coveredBy": [ - "164" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 38 + "column": 42, + "line": 60 }, "start": { - "column": 62, - "line": 36 + "column": 49, + "line": 57 } } }, { - "id": "383", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"error\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", + "id": "306", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "164" + "14" ], "coveredBy": [ - "164" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 47, - "line": 37 + "column": 42, + "line": 59 }, "start": { - "column": 14, - "line": 37 + "column": 49, + "line": 57 } } }, { - "id": "384", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(37,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", - "status": "CompileError", + "id": "307", + "mutatorName": "LogicalOperator", + "replacement": "isMinimumPlayersReached.value && areAllRolesSet.value || doesContainOneVillagerSidedRole.value", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "14" + ], "coveredBy": [ - "164" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 33, - "line": 37 + "column": 42, + "line": 59 }, "start": { - "column": 26, - "line": 37 + "column": 49, + "line": 57 } } }, { - "id": "385", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(39,3): error TS2739: Type '{}' is missing the following properties from type 'UseVuePrimeToasts': addToast, addSuccessToast, addInfoToast, addWarnToast, addErrorToast\n", - "status": "CompileError", + "id": "308", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected true to be false // Object.is equality", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "14" + ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "160", - "161", - "162", - "163", - "164", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 45 + "column": 25, + "line": 58 }, "start": { - "column": 10, - "line": 39 + "column": 49, + "line": 57 } } - } - ], - "source": "import type { ToastMessageOptions } from \"primevue/toast\";\nimport { useToast } from \"primevue/usetoast\";\n\nimport { DEFAULT_VUE_PRIME_TOAST_OPTIONS } from \"~/composables/vue-prime/constants/vue-prime.constants\";\n\ntype UseVuePrimeToasts = {\n addToast: (options: ToastMessageOptions) => void;\n addSuccessToast: (options: ToastMessageOptions) => void;\n addInfoToast: (options: ToastMessageOptions) => void;\n addWarnToast: (options: ToastMessageOptions) => void;\n addErrorToast: (options: ToastMessageOptions) => void;\n};\n\nfunction useVuePrimeToasts(): UseVuePrimeToasts {\n const toast = useToast();\n\n function addToast(options: ToastMessageOptions): void {\n toast.add({\n ...DEFAULT_VUE_PRIME_TOAST_OPTIONS,\n ...options,\n });\n }\n\n function addSuccessToast(options: ToastMessageOptions): void {\n addToast({ severity: \"success\", ...options });\n }\n\n function addInfoToast(options: ToastMessageOptions): void {\n addToast({ severity: \"info\", ...options });\n }\n\n function addWarnToast(options: ToastMessageOptions): void {\n addToast({ severity: \"warn\", ...options });\n }\n\n function addErrorToast(options: ToastMessageOptions): void {\n addToast({ severity: \"error\", ...options });\n }\n return {\n addToast,\n addSuccessToast,\n addInfoToast,\n addWarnToast,\n addErrorToast,\n };\n}\n\nexport { useVuePrimeToasts };" - }, - "pages/game/[id].vue": { - "language": "html", - "mutants": [ + }, { - "id": "386", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected false to be truthy", + "id": "309", + "mutatorName": "LogicalOperator", + "replacement": "isMinimumPlayersReached.value || areAllRolesSet.value", + "statusReason": "expected true to be false // Object.is equality", "status": "Killed", - "testsCompleted": 7, + "testsCompleted": 1, "static": false, "killedBy": [ - "136" + "14" ], "coveredBy": [ - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138" - ], - "location": { - "end": { - "column": 2, - "line": 62 - }, - "start": { - "column": 73, - "line": 54 - } - } - }, - { - "id": "387", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expected false to be truthy", - "status": "Killed", - "testsCompleted": 7, - "static": false, - "killedBy": [ - "136" - ], - "coveredBy": [ - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138" + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 59 + "column": 25, + "line": 58 }, "start": { - "column": 73, - "line": 55 + "column": 49, + "line": 57 } } - } - ], - "source": "\n\n" - }, - "pages/index.vue": { - "language": "html", - "mutants": [ + }, { - "id": "388", - "mutatorName": "ObjectLiteral", + "id": "310", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "The macro definePageMeta from Nuxt is breaking Stryker, so we ignore it.", - "status": "Ignored", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(65,59): error TS2769: No overload matches this call.\n Overload 1 of 2, '(getter: ComputedGetter, debugOptions?: DebuggerOptions | undefined): ComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'ComputedGetter'.\n Type 'void' is not assignable to type 'string[]'.\n Overload 2 of 2, '(options: WritableComputedOptions, debugOptions?: DebuggerOptions | undefined): WritableComputedRef', gave the following error.\n Argument of type '() => void' is not assignable to parameter of type 'WritableComputedOptions'.\n", + "status": "CompileError", "static": false, + "killedBy": [], + "coveredBy": [ + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" + ], "location": { "end": { - "column": 33, - "line": 59 + "column": 4, + "line": 77 }, "start": { - "column": 16, - "line": 59 + "column": 65, + "line": 65 } } }, { - "id": "389", - "mutatorName": "BooleanLiteral", - "replacement": "true", - "statusReason": "The macro definePageMeta from Nuxt is breaking Stryker, so we ignore it.", - "status": "Ignored", - "static": false, - "location": { - "end": { - "column": 31, - "line": 59 - }, - "start": { - "column": 26, - "line": 59 - } - } - } - ], - "source": "\n\n\n\n" - }, - "stores/game/create-game-dto/useCreateGameDtoStore.ts": { - "language": "typescript", - "mutants": [ - { - "id": "393", - "mutatorName": "BlockStatement", + "id": "311", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expected _CreateGameDto{ players: [], …(1) } to strictly equal _CreateGameDto{ …(2) }", + "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "116" + "21" ], "coveredBy": [ - "116" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 13 + "column": 6, + "line": 74 }, "start": { - "column": 70, - "line": 11 + "column": 45, + "line": 66 } } }, { - "id": "394", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ players: [], …(1) }", + "id": "312", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ '' ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "117" + "21" ], "coveredBy": [ - "117" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 17 + "column": 77, + "line": 67 }, "start": { - "column": 39, - "line": 15 + "column": 10, + "line": 67 } } }, { - "id": "395", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(16,48): error TS2345: Argument of type '{}' is not assignable to parameter of type 'CreateGameDto'.\n Property 'players' is missing in type '{}' but required in type 'CreateGameDto'.\n", - "status": "CompileError", + "id": "313", + "mutatorName": "BooleanLiteral", + "replacement": "isMinimumPlayersReached.value", + "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "21" + ], "coveredBy": [ - "117" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 63, - "line": 16 + "column": 111, + "line": 67 }, "start": { - "column": 48, - "line": 16 + "column": 81, + "line": 67 } } }, { - "id": "396", - "mutatorName": "ArrayDeclaration", - "replacement": "[\"Stryker was here\"]", - "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(16,60): error TS2322: Type 'string' is not assignable to type 'CreateGamePlayerDto'.\n", - "status": "CompileError", + "id": "314", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ '', …(2) ] to include 'composables.useCreateGameDtoValidatio…'", + "status": "Killed", + "testsCompleted": 2, "static": false, - "killedBy": [], + "killedBy": [ + "21" + ], "coveredBy": [ - "117" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 61, - "line": 16 + "column": 68, + "line": 68 }, "start": { - "column": 59, - "line": 16 + "column": 10, + "line": 68 } } }, { - "id": "397", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected _CreateGameDto{ players: [], …(1) } to strictly equal _CreateGameDto{ …(2) }", + "id": "315", + "mutatorName": "BooleanLiteral", + "replacement": "areAllRolesSet.value", + "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 2, "static": false, "killedBy": [ - "118" + "21" ], "coveredBy": [ - "118" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 21 + "column": 93, + "line": 68 }, "start": { "column": 72, - "line": 19 + "line": 68 } } }, { - "id": "398", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected [] to strictly equal [ _CreateGamePlayerDto{ …(4) }, …(2) ]", + "id": "316", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ '' ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 3, "static": false, "killedBy": [ - "119" + "21" ], "coveredBy": [ - "119" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 25 + "column": 70, + "line": 69 }, "start": { - "column": 76, - "line": 23 + "column": 10, + "line": 69 } } }, { - "id": "399", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(24,5): error TS2322: Type 'undefined[]' is not assignable to type '{ name: string; role: { name?: RoleNames | undefined; }; side: { original?: RoleSides | undefined; current?: RoleSides | undefined; }; group?: string | undefined; }[]'.\n Type 'undefined' is not assignable to type '{ name: string; role: { name?: RoleNames | undefined; }; side: { original?: RoleSides | undefined; current?: RoleSides | undefined; }; group?: string | undefined; }'.\n", - "status": "CompileError", + "id": "317", + "mutatorName": "BooleanLiteral", + "replacement": "doesContainOneVillagerSidedRole.value", + "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", + "status": "Killed", + "testsCompleted": 3, "static": false, - "killedBy": [], + "killedBy": [ + "21" + ], "coveredBy": [ - "119" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 91, - "line": 24 + "column": 112, + "line": 69 }, "start": { - "column": 47, - "line": 24 + "column": 74, + "line": 69 } } }, { - "id": "400", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "318", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ '' ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 4, - "line": 32 + "column": 70, + "line": 70 }, "start": { - "column": 68, - "line": 27 + "column": 10, + "line": 70 } } }, { - "id": "401", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "319", + "mutatorName": "BooleanLiteral", + "replacement": "doesContainOneWerewolfSidedRole.value", + "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 4, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 99, - "line": 28 + "column": 112, + "line": 70 }, "start": { - "column": 63, - "line": 28 + "column": 74, + "line": 70 } } }, { - "id": "402", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "320", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ …(3) ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 5, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 99, - "line": 28 + "column": 77, + "line": 71 }, "start": { - "column": 73, - "line": 28 + "column": 10, + "line": 71 } } }, { - "id": "403", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "321", + "mutatorName": "BooleanLiteral", + "replacement": "areAdditionalCardsSetForThiefIfPresent.value", + "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 5, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 99, - "line": 28 + "column": 126, + "line": 71 }, "start": { - "column": 73, - "line": 28 + "column": 81, + "line": 71 } } }, { - "id": "404", - "mutatorName": "EqualityOperator", - "replacement": "player.name !== playerName", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "322", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ …(3) ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 6, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120", - "121" - ], - "location": { - "end": { - "column": 99, - "line": 28 - }, - "start": { - "column": 73, - "line": 28 + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" + ], + "location": { + "end": { + "column": 77, + "line": 72 + }, + "start": { + "column": 10, + "line": 72 } } }, { - "id": "405", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "323", + "mutatorName": "BooleanLiteral", + "replacement": "areAdditionalCardsSetForActorIfPresent.value", + "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 2, + "testsCompleted": 6, "static": false, "killedBy": [ - "121" + "21" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 27, - "line": 29 + "column": 126, + "line": 72 }, "start": { - "column": 9, - "line": 29 + "column": 81, + "line": 72 } } }, { - "id": "406", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "324", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expected [ …(3) ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 7, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 27, - "line": 29 + "column": 84, + "line": 73 }, "start": { - "column": 9, - "line": 29 + "column": 10, + "line": 73 } } }, { - "id": "407", - "mutatorName": "EqualityOperator", - "replacement": "playerIndex === -1", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "325", + "mutatorName": "BooleanLiteral", + "replacement": "arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value", + "statusReason": "expected [ …(2) ] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 7, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 27, - "line": 29 + "column": 146, + "line": 73 }, "start": { - "column": 9, - "line": 29 + "column": 88, + "line": 73 } } }, { - "id": "408", - "mutatorName": "UnaryOperator", - "replacement": "+1", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "326", + "mutatorName": "MethodExpression", + "replacement": "Object.keys(errors)", + "statusReason": "expected [ …(7) ] to strictly equal []", "status": "Killed", - "testsCompleted": 1, + "testsCompleted": 8, "static": false, "killedBy": [ - "120" + "22" ], "coveredBy": [ - "120", - "121" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 27, - "line": 29 + "column": 81, + "line": 76 }, "start": { - "column": 25, - "line": 29 + "column": 12, + "line": 76 } } }, { - "id": "409", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "id": "327", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected [] to include 'composables.useCreateGameDtoValidatio…'", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "120" + "21" ], "coveredBy": [ - "120" + "21", + "22", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85" ], "location": { "end": { - "column": 6, - "line": 31 + "column": 80, + "line": 76 }, "start": { - "column": 29, - "line": 29 + "column": 39, + "line": 76 } } }, { - "id": "391", + "id": "328", "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(9,65): error TS2345: Argument of type '{}' is not assignable to parameter of type 'CreateGameDto'.\n Property 'players' is missing in type '{}' but required in type 'CreateGameDto'.\n", + "statusReason": "composables/api/game/useCreateGameDtoValidation.ts(79,3): error TS2740: Type '{}' is missing the following properties from type 'UseCreateGameDtoValidation': isMinimumPlayersReached, areAllRolesSet, doesContainOneVillagerSidedRole, doesContainOneWerewolfSidedRole, and 5 more.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", "56", "57", "58", @@ -11243,713 +11196,864 @@ "82", "83", "84", - "85", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "155", - "156", - "157", - "158", - "159", - "206", - "207", - "208", - "209", - "241", - "242", - "243" + "85" + ], + "location": { + "end": { + "column": 4, + "line": 89 + }, + "start": { + "column": 10, + "line": 79 + } + } + } + ], + "source": "import type { ComputedRef, Ref } from \"vue\";\n\nimport { MIN_PLAYERS_IN_GAME } from \"~/composables/api/game/constants/game.constants\";\nimport type { CreateGameDto } from \"~/composables/api/game/dto/create-game/create-game.dto\";\nimport { RoleNames, RoleSides } from \"~/composables/api/role/enums/role.enums\";\n\ntype UseCreateGameDtoValidation = {\n isMinimumPlayersReached: ComputedRef;\n areAllRolesSet: ComputedRef;\n doesContainOneVillagerSidedRole: ComputedRef;\n doesContainOneWerewolfSidedRole: ComputedRef;\n areAdditionalCardsSetForThiefIfPresent: ComputedRef;\n areAdditionalCardsSetForActorIfPresent: ComputedRef;\n arePlayerGroupsSetForPrejudicedManipulatorIfPresent: ComputedRef;\n canCreateGame: ComputedRef;\n gameCreationValidationErrors: ComputedRef;\n};\n\nfunction useCreateGameDtoValidation(createGameDto: Ref): UseCreateGameDtoValidation {\n const { t } = useI18n();\n\n const isMinimumPlayersReached = computed(() => createGameDto.value.players.length >= MIN_PLAYERS_IN_GAME);\n\n const areAllRolesSet = computed(() => createGameDto.value.players.every(player => player.role.name !== undefined));\n\n const doesContainOneVillagerSidedRole = computed(() => createGameDto.value.players.some(player => player.side.current === RoleSides.VILLAGERS));\n\n const doesContainOneWerewolfSidedRole = computed(() => createGameDto.value.players.some(player => player.side.current === RoleSides.WEREWOLVES));\n\n const areAdditionalCardsSetForThiefIfPresent = computed(() => {\n const isThiefPresent = createGameDto.value.players.some(player => player.role.name === RoleNames.THIEF);\n const areAdditionalCardsSetForThief = createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.THIEF) === true;\n if (isThiefPresent) {\n return areAdditionalCardsSetForThief;\n }\n return true;\n });\n\n const areAdditionalCardsSetForActorIfPresent = computed(() => {\n const isActorPresent = createGameDto.value.players.some(player => player.role.name === RoleNames.ACTOR);\n const areAdditionalCardsSetForActor = createGameDto.value.additionalCards?.some(card => card.recipient === RoleNames.ACTOR) === true;\n if (isActorPresent) {\n return areAdditionalCardsSetForActor;\n }\n return true;\n });\n\n const arePlayerGroupsSetForPrejudicedManipulatorIfPresent = computed(() => {\n const isPrejudicedManipulatorPresent = createGameDto.value.players.some(player => player.role.name === RoleNames.PREJUDICED_MANIPULATOR);\n const arePlayerGroupsSet = createGameDto.value.players.every(player => player.group);\n if (isPrejudicedManipulatorPresent) {\n return arePlayerGroupsSet;\n }\n return true;\n });\n\n const canCreateGame = computed(() => isMinimumPlayersReached.value &&\n areAllRolesSet.value &&\n doesContainOneVillagerSidedRole.value &&\n doesContainOneWerewolfSidedRole.value &&\n areAdditionalCardsSetForThiefIfPresent.value &&\n areAdditionalCardsSetForActorIfPresent.value &&\n arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value);\n\n const gameCreationValidationErrors = computed(() => {\n const errors: Record = {\n [t(\"composables.useCreateGameDtoValidation.minimumOfPlayersNotReached\")]: !isMinimumPlayersReached.value,\n [t(\"composables.useCreateGameDtoValidation.notAllRolesAreSet\")]: !areAllRolesSet.value,\n [t(\"composables.useCreateGameDtoValidation.noVillagerSidedRole\")]: !doesContainOneVillagerSidedRole.value,\n [t(\"composables.useCreateGameDtoValidation.noWerewolfSidedRole\")]: !doesContainOneWerewolfSidedRole.value,\n [t(\"composables.useCreateGameDtoValidation.thiefAdditionalCardsNotSet\")]: !areAdditionalCardsSetForThiefIfPresent.value,\n [t(\"composables.useCreateGameDtoValidation.actorAdditionalCardsNotSet\")]: !areAdditionalCardsSetForActorIfPresent.value,\n [t(\"composables.useCreateGameDtoValidation.prejudicedManipulatorGroupsNotSet\")]: !arePlayerGroupsSetForPrejudicedManipulatorIfPresent.value,\n };\n\n return Object.keys(errors).filter((key: keyof typeof errors) => errors[key]);\n });\n\n return {\n isMinimumPlayersReached,\n areAllRolesSet,\n doesContainOneVillagerSidedRole,\n doesContainOneWerewolfSidedRole,\n areAdditionalCardsSetForThiefIfPresent,\n areAdditionalCardsSetForActorIfPresent,\n arePlayerGroupsSetForPrejudicedManipulatorIfPresent,\n canCreateGame,\n gameCreationValidationErrors,\n };\n}\n\nexport { useCreateGameDtoValidation };" + }, + "composables/api/game/useFetchGames.ts": { + "language": "typescript", + "mutants": [ + { + "id": "330", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(16,60): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "142", + "143" + ], + "location": { + "end": { + "column": 4, + "line": 25 + }, + "start": { + "column": 108, + "line": 16 + } + } + }, + { + "id": "331", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(16,60): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "142", + "143" + ], + "location": { + "end": { + "column": 6, + "line": 22 + }, + "start": { + "column": 9, + "line": 17 + } + } + }, + { + "id": "332", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games\",\n Object {\n \"body\": \"{\"players\":[]}\",\n \"method\": \"POST\",\n },\n], but it was called with \"\"", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "142" + ], + "coveredBy": [ + "142", + "143" + ], + "location": { + "end": { + "column": 62, + "line": 18 + }, + "start": { + "column": 54, + "line": 18 + } + } + }, + { + "id": "333", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games\",\n Object {\n \"body\": \"{\"players\":[]}\",\n \"method\": \"POST\",\n },\n], but it was called with \"/games\"", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "142" + ], + "coveredBy": [ + "142", + "143" + ], + "location": { + "end": { + "column": 8, + "line": 21 + }, + "start": { + "column": 64, + "line": 18 + } + } + }, + { + "id": "334", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "composables/api/game/useFetchGames.ts(19,9): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "142", + "143" + ], + "location": { + "end": { + "column": 23, + "line": 19 + }, + "start": { + "column": 17, + "line": 19 + } + } + }, + { + "id": "335", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(16,60): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "143" + ], + "location": { + "end": { + "column": 6, + "line": 24 + }, + "start": { + "column": 21, + "line": 22 + } + } + }, + { + "id": "336", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(27,43): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "144", + "145" + ], + "location": { + "end": { + "column": 4, + "line": 33 + }, + "start": { + "column": 91, + "line": 27 + } + } + }, + { + "id": "337", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(27,43): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "144", + "145" + ], + "location": { + "end": { + "column": 6, + "line": 30 + }, + "start": { + "column": 9, + "line": 28 + } + } + }, + { + "id": "338", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"\"", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "144" + ], + "coveredBy": [ + "144", + "145" + ], + "location": { + "end": { + "column": 72, + "line": 29 + }, + "start": { + "column": 54, + "line": 29 + } + } + }, + { + "id": "339", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"/games/game-id\"", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "144" + ], + "coveredBy": [ + "144", + "145" + ], + "location": { + "end": { + "column": 91, + "line": 29 + }, + "start": { + "column": 74, + "line": 29 + } + } + }, + { + "id": "340", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "composables/api/game/useFetchGames.ts(29,76): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "144", + "145" + ], + "location": { + "end": { + "column": 89, + "line": 29 + }, + "start": { + "column": 84, + "line": 29 + } + } + }, + { + "id": "341", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(27,43): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "145" + ], + "location": { + "end": { + "column": 6, + "line": 32 + }, + "start": { + "column": 21, + "line": 30 + } + } + }, + { + "id": "342", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(35,46): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "146", + "147" + ], + "location": { + "end": { + "column": 4, + "line": 41 + }, + "start": { + "column": 94, + "line": 35 + } + } + }, + { + "id": "343", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(35,46): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "146", + "147" + ], + "location": { + "end": { + "column": 6, + "line": 38 + }, + "start": { + "column": 9, + "line": 36 + } + } + }, + { + "id": "344", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"DELETE\",\n },\n], but it was called with \"\"", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "146" + ], + "coveredBy": [ + "146", + "147" ], "location": { "end": { - "column": 80, - "line": 9 + "column": 72, + "line": 37 }, "start": { - "column": 65, - "line": 9 + "column": 54, + "line": 37 } } }, { - "id": "392", - "mutatorName": "ArrayDeclaration", - "replacement": "[\"Stryker was here\"]", - "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(9,77): error TS2322: Type 'string' is not assignable to type 'CreateGamePlayerDto'.\n", + "id": "345", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"DELETE\",\n },\n], but it was called with \"/games/game-id\"", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "146" + ], + "coveredBy": [ + "146", + "147" + ], + "location": { + "end": { + "column": 94, + "line": 37 + }, + "start": { + "column": 74, + "line": 37 + } + } + }, + { + "id": "346", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "composables/api/game/useFetchGames.ts(37,76): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "155", - "156", - "157", - "158", - "159", - "206", - "207", - "208", - "209", - "241", - "242", - "243" + "146", + "147" ], "location": { "end": { - "column": 78, - "line": 9 + "column": 92, + "line": 37 }, "start": { - "column": 76, - "line": 9 + "column": 84, + "line": 37 } } }, { - "id": "390", + "id": "347", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "tests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(42,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(53,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(69,28): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(78,28): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(95,30): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(112,41): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(135,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(140,30): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(154,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(89,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(103,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(50,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(63,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(80,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(103,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(117,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(144,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(153,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayersParty.nuxt.spec.ts(36,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayerCard/GameLobbyPlayerCard.nuxt.spec.ts(55,33): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(18,31): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(32,26): error TS2339: Property 'setCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(34,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(49,26): error TS2339: Property 'resetCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(51,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(61,26): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(63,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(75,26): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(77,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(96,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(98,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(108,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(111,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(113,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\n", + "statusReason": "composables/api/game/useFetchGames.ts(35,46): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "155", - "156", - "157", - "158", - "159", - "206", - "207", - "208", - "209", - "241", - "242", - "243" + "147" ], "location": { "end": { - "column": 2, - "line": 41 + "column": 6, + "line": 40 }, "start": { - "column": 75, - "line": 8 + "column": 21, + "line": 38 } } }, { - "id": "410", - "mutatorName": "ObjectLiteral", + "id": "348", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "tests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(42,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(53,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(69,28): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(78,28): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(95,30): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(112,41): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(135,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(140,30): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(154,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(89,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(103,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(50,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(63,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(80,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(103,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(117,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(144,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(153,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayersParty.nuxt.spec.ts(36,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayerCard/GameLobbyPlayerCard.nuxt.spec.ts(55,33): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(18,31): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(32,26): error TS2339: Property 'setCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(34,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(49,26): error TS2339: Property 'resetCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(51,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(61,26): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(63,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(75,26): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(77,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(96,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(98,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(108,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(111,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(113,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", + "statusReason": "composables/api/game/useFetchGames.ts(43,82): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "115", - "116", - "117", - "118", - "119", - "120", - "121", - "155", - "156", - "157", - "158", - "159", - "206", - "207", - "208", - "209", - "241", - "242", - "243" + "148", + "149" ], "location": { "end": { "column": 4, - "line": 40 + "line": 52 }, "start": { - "column": 10, - "line": 33 + "column": 130, + "line": 43 } } - } - ], - "source": "import { defineStore } from \"pinia\";\nimport { ref } from \"vue\";\n\nimport { CreateGamePlayerDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player.dto\";\nimport { CreateGameDto } from \"~/composables/api/game/dto/create-game/create-game.dto\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useCreateGameDtoStore = defineStore(StoreIds.CREATE_GAME_DTO, () => {\n const createGameDto = ref(CreateGameDto.create({ players: [] }));\n\n function setCreateGameDto(createGameDtoValue: CreateGameDto): void {\n createGameDto.value = CreateGameDto.create(createGameDtoValue);\n }\n\n function resetCreateGameDto(): void {\n createGameDto.value = CreateGameDto.create({ players: [] });\n }\n\n function addPlayerToCreateGameDto(player: CreateGamePlayerDto): void {\n createGameDto.value.players.push(CreateGamePlayerDto.create(player));\n }\n\n function setPlayersToCreateGameDto(players: CreateGamePlayerDto[]): void {\n createGameDto.value.players = players.map(player => CreateGamePlayerDto.create(player));\n }\n\n function removePlayerFromCreateGameDto(playerName: string): void {\n const playerIndex = createGameDto.value.players.findIndex(player => player.name === playerName);\n if (playerIndex !== -1) {\n createGameDto.value.players = createGameDto.value.players.toSpliced(playerIndex, 1);\n }\n }\n return {\n createGameDto,\n setCreateGameDto,\n resetCreateGameDto,\n addPlayerToCreateGameDto,\n setPlayersToCreateGameDto,\n removePlayerFromCreateGameDto,\n };\n});\n\nexport { useCreateGameDtoStore };" - }, - "stores/role/useRolesStore.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "496", + "id": "349", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "tests/unit/specs/app.nuxt.spec.ts(29,23): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(49,20): error TS2339: Property 'roles' does not exist on type 'Store'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(79,20): error TS2339: Property 'roles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(28,23): error TS2339: Property 'roles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(29,23): error TS2339: Property 'fetchingRoleStatus' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(35,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(48,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(50,25): error TS2339: Property 'roles' does not exist on type 'Store'.\n", + "statusReason": "composables/api/game/useFetchGames.ts(43,82): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", "status": "CompileError", "static": false, "killedBy": [], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "215", - "216", - "217", - "246", - "247", - "248" + "148", + "149" ], "location": { "end": { - "column": 2, - "line": 25 + "column": 6, + "line": 49 }, "start": { - "column": 57, - "line": 9 + "column": 9, + "line": 44 } } }, { - "id": "497", + "id": "350", "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/role/useRolesStore.ts(12,58): error TS2345: Argument of type '\"\"' is not assignable to parameter of type 'AsyncDataRequestStatus'.\n", - "status": "CompileError", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id/play\",\n Object {\n \"body\": \"{}\",\n \"method\": \"POST\",\n },\n], but it was called with \"\"", + "status": "Killed", + "testsCompleted": 1, "static": false, - "killedBy": [], + "killedBy": [ + "148" + ], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "215", - "216", - "217", - "246", - "247", - "248" + "148", + "149" ], "location": { "end": { - "column": 64, - "line": 12 + "column": 77, + "line": 45 }, "start": { - "column": 58, - "line": 12 + "column": 54, + "line": 45 } } }, { - "id": "498", - "mutatorName": "BlockStatement", + "id": "351", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id/play\",\n Object {\n \"body\": \"{}\",\n \"method\": \"POST\",\n },\n], but it was called with \"/games/game-id/play\"", "status": "Killed", "testsCompleted": 1, "static": false, "killedBy": [ - "216" + "148" ], "coveredBy": [ - "216", - "217" + "148", + "149" ], "location": { "end": { - "column": 4, - "line": 19 + "column": 8, + "line": 48 }, "start": { - "column": 52, - "line": 15 + "column": 79, + "line": 45 } } }, { - "id": "499", + "id": "352", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "stores/role/useRolesStore.ts(16,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "statusReason": "composables/api/game/useFetchGames.ts(46,9): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", "status": "CompileError", "static": false, "killedBy": [], "coveredBy": [ - "216", - "217" + "148", + "149" ], "location": { "end": { - "column": 41, - "line": 16 + "column": 23, + "line": 46 }, "start": { - "column": 32, - "line": 16 + "column": 17, + "line": 46 } } }, { - "id": "500", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/role/useRolesStore.ts(18,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "id": "353", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(43,82): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", "status": "CompileError", "static": false, "killedBy": [], "coveredBy": [ - "216", - "217" + "149" + ], + "location": { + "end": { + "column": 6, + "line": 51 + }, + "start": { + "column": 21, + "line": 49 + } + } + }, + { + "id": "329", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(13,27): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, + "coveredBy": [ + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "142", + "143", + "144", + "145", + "146", + "147", + "148", + "149", + "208", + "244", + "245", + "246", + "252" ], "location": { "end": { + "column": 2, + "line": 59 + }, + "start": { "column": 41, - "line": 18 + "line": 13 + } + } + }, + { + "id": "354", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchGames.ts(53,3): error TS2739: Type '{}' is missing the following properties from type 'UseFetchGames': createGame, getGame, cancelGame, makeGamePlay\n", + "status": "CompileError", + "static": true, + "coveredBy": [ + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "142", + "143", + "144", + "145", + "146", + "147", + "148", + "149", + "208", + "244", + "245", + "246", + "252" + ], + "location": { + "end": { + "column": 4, + "line": 58 }, "start": { - "column": 32, + "column": 10, + "line": 53 + } + } + } + ], + "source": "import type { CreateGameDto } from \"~/composables/api/game/dto/create-game/create-game.dto\";\nimport type { MakeGamePlayDto } from \"~/composables/api/game/dto/make-game-play/make-game-play.dto\";\nimport type { Game } from \"~/composables/api/game/types/game.class\";\nimport { useWerewolvesAssistantApi } from \"~/composables/api/useWerewolvesAssistantApi\";\n\ntype UseFetchGames = {\n createGame: (createGameDto: CreateGameDto) => Promise> | null>;\n getGame: (gameId: string) => Promise> | null>;\n cancelGame: (gameId: string) => Promise> | null>;\n makeGamePlay: (gameId: string, makeGamePlayDto: MakeGamePlayDto) => Promise> | null>;\n};\n\nfunction useFetchGames(): UseFetchGames {\n const { fetchWerewolvesAssistantApi } = useWerewolvesAssistantApi();\n\n async function createGame(createGameDto: CreateGameDto): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games`, {\n method: \"POST\",\n body: JSON.stringify(createGameDto),\n });\n } catch (error) {\n return null;\n }\n }\n\n async function getGame(gameId: string): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games/${gameId}`, { method: \"GET\" });\n } catch (error) {\n return null;\n }\n }\n\n async function cancelGame(gameId: string): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games/${gameId}`, { method: \"DELETE\" });\n } catch (error) {\n return null;\n }\n }\n\n async function makeGamePlay(gameId: string, makeGamePlayDto: MakeGamePlayDto): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games/${gameId}/play`, {\n method: \"POST\",\n body: JSON.stringify(makeGamePlayDto),\n });\n } catch (error) {\n return null;\n }\n }\n return {\n createGame,\n getGame,\n cancelGame,\n makeGamePlay,\n };\n}\n\nexport { useFetchGames };" + }, + "composables/api/game/useFetchRandomGameComposition.ts": { + "language": "typescript", + "mutants": [ + { + "id": "355", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(18,43): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "228" + ], + "location": { + "end": { + "column": 2, + "line": 27 + }, + "start": { + "column": 73, "line": 18 } } }, { - "id": "501", - "mutatorName": "ObjectLiteral", + "id": "356", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "tests/unit/specs/app.nuxt.spec.ts(29,23): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(49,20): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(79,20): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(28,23): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(29,23): error TS2339: Property 'fetchingRoleStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(35,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(48,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(50,25): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", + "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(21,84): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", "static": false, "killedBy": [], "coveredBy": [ - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "215", - "216", - "217", - "246", - "247", - "248" + "228" ], "location": { "end": { "column": 4, - "line": 24 + "line": 25 }, "start": { - "column": 10, - "line": 20 + "column": 149, + "line": 21 } } - } - ], - "source": "import type { AsyncDataRequestStatus } from \"#app/composables/asyncData\";\nimport { defineStore } from \"pinia\";\nimport { ref } from \"vue\";\n\nimport type { Role } from \"~/composables/api/role/types/role.class\";\nimport { useFetchRoles } from \"~/composables/api/role/useFetchRoles\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useRolesStore = defineStore(StoreIds.ROLES, () => {\n const { fetchRoles } = useFetchRoles();\n\n const fetchingRoleStatus = ref(\"idle\");\n const roles = ref(null);\n\n async function fetchAndSetRoles(): Promise {\n fetchingRoleStatus.value = \"pending\";\n roles.value = await fetchRoles();\n fetchingRoleStatus.value = \"success\";\n }\n return {\n roles,\n fetchingRoleStatus,\n fetchAndSetRoles,\n };\n});\n\nexport { useRolesStore };" - }, - "utils/url.utils.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "503", - "mutatorName": "Regex", - "replacement": "/\\/+/u", - "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "id": "357", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/random-composition?stringifiedQuery\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"\"", "status": "Killed", "testsCompleted": 1, - "static": true, + "static": false, "killedBy": [ - "196" + "228" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "196", - "197", - "198", - "199", - "200", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257", - "265" + "228" ], "location": { "end": { - "column": 29, - "line": 2 + "column": 117, + "line": 24 }, "start": { - "column": 22, - "line": 2 + "column": 70, + "line": 24 } } }, { - "id": "504", - "mutatorName": "Regex", - "replacement": "/\\/$/u", - "statusReason": "expected 'https://example.com//' to be 'https://example.com' // Object.is equality", + "id": "358", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/random-composition?stringifiedQuery\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"/games/random-composition?stringifiedQuery\"", "status": "Killed", - "testsCompleted": 41, - "static": true, + "testsCompleted": 1, + "static": false, "killedBy": [ - "265" + "228" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "196", - "197", - "198", - "199", - "200", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257", - "265" + "228" ], "location": { "end": { - "column": 29, - "line": 2 + "column": 136, + "line": 24 }, "start": { - "column": 22, - "line": 2 + "column": 119, + "line": 24 } } }, { - "id": "505", + "id": "359", "mutatorName": "StringLiteral", - "replacement": "\"Stryker was here!\"", - "statusReason": "expected 'https://example.comStryker was here!' to be 'https://example.com' // Object.is equality", - "status": "Killed", - "testsCompleted": 41, - "static": true, - "killedBy": [ - "265" - ], + "replacement": "\"\"", + "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(24,121): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "196", - "197", - "198", - "199", - "200", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257", - "265" + "228" ], "location": { "end": { - "column": 33, - "line": 2 + "column": 134, + "line": 24 }, "start": { - "column": 31, - "line": 2 + "column": 129, + "line": 24 } } }, { - "id": "502", + "id": "360", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "composables/api/game/useFetchRandomGameComposition.ts(26,3): error TS2741: Property 'fetchRandomGameComposition' is missing in type '{}' but required in type 'UseFetchRandomGameComposition'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "228" + ], + "location": { + "end": { + "column": 40, + "line": 26 + }, + "start": { + "column": 10, + "line": 26 + } + } + } + ], + "source": "import { stringify } from \"qs\";\n\nimport type { CreateGamePlayerDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player.dto\";\nimport type { RoleNames } from \"~/composables/api/role/enums/role.enums\";\nimport { useWerewolvesAssistantApi } from \"~/composables/api/useWerewolvesAssistantApi\";\n\ntype GetRandomGameCompositionQuery = {\n players: { name: string }[];\n excludedRoles?: RoleNames[];\n};\n\ntype UseFetchRandomGameComposition = {\n fetchRandomGameComposition: (\n query: GetRandomGameCompositionQuery,\n ) => Promise>>;\n};\n\nfunction useFetchRandomGameComposition(): UseFetchRandomGameComposition {\n const { fetchWerewolvesAssistantApi } = useWerewolvesAssistantApi();\n\n async function fetchRandomGameComposition(query: GetRandomGameCompositionQuery): Promise>> {\n const stringifiedQuery = stringify(query);\n\n return fetchWerewolvesAssistantApi(`/games/random-composition?${stringifiedQuery}`, { method: \"GET\" });\n }\n return { fetchRandomGameComposition };\n}\n\nexport { useFetchRandomGameComposition };" + }, + "composables/api/role/useFetchRoles.ts": { + "language": "typescript", + "mutants": [ + { + "id": "361", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "utils/url.utils.ts(1,46): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "statusReason": "composables/api/role/useFetchRoles.ts(8,27): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", - "static": true, + "static": false, + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", "86", "87", "88", @@ -11960,442 +12064,347 @@ "93", "94", "95", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "196", - "197", - "198", - "199", - "200", - "205", - "241", - "242", - "243", - "246", - "247", - "248", - "257", - "265" + "233", + "234", + "251", + "252", + "253" ], "location": { "end": { "column": 2, - "line": 3 + "line": 19 }, "start": { - "column": 53, - "line": 1 + "column": 41, + "line": 8 } } - } - ], - "source": "function removeTrailingSlashes(url: string): string {\n return url.replace(/\\/+$/u, \"\");\n}\n\nexport { removeTrailingSlashes };" - }, - "components/layouts/default/NavBar/ParametersMenu/ParametersMenu.vue": { - "language": "html", - "mutants": [ + }, { - "id": "2", - "mutatorName": "BooleanLiteral", - "replacement": "!game.value._id", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "id": "362", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/role/useFetchRoles.ts(11,32): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", "static": false, - "testsCompleted": 4, - "killedBy": [ - "69" - ], + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "233", + "234" ], "location": { "end": { - "column": 28, - "line": 37 + "column": 4, + "line": 17 }, "start": { - "column": 12, - "line": 37 + "column": 82, + "line": 11 } } }, { - "id": "1", - "mutatorName": "ObjectLiteral", + "id": "363", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "statusReason": "composables/api/role/useFetchRoles.ts(11,32): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 4, - "killedBy": [ - "69" - ], + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "233", + "234" ], "location": { "end": { - "column": 2, - "line": 49 + "column": 6, + "line": 14 }, "start": { - "column": 49, - "line": 36 + "column": 9, + "line": 12 } } }, { - "id": "3", - "mutatorName": "BooleanLiteral", - "replacement": "game.value._id", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "364", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/roles\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"\"", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 4, "killedBy": [ - "69" + "233" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "233", + "234" ], "location": { "end": { - "column": 28, - "line": 37 + "column": 64, + "line": 13 }, "start": { - "column": 13, - "line": 37 + "column": 56, + "line": 13 } } }, { - "id": "0", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "Snapshot `Parameters Menu Component > should match snapshot when rendered. 1` mismatched", + "id": "365", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/roles\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"/roles\"", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "66" + "233" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "233", + "234" ], "location": { "end": { - "column": 3, - "line": 49 + "column": 83, + "line": 13 }, "start": { - "column": 42, - "line": 36 + "column": 66, + "line": 13 } } }, { - "id": "4", + "id": "366", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", - "status": "Killed", + "statusReason": "composables/api/role/useFetchRoles.ts(13,68): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 5, - "killedBy": [ - "70" - ], + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "233", + "234" ], "location": { "end": { - "column": 44, - "line": 38 + "column": 81, + "line": 13 }, "start": { - "column": 12, - "line": 38 + "column": 76, + "line": 13 } } }, { - "id": "5", - "mutatorName": "ArrayDeclaration", - "replacement": "[]", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "id": "367", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/role/useFetchRoles.ts(11,32): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 4, - "killedBy": [ - "69" - ], + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "234" ], "location": { "end": { - "column": 4, - "line": 48 + "column": 6, + "line": 16 }, "start": { - "column": 10, - "line": 39 + "column": 21, + "line": 14 } } }, { - "id": "6", + "id": "368", "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "statusReason": "composables/api/role/useFetchRoles.ts(18,3): error TS2741: Property 'fetchRoles' is missing in type '{}' but required in type 'UseFetchRoles'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 4, - "killedBy": [ - "69" - ], + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "233", + "234", + "251", + "252", + "253" ], "location": { "end": { - "column": 6, - "line": 47 + "column": 24, + "line": 18 }, "start": { - "column": 5, - "line": 40 + "column": 10, + "line": 18 } } - }, + } + ], + "source": "import type { Role } from \"~/composables/api/role/types/role.class\";\nimport { useWerewolvesAssistantApi } from \"~/composables/api/useWerewolvesAssistantApi\";\n\ntype UseFetchRoles = {\n fetchRoles: () => Promise> | null>;\n};\n\nfunction useFetchRoles(): UseFetchRoles {\n const { fetchWerewolvesAssistantApi } = useWerewolvesAssistantApi();\n\n async function fetchRoles(): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/roles`, { method: \"GET\" });\n } catch (error) {\n return null;\n }\n }\n return { fetchRoles };\n}\n\nexport { useFetchRoles };" + }, + "composables/api/role/useRoleName.ts": { + "language": "typescript", + "mutants": [ { - "id": "7", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", - "static": false, - "testsCompleted": 4, - "killedBy": [ - "69" - ], - "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "id": "369", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/role/useRoleName.ts(7,25): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129", + "259" ], "location": { "end": { - "column": 54, - "line": 41 + "column": 2, + "line": 14 }, "start": { - "column": 16, - "line": 41 + "column": 37, + "line": 7 } } }, { - "id": "8", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", - "status": "Killed", + "id": "370", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/role/useRoleName.ts(10,51): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", "static": false, - "testsCompleted": 5, - "killedBy": [ - "70" - ], + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129", + "259" ], "location": { "end": { - "column": 36, - "line": 42 + "column": 4, + "line": 12 }, "start": { - "column": 13, - "line": 42 + "column": 58, + "line": 10 } } }, { - "id": "9", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "371", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "Snapshot `About Available Role Description Component > should match snapshot when rendered. 1` mismatched", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 4, "killedBy": [ - "69" + "122" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129", + "259" ], "location": { "end": { - "column": 48, - "line": 43 + "column": 44, + "line": 11 }, "start": { - "column": 17, - "line": 43 + "column": 14, + "line": 11 } } }, { - "id": "10", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", - "status": "Killed", + "id": "372", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "composables/api/role/useRoleName.ts(13,3): error TS2741: Property 'getRoleNameLabel' is missing in type '{}' but required in type 'UseRoleName'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 5, - "killedBy": [ - "70" - ], + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "122", + "123", + "124", + "125", + "126", + "127", + "128", + "129", + "259" ], "location": { "end": { - "column": 48, - "line": 43 + "column": 30, + "line": 13 }, "start": { - "column": 17, - "line": 43 + "column": 10, + "line": 13 } } - }, + } + ], + "source": "import type { RoleNames } from \"~/composables/api/role/enums/role.enums\";\n\ntype UseRoleName = {\n getRoleNameLabel: (roleName: RoleNames) => string;\n};\n\nfunction useRoleName(): UseRoleName {\n const { t } = useI18n();\n\n function getRoleNameLabel(roleName: RoleNames): string {\n return t(`shared.role.name.${roleName}`);\n }\n return { getRoleNameLabel };\n}\n\nexport { useRoleName };" + }, + "composables/api/useWerewolvesAssistantApi.ts": { + "language": "typescript", + "mutants": [ { - "id": "11", - "mutatorName": "EqualityOperator", - "replacement": "game.value.status === \"playing\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "374", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"application/json\",\n },\n \"onResponseError\": Any,\n },\n], but it was called with Object {}", "status": "Killed", - "static": false, - "testsCompleted": 4, + "testsCompleted": 35, + "static": true, "killedBy": [ - "69" + "264" ], "coveredBy": [ "66", @@ -12407,30 +12416,58 @@ "72", "73", "74", - "205", - "247" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { - "column": 48, - "line": 43 + "column": 4, + "line": 19 }, "start": { - "column": 17, - "line": 43 + "column": 60, + "line": 15 } } }, { - "id": "12", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "375", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"application/json\",\n },\n \"onResponseError\": Any,\n },\n], but it was called with Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {},\n \"onResponseError\": [Function handleWerewolvesAssistantApiError],\n}", "status": "Killed", - "static": false, - "testsCompleted": 4, + "testsCompleted": 35, + "static": true, "killedBy": [ - "69" + "264" ], "coveredBy": [ "66", @@ -12442,56 +12479,58 @@ "72", "73", "74", - "205", - "247" - ], - "location": { - "end": { - "column": 48, - "line": 43 - }, - "start": { - "column": 39, - "line": 43 - } - } - }, - { - "id": "13", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", - "static": false, - "testsCompleted": 1, - "killedBy": [ - "69" - ], - "coveredBy": [ - "69", - "73" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { - "column": 8, - "line": 46 + "column": 52, + "line": 17 }, "start": { - "column": 28, - "line": 44 + "column": 14, + "line": 17 } } }, { - "id": "14", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "Snapshot `Parameters Menu Component > should match snapshot when rendered. 1` mismatched", + "id": "376", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"application/json\",\n },\n \"onResponseError\": Any,\n },\n], but it was called with Object {\n \"baseURL\": \"http://127.0.0.1\",\n \"headers\": Object {\n \"Content-Type\": \"\",\n },\n \"onResponseError\": [Function handleWerewolvesAssistantApiError],\n}", "status": "Killed", - "static": false, - "testsCompleted": 1, + "testsCompleted": 35, + "static": true, "killedBy": [ - "66" + "264" ], "coveredBy": [ "66", @@ -12503,31 +12542,55 @@ "72", "73", "74", - "205", - "247" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { - "column": 2, - "line": 61 + "column": 50, + "line": 17 }, "start": { - "column": 50, - "line": 51 + "column": 32, + "line": 17 } } }, { - "id": "15", - "mutatorName": "ArrayDeclaration", - "replacement": "[]", - "statusReason": "Snapshot `Parameters Menu Component > should match snapshot when rendered. 1` mismatched", - "status": "Killed", - "static": false, - "testsCompleted": 1, - "killedBy": [ - "66" - ], + "id": "373", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/useWerewolvesAssistantApi.ts(10,39): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": true, "coveredBy": [ "66", "67", @@ -12538,31 +12601,55 @@ "72", "73", "74", - "205", - "247" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { "column": 2, - "line": 61 + "line": 22 }, "start": { - "column": 56, - "line": 51 + "column": 65, + "line": 10 } } }, { - "id": "16", + "id": "377", "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expected [ { visible: false, …(2) }, {} ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", - "status": "Killed", - "static": false, - "testsCompleted": 5, - "killedBy": [ - "70" - ], + "statusReason": "composables/api/useWerewolvesAssistantApi.ts(21,3): error TS2741: Property 'fetchWerewolvesAssistantApi' is missing in type '{}' but required in type 'UseWerewolvesAssistantApi'.\n", + "status": "CompileError", + "static": true, "coveredBy": [ "66", "67", @@ -12573,799 +12660,686 @@ "72", "73", "74", - "205", - "247" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { - "column": 4, - "line": 60 + "column": 41, + "line": 21 }, "start": { - "column": 3, - "line": 53 + "column": 10, + "line": 21 } } - }, + } + ], + "source": "import { createFetch } from \"ofetch\";\n\nimport { useWerewolvesAssistantApiError } from \"~/composables/api/error/useWerewolvesAssistantApiError\";\nimport { removeTrailingSlashes } from \"~/utils/url.utils\";\n\ntype UseWerewolvesAssistantApi = {\n fetchWerewolvesAssistantApi: typeof $fetch;\n};\n\nfunction useWerewolvesAssistantApi(): UseWerewolvesAssistantApi {\n const config = useRuntimeConfig();\n const { baseUrl } = config.public.werewolvesAssistantApi;\n const { handleWerewolvesAssistantApiError } = useWerewolvesAssistantApiError();\n\n const fetchWerewolvesAssistantApi = createFetch().create({\n baseURL: removeTrailingSlashes(baseUrl),\n headers: { \"Content-Type\": \"application/json\" },\n onResponseError: handleWerewolvesAssistantApiError,\n });\n\n return { fetchWerewolvesAssistantApi };\n}\n\nexport { useWerewolvesAssistantApi };" + }, + "composables/vue-prime/useVuePrimeToasts.ts": { + "language": "typescript", + "mutants": [ { - "id": "17", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ { visible: false, …(2) }, …(1) ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", + "id": "379", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 5, "killedBy": [ - "70" + "163" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "163", + "164", + "165", + "166", + "167" ], "location": { "end": { - "column": 52, - "line": 54 + "column": 4, + "line": 22 }, "start": { - "column": 14, - "line": 54 + "column": 57, + "line": 17 } } }, { - "id": "18", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", + "id": "380", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"summary\": \"summary\",\n },\n], but it was called with Object {}", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 5, "killedBy": [ - "70" + "163" ], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "163", + "164", + "165", + "166", + "167" ], "location": { "end": { - "column": 27, - "line": 55 + "column": 6, + "line": 21 }, "start": { - "column": 11, - "line": 55 + "column": 15, + "line": 18 } } }, { - "id": "19", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "expected [ { visible: false, …(2) }, { …(4) } ] to strictly equal [ { visible: false, …(2) }, { …(4) } ]", + "id": "381", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 5, "killedBy": [ - "70" - ], - "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "205", - "247" + "164" + ], + "coveredBy": [ + "164" ], "location": { "end": { - "column": 57, - "line": 56 + "column": 4, + "line": 26 }, "start": { - "column": 19, - "line": 56 + "column": 64, + "line": 24 } } }, { - "id": "20", - "mutatorName": "BlockStatement", + "id": "382", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"success\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "74" + "164" ], "coveredBy": [ - "74" + "164" ], "location": { "end": { - "column": 6, - "line": 59 + "column": 49, + "line": 25 }, "start": { - "column": 21, - "line": 57 + "column": 14, + "line": 25 } } }, { - "id": "21", + "id": "383", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/\",\n], but it was called with \"\"", - "status": "Killed", + "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(25,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "74" - ], + "killedBy": [], "coveredBy": [ - "74" + "164" ], "location": { "end": { - "column": 26, - "line": 58 + "column": 35, + "line": 25 }, "start": { - "column": 23, - "line": 58 + "column": 26, + "line": 25 } } }, { - "id": "22", + "id": "384", "mutatorName": "BlockStatement", "replacement": "{}", "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "67" + "165" ], "coveredBy": [ - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74" + "165" ], "location": { "end": { - "column": 2, - "line": 70 + "column": 4, + "line": 30 }, "start": { - "column": 56, - "line": 65 + "column": 61, + "line": 28 } } }, { - "id": "23", - "mutatorName": "BooleanLiteral", - "replacement": "parametersMenu.value", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "385", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"info\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "67" + "165" ], "coveredBy": [ - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74" + "165" ], "location": { "end": { - "column": 28, - "line": 66 + "column": 46, + "line": 29 }, "start": { - "column": 7, - "line": 66 + "column": 14, + "line": 29 } } }, { - "id": "24", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "id": "386", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(29,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "67" - ], + "killedBy": [], "coveredBy": [ - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74" + "165" ], "location": { "end": { - "column": 28, - "line": 66 + "column": 32, + "line": 29 }, "start": { - "column": 7, - "line": 66 + "column": 26, + "line": 29 } } }, { - "id": "25", - "mutatorName": "ConditionalExpression", - "replacement": "false", + "id": "387", + "mutatorName": "BlockStatement", + "replacement": "{}", "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 2, "killedBy": [ - "68" + "166" ], "coveredBy": [ - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74" + "166" ], "location": { "end": { - "column": 28, - "line": 66 + "column": 4, + "line": 34 }, "start": { - "column": 7, - "line": 66 + "column": 61, + "line": 32 } } }, { - "id": "26", - "mutatorName": "BlockStatement", + "id": "388", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"warn\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "68" + "166" ], "coveredBy": [ - "68" + "166" ], "location": { "end": { - "column": 4, - "line": 68 + "column": 46, + "line": 33 }, "start": { - "column": 30, - "line": 66 + "column": 14, + "line": 33 } } }, { - "id": "27", + "id": "389", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"Parameters Menu is not initialized\",\n], but it was called with \"\"", - "status": "Killed", + "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(33,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "68" - ], + "killedBy": [], "coveredBy": [ - "68" + "166" ], "location": { "end": { - "column": 59, - "line": 67 + "column": 32, + "line": 33 }, "start": { - "column": 23, - "line": 67 + "column": 26, + "line": 33 } } }, { - "id": "28", + "id": "390", "mutatorName": "BlockStatement", "replacement": "{}", "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "69" + "167" ], "coveredBy": [ - "69", - "73" + "167" ], "location": { "end": { - "column": 2, - "line": 75 + "column": 4, + "line": 38 }, "start": { - "column": 29, - "line": 72 + "column": 62, + "line": 36 } } }, { - "id": "29", + "id": "391", "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.ParametersMenu.gameCanceled\",\n },\n], but it was called with Object {}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"closable\": true,\n \"detail\": \"detail\",\n \"life\": 4000,\n \"severity\": \"error\",\n \"summary\": \"summary\",\n },\n], but it was called with Object {\n \"closable\": true,\n \"life\": 4000,\n}", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "69" + "167" ], "coveredBy": [ - "69", - "73" + "167" ], "location": { "end": { - "column": 75, - "line": 74 + "column": 47, + "line": 37 }, "start": { - "column": 19, - "line": 74 + "column": 14, + "line": 37 } } }, { - "id": "30", + "id": "392", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.ParametersMenu.gameCanceled\",\n },\n], but it was called with Object {\n \"summary\": \"\",\n}", - "status": "Killed", + "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(37,16): error TS2322: Type '\"\"' is not assignable to type '\"success\" | \"info\" | \"warn\" | \"error\" | \"secondary\" | \"contrast\" | undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "69" - ], + "killedBy": [], "coveredBy": [ - "69", - "73" + "167" ], "location": { "end": { - "column": 72, - "line": 74 + "column": 33, + "line": 37 }, - "start": { - "column": 32, - "line": 74 + "start": { + "column": 26, + "line": 37 } } - } - ], - "source": "\n\n" - }, - "composables/api/game/dto/create-game/create-game.dto.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "205", - "mutatorName": "ArrayDeclaration", - "replacement": "[\"Stryker was here\"]", - "statusReason": "composables/api/game/dto/create-game/create-game.dto.ts(10,44): error TS2322: Type 'string' is not assignable to type 'CreateGamePlayerDto'.\n", + "id": "378", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(14,31): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", - "static": true, + "static": false, "coveredBy": [ - "22", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "115", - "116", - "117", - "118", - "119", - "120", - "121", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", "139", "140", - "155", - "156", - "157", - "158", - "159", - "206", - "207", + "141", + "163", + "164", + "165", + "166", + "167", "208", - "209", - "241", - "242", - "243", - "250" + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { - "column": 45, - "line": 10 + "column": 2, + "line": 46 }, "start": { - "column": 43, - "line": 10 + "column": 49, + "line": 14 } } }, { - "id": "206", - "mutatorName": "BlockStatement", + "id": "393", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "composables/api/game/dto/create-game/create-game.dto.ts(16,55): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "statusReason": "composables/vue-prime/useVuePrimeToasts.ts(39,3): error TS2739: Type '{}' is missing the following properties from type 'UseVuePrimeToasts': addToast, addSuccessToast, addInfoToast, addWarnToast, addErrorToast\n", "status": "CompileError", - "static": true, + "static": false, "coveredBy": [ - "22", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "96", - "97", - "98", - "99", - "100", - "101", - "102", - "103", - "104", - "105", - "115", - "116", - "117", - "118", - "119", - "120", - "121", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", "139", "140", - "155", - "156", - "157", - "158", - "159", - "206", - "207", + "141", + "163", + "164", + "165", + "166", + "167", "208", - "209", - "241", - "242", - "243", - "250" + "244", + "245", + "246", + "251", + "252", + "253", + "264" ], "location": { "end": { "column": 4, - "line": 18 + "line": 45 }, "start": { - "column": 69, - "line": 16 + "column": 10, + "line": 39 } } } ], - "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\nimport { CreateGameAdditionalCardDto } from \"~/composables/api/game/dto/create-game/create-game-additional-card/create-game-additional-card.dto\";\nimport { CreateGamePlayerDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player.dto\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGameDto {\n @Type(() => CreateGamePlayerDto)\n @Expose()\n public players: CreateGamePlayerDto[] = [];\n\n @Type(() => CreateGameAdditionalCardDto)\n @Expose()\n public additionalCards?: CreateGameAdditionalCardDto[];\n\n public static create(createGameDto: CreateGameDto): CreateGameDto {\n return plainToInstance(CreateGameDto, createGameDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGameDto };" + "source": "import type { ToastMessageOptions } from \"primevue/toast\";\nimport { useToast } from \"primevue/usetoast\";\n\nimport { DEFAULT_VUE_PRIME_TOAST_OPTIONS } from \"~/composables/vue-prime/constants/vue-prime.constants\";\n\ntype UseVuePrimeToasts = {\n addToast: (options: ToastMessageOptions) => void;\n addSuccessToast: (options: ToastMessageOptions) => void;\n addInfoToast: (options: ToastMessageOptions) => void;\n addWarnToast: (options: ToastMessageOptions) => void;\n addErrorToast: (options: ToastMessageOptions) => void;\n};\n\nfunction useVuePrimeToasts(): UseVuePrimeToasts {\n const toast = useToast();\n\n function addToast(options: ToastMessageOptions): void {\n toast.add({\n ...DEFAULT_VUE_PRIME_TOAST_OPTIONS,\n ...options,\n });\n }\n\n function addSuccessToast(options: ToastMessageOptions): void {\n addToast({ severity: \"success\", ...options });\n }\n\n function addInfoToast(options: ToastMessageOptions): void {\n addToast({ severity: \"info\", ...options });\n }\n\n function addWarnToast(options: ToastMessageOptions): void {\n addToast({ severity: \"warn\", ...options });\n }\n\n function addErrorToast(options: ToastMessageOptions): void {\n addToast({ severity: \"error\", ...options });\n }\n return {\n addToast,\n addSuccessToast,\n addInfoToast,\n addWarnToast,\n addErrorToast,\n };\n}\n\nexport { useVuePrimeToasts };" }, - "composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto.ts": { - "language": "typescript", + "pages/game/[id].vue": { + "language": "html", "mutants": [ { - "id": "207", + "id": "394", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto.ts(14,71): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "statusReason": "expected false to be truthy", + "status": "Killed", + "testsCompleted": 7, "static": false, + "killedBy": [ + "139" + ], "coveredBy": [ - "26", - "27", - "29", - "30", - "31" + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141" ], "location": { "end": { - "column": 4, - "line": 16 + "column": 2, + "line": 62 }, - "start": { - "column": 93, - "line": 14 + "start": { + "column": 73, + "line": 54 } } - } - ], - "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { WitchPotion } from \"~/composables/api/game/types/game-play/game-play.types\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass MakeGamePlayTargetDto {\n @Expose()\n public playerId: string;\n\n @Expose()\n public drankPotion?: WitchPotion;\n\n public static create(makeGamePlayTargetDto: MakeGamePlayTargetDto): MakeGamePlayTargetDto {\n return plainToInstance(MakeGamePlayTargetDto, makeGamePlayTargetDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { MakeGamePlayTargetDto };" - }, - "composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "208", - "mutatorName": "BlockStatement", + "id": "395", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto.ts(12,67): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "statusReason": "expected false to be truthy", + "status": "Killed", + "testsCompleted": 7, "static": false, + "killedBy": [ + "139" + ], "coveredBy": [ - "32", - "33", - "35", - "36", - "37" + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141" ], "location": { "end": { "column": 4, - "line": 14 + "line": 59 }, "start": { - "column": 87, - "line": 12 + "column": 73, + "line": 55 } } } ], - "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass MakeGamePlayVoteDto {\n @Expose()\n public sourceId: string;\n\n @Expose()\n public targetId: string;\n\n public static create(makeGamePlayVoteDto: MakeGamePlayVoteDto): MakeGamePlayVoteDto {\n return plainToInstance(MakeGamePlayVoteDto, makeGamePlayVoteDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { MakeGamePlayVoteDto };" + "source": "\n\n" }, - "composables/api/game/types/game.class.ts": { - "language": "typescript", + "pages/index.vue": { + "language": "html", "mutants": [ { - "id": "210", - "mutatorName": "BlockStatement", + "id": "396", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "composables/api/game/types/game.class.ts(34,37): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "statusReason": "The macro definePageMeta from Nuxt is breaking Stryker, so we ignore it.", + "status": "Ignored", "static": false, - "coveredBy": [ - "69", - "71", - "72", - "73", - "81", - "82", - "148", - "150", - "152", - "154", - "251" - ], "location": { "end": { - "column": 4, - "line": 36 + "column": 33, + "line": 59 }, "start": { - "column": 42, - "line": 34 + "column": 16, + "line": 59 } } - } - ], - "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { GamePhase, GameStatus } from \"~/composables/api/game/types/game.types\";\nimport { Player } from \"~/composables/api/game/types/players/player.class\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass Game {\n @Expose()\n public _id: string;\n\n @Expose()\n public turn: number;\n\n @Expose()\n public phase: GamePhase;\n\n @Expose()\n public tick: number;\n\n @Expose()\n public status: GameStatus;\n\n @Type(() => Player)\n @Expose()\n public players: Player[];\n\n @Expose()\n public createdAt: Date;\n\n @Expose()\n public updatedAt: Date;\n\n public static create(game: Game): Game {\n return plainToInstance(Game, game, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { Game };" - }, - "composables/api/game/dto/make-game-play/make-game-play.dto.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "209", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/dto/make-game-play/make-game-play.dto.ts(26,59): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "397", + "mutatorName": "BooleanLiteral", + "replacement": "true", + "statusReason": "The macro definePageMeta from Nuxt is breaking Stryker, so we ignore it.", + "status": "Ignored", "static": false, - "coveredBy": [ - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "145", - "146", - "153", - "154" - ], "location": { "end": { - "column": 4, - "line": 28 + "column": 31, + "line": 59 }, "start": { - "column": 75, - "line": 26 + "column": 26, + "line": 59 } } } ], - "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\nimport { MakeGamePlayTargetDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto\";\nimport { MakeGamePlayVoteDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto\";\nimport { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass MakeGamePlayDto {\n @Type(() => MakeGamePlayTargetDto)\n @Expose()\n public targets?: MakeGamePlayTargetDto[];\n\n @Type(() => MakeGamePlayVoteDto)\n @Expose()\n public votes?: MakeGamePlayVoteDto[];\n\n @Expose()\n public doesJudgeRequestAnotherVote?: boolean;\n\n @Expose()\n public chosenCardId?: string;\n\n @Expose()\n public chosenSide?: RoleSides;\n\n public static create(makeGamePlayDto: MakeGamePlayDto): MakeGamePlayDto {\n return plainToInstance(MakeGamePlayDto, makeGamePlayDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { MakeGamePlayDto };" + "source": "\n\n\n\n" }, - "composables/api/game/dto/create-game/create-game-player/create-game-player-side.dto.ts": { + "stores/game/create-game-dto/useCreateGameDtoStore.ts": { "language": "typescript", "mutants": [ { - "id": "203", + "id": "398", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/game/dto/create-game/create-game-player/create-game-player-side.dto.ts(13,75): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "statusReason": "tests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(42,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(53,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(69,28): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(78,28): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(95,30): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(112,41): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(135,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(140,30): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(154,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(89,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(103,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(50,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(63,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(80,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(103,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(117,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(144,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(153,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayersParty.nuxt.spec.ts(36,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayerCard/GameLobbyPlayerCard.nuxt.spec.ts(55,33): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(18,31): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(32,26): error TS2339: Property 'setCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(34,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(49,26): error TS2339: Property 'resetCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(51,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(61,26): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(63,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(75,26): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(77,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(96,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(98,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(108,26): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(111,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(113,33): error TS2339: Property 'createGameDto' does not exist on type 'Store'.\n", "status": "CompileError", - "static": true, + "static": false, + "killedBy": [], "coveredBy": [ + "41", + "42", "43", "44", "45", + "46", "47", "48", "49", "50", + "51", "52", "53", + "54", + "55", + "56", + "57", "58", + "59", "60", "61", "62", "63", "64", "65", + "75", + "76", + "77", + "78", + "79", "80", "81", "82", "83", "84", "85", + "96", + "97", + "98", + "99", + "100", + "101", + "102", + "103", "104", + "105", + "115", "116", "117", "118", @@ -13373,58 +13347,85 @@ "120", "121", "158", + "159", + "160", + "161", + "162", "209", - "226", - "250" + "210", + "211", + "212", + "244", + "245", + "246" ], "location": { "end": { - "column": 4, - "line": 15 + "column": 2, + "line": 41 }, "start": { - "column": 99, - "line": 13 + "column": 75, + "line": 8 } } - } - ], - "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGamePlayerSideDto {\n @Expose()\n public original?: RoleSides;\n\n @Expose()\n public current?: RoleSides;\n\n public static create(createGamePlayerSideDto: CreateGamePlayerSideDto): CreateGamePlayerSideDto {\n return plainToInstance(CreateGamePlayerSideDto, createGamePlayerSideDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGamePlayerSideDto };" - }, - "composables/api/game/dto/create-game/create-game-player/create-game-player-role.dto.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "202", - "mutatorName": "BlockStatement", + "id": "399", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "composables/api/game/dto/create-game/create-game-player/create-game-player-role.dto.ts(10,75): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(9,65): error TS2345: Argument of type '{}' is not assignable to parameter of type 'CreateGameDto'.\n Property 'players' is missing in type '{}' but required in type 'CreateGameDto'.\n", "status": "CompileError", - "static": true, + "static": false, + "killedBy": [], "coveredBy": [ + "41", + "42", "43", "44", "45", + "46", "47", "48", "49", "50", + "51", "52", "53", + "54", + "55", + "56", + "57", "58", + "59", "60", "61", "62", "63", "64", "65", + "75", + "76", + "77", + "78", + "79", "80", "81", "82", "83", "84", "85", + "96", + "97", + "98", + "99", + "100", + "101", + "102", + "103", "104", + "105", + "115", "116", "117", "118", @@ -13432,59 +13433,85 @@ "120", "121", "158", + "159", + "160", + "161", + "162", "209", - "226", - "250" + "210", + "211", + "212", + "244", + "245", + "246" ], "location": { "end": { - "column": 4, - "line": 12 + "column": 80, + "line": 9 }, "start": { - "column": 99, - "line": 10 + "column": 65, + "line": 9 } } - } - ], - "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { RoleNames } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGamePlayerRoleDto {\n @Expose()\n public name?: RoleNames;\n\n public static create(createGamePlayerRoleDto: CreateGamePlayerRoleDto): CreateGamePlayerRoleDto {\n return plainToInstance(CreateGamePlayerRoleDto, createGamePlayerRoleDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGamePlayerRoleDto };" - }, - "composables/api/game/dto/create-game/create-game-player/create-game-player.dto.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "204", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/dto/create-game/create-game-player/create-game-player.dto.ts(22,67): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "id": "400", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(9,77): error TS2322: Type 'string' is not assignable to type 'CreateGamePlayerDto'.\n", "status": "CompileError", - "static": true, + "static": false, + "killedBy": [], "coveredBy": [ + "41", + "42", "43", "44", "45", + "46", "47", "48", "49", "50", + "51", "52", "53", + "54", + "55", + "56", + "57", "58", + "59", "60", "61", "62", "63", "64", "65", + "75", + "76", + "77", + "78", + "79", "80", "81", "82", "83", "84", "85", + "96", + "97", + "98", + "99", + "100", + "101", + "102", + "103", "104", "105", + "115", "116", "117", "118", @@ -13492,940 +13519,1152 @@ "120", "121", "158", + "159", + "160", + "161", + "162", "209", - "226", - "250" + "210", + "211", + "212", + "244", + "245", + "246" ], "location": { "end": { - "column": 4, - "line": 24 + "column": 78, + "line": 9 }, "start": { - "column": 87, - "line": 22 + "column": 76, + "line": 9 } } - } - ], - "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\nimport { CreateGamePlayerRoleDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player-role.dto\";\nimport { CreateGamePlayerSideDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player-side.dto\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass CreateGamePlayerDto {\n @Expose()\n public name: string;\n\n @Type(() => CreateGamePlayerRoleDto)\n @Expose()\n public role: CreateGamePlayerRoleDto;\n\n @Type(() => CreateGamePlayerSideDto)\n @Expose()\n public side: CreateGamePlayerSideDto;\n\n @Expose()\n public group?: string;\n\n public static create(createGamePlayerDto: CreateGamePlayerDto): CreateGamePlayerDto {\n return plainToInstance(CreateGamePlayerDto, createGamePlayerDto, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { CreateGamePlayerDto };" - }, - "composables/api/game/useFetchGames.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "322", + "id": "401", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(16,60): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "statusReason": "expected _CreateGameDto{ players: [], …(1) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "116" + ], "coveredBy": [ - "139", - "140" + "116" ], "location": { "end": { "column": 4, - "line": 25 + "line": 13 }, "start": { - "column": 108, - "line": 16 + "column": 70, + "line": 11 } } }, { - "id": "323", + "id": "402", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(16,60): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", - "status": "CompileError", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ players: [], …(1) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "117" + ], "coveredBy": [ - "139", - "140" + "117" ], "location": { "end": { - "column": 6, - "line": 22 + "column": 4, + "line": 17 }, "start": { - "column": 9, - "line": 17 + "column": 39, + "line": 15 } } }, { - "id": "321", - "mutatorName": "BlockStatement", + "id": "403", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(13,27): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(16,48): error TS2345: Argument of type '{}' is not assignable to parameter of type 'CreateGameDto'.\n Property 'players' is missing in type '{}' but required in type 'CreateGameDto'.\n", "status": "CompileError", - "static": true, + "static": false, + "killedBy": [], "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "205", - "241", - "242", - "243", - "247" + "117" ], "location": { "end": { - "column": 2, - "line": 59 + "column": 63, + "line": 16 }, "start": { - "column": 41, - "line": 13 + "column": 48, + "line": 16 } } }, { - "id": "326", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/api/game/useFetchGames.ts(19,9): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", + "id": "404", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(16,60): error TS2322: Type 'string' is not assignable to type 'CreateGamePlayerDto'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "139", - "140" + "117" ], "location": { "end": { - "column": 23, - "line": 19 + "column": 61, + "line": 16 }, "start": { - "column": 17, + "column": 59, + "line": 16 + } + } + }, + { + "id": "405", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected _CreateGameDto{ players: [], …(1) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "118" + ], + "coveredBy": [ + "118" + ], + "location": { + "end": { + "column": 4, + "line": 21 + }, + "start": { + "column": 72, "line": 19 } } }, { - "id": "327", + "id": "406", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(16,60): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "statusReason": "expected [] to strictly equal [ _CreateGamePlayerDto{ …(4) }, …(2) ]", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "119" + ], + "coveredBy": [ + "119" + ], + "location": { + "end": { + "column": 4, + "line": 25 + }, + "start": { + "column": 76, + "line": 23 + } + } + }, + { + "id": "407", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "stores/game/create-game-dto/useCreateGameDtoStore.ts(24,5): error TS2322: Type 'undefined[]' is not assignable to type '{ name: string; role: { name?: RoleNames | undefined; }; side: { original?: RoleSides | undefined; current?: RoleSides | undefined; }; group?: string | undefined; }[]'.\n Type 'undefined' is not assignable to type '{ name: string; role: { name?: RoleNames | undefined; }; side: { original?: RoleSides | undefined; current?: RoleSides | undefined; }; group?: string | undefined; }'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "140" + "119" ], "location": { "end": { - "column": 6, + "column": 91, + "line": 24 + }, + "start": { + "column": 47, "line": 24 + } + } + }, + { + "id": "408", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "120" + ], + "coveredBy": [ + "120", + "121" + ], + "location": { + "end": { + "column": 4, + "line": 32 + }, + "start": { + "column": 68, + "line": 27 + } + } + }, + { + "id": "409", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "120" + ], + "coveredBy": [ + "120", + "121" + ], + "location": { + "end": { + "column": 99, + "line": 28 }, "start": { - "column": 21, - "line": 22 + "column": 63, + "line": 28 } } }, { - "id": "328", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(27,43): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "410", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "120" + ], "coveredBy": [ - "141", - "142" + "120", + "121" ], "location": { "end": { - "column": 4, - "line": 33 + "column": 99, + "line": 28 }, "start": { - "column": 91, - "line": 27 + "column": 73, + "line": 28 } } }, { - "id": "329", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(27,43): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", - "status": "CompileError", + "id": "411", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "120" + ], "coveredBy": [ - "141", - "142" + "120", + "121" ], "location": { "end": { - "column": 6, - "line": 30 + "column": 99, + "line": 28 }, "start": { - "column": 9, + "column": 73, "line": 28 } } }, { - "id": "332", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/api/game/useFetchGames.ts(29,76): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", - "status": "CompileError", + "id": "412", + "mutatorName": "EqualityOperator", + "replacement": "player.name !== playerName", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "120" + ], "coveredBy": [ - "141", - "142" + "120", + "121" ], "location": { "end": { - "column": 89, - "line": 29 + "column": 99, + "line": 28 }, "start": { - "column": 84, - "line": 29 + "column": 73, + "line": 28 } } }, { - "id": "333", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(27,43): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", - "status": "CompileError", + "id": "413", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 2, "static": false, + "killedBy": [ + "121" + ], "coveredBy": [ - "142" + "120", + "121" ], "location": { "end": { - "column": 6, - "line": 32 + "column": 27, + "line": 29 }, "start": { - "column": 21, - "line": 30 + "column": 9, + "line": 29 } } }, { - "id": "334", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(35,46): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", - "status": "CompileError", + "id": "414", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "120" + ], "coveredBy": [ - "143", - "144" + "120", + "121" ], "location": { "end": { - "column": 4, - "line": 41 + "column": 27, + "line": 29 }, "start": { - "column": 94, - "line": 35 + "column": 9, + "line": 29 } } }, { - "id": "335", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(35,46): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", - "status": "CompileError", + "id": "415", + "mutatorName": "EqualityOperator", + "replacement": "playerIndex === -1", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "120" + ], "coveredBy": [ - "143", - "144" + "120", + "121" ], "location": { "end": { - "column": 6, - "line": 38 + "column": 27, + "line": 29 }, "start": { "column": 9, - "line": 36 + "line": 29 } } }, { - "id": "339", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(35,46): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", - "status": "CompileError", + "id": "416", + "mutatorName": "UnaryOperator", + "replacement": "+1", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "120" + ], "coveredBy": [ - "144" + "120", + "121" ], "location": { "end": { - "column": 6, - "line": 40 + "column": 27, + "line": 29 }, "start": { - "column": 21, - "line": 38 + "column": 25, + "line": 29 } } }, { - "id": "338", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/api/game/useFetchGames.ts(37,76): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", - "status": "CompileError", + "id": "417", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected _CreateGameDto{ …(2) } to strictly equal _CreateGameDto{ …(2) }", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "120" + ], "coveredBy": [ - "143", - "144" + "120" ], "location": { "end": { - "column": 92, - "line": 37 + "column": 6, + "line": 31 }, "start": { - "column": 84, - "line": 37 + "column": 29, + "line": 29 } } }, { - "id": "340", - "mutatorName": "BlockStatement", + "id": "418", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(43,82): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "statusReason": "tests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(42,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(53,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(69,28): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(78,28): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(95,30): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(112,41): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(135,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(140,30): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyRandomCompositionButton/GameLobbyRandomCompositionButton.nuxt.spec.ts(154,37): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(89,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyHeader.nuxt.spec.ts(103,35): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(50,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(63,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(80,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(103,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(117,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(144,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyHeader/GameLobbyPlayerInput/GameLobbyPlayerInput.nuxt.spec.ts(153,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayersParty.nuxt.spec.ts(36,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayerCard/GameLobbyPlayerCard.nuxt.spec.ts(55,33): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(18,31): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(32,26): error TS2339: Property 'setCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(34,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(41,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(49,26): error TS2339: Property 'resetCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(51,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(61,26): error TS2339: Property 'addPlayerToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(63,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(75,26): error TS2339: Property 'setPlayersToCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(77,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(89,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(96,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(98,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(108,26): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(111,26): error TS2339: Property 'removePlayerFromCreateGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/create-game-dto/useCreateGameDtoStore.spec.ts(113,33): error TS2339: Property 'createGameDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "145", - "146" + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "50", + "51", + "52", + "53", + "54", + "55", + "56", + "57", + "58", + "59", + "60", + "61", + "62", + "63", + "64", + "65", + "75", + "76", + "77", + "78", + "79", + "80", + "81", + "82", + "83", + "84", + "85", + "96", + "97", + "98", + "99", + "100", + "101", + "102", + "103", + "104", + "105", + "115", + "116", + "117", + "118", + "119", + "120", + "121", + "158", + "159", + "160", + "161", + "162", + "209", + "210", + "211", + "212", + "244", + "245", + "246" ], "location": { "end": { "column": 4, - "line": 52 + "line": 40 }, "start": { - "column": 130, - "line": 43 + "column": 10, + "line": 33 } } - }, + } + ], + "source": "import { defineStore } from \"pinia\";\nimport { ref } from \"vue\";\n\nimport { CreateGamePlayerDto } from \"~/composables/api/game/dto/create-game/create-game-player/create-game-player.dto\";\nimport { CreateGameDto } from \"~/composables/api/game/dto/create-game/create-game.dto\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useCreateGameDtoStore = defineStore(StoreIds.CREATE_GAME_DTO, () => {\n const createGameDto = ref(CreateGameDto.create({ players: [] }));\n\n function setCreateGameDto(createGameDtoValue: CreateGameDto): void {\n createGameDto.value = CreateGameDto.create(createGameDtoValue);\n }\n\n function resetCreateGameDto(): void {\n createGameDto.value = CreateGameDto.create({ players: [] });\n }\n\n function addPlayerToCreateGameDto(player: CreateGamePlayerDto): void {\n createGameDto.value.players.push(CreateGamePlayerDto.create(player));\n }\n\n function setPlayersToCreateGameDto(players: CreateGamePlayerDto[]): void {\n createGameDto.value.players = players.map(player => CreateGamePlayerDto.create(player));\n }\n\n function removePlayerFromCreateGameDto(playerName: string): void {\n const playerIndex = createGameDto.value.players.findIndex(player => player.name === playerName);\n if (playerIndex !== -1) {\n createGameDto.value.players = createGameDto.value.players.toSpliced(playerIndex, 1);\n }\n }\n return {\n createGameDto,\n setCreateGameDto,\n resetCreateGameDto,\n addPlayerToCreateGameDto,\n setPlayersToCreateGameDto,\n removePlayerFromCreateGameDto,\n };\n});\n\nexport { useCreateGameDtoStore };" + }, + "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts": { + "language": "typescript", + "mutants": [ { - "id": "341", + "id": "419", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(43,82): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", + "statusReason": "tests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(19,33): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(32,28): error TS2339: Property 'setMakeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(34,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(41,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(49,28): error TS2339: Property 'resetMakeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(51,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(58,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(60,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(62,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(68,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(70,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(73,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(80,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(81,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(83,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(89,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(90,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(92,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(102,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(103,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(106,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(113,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(114,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(116,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(123,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(125,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(127,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(133,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(135,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(138,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(145,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(146,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(148,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(154,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(155,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(157,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(167,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(168,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(171,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(178,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(179,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(181,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(188,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(189,28): error TS2339: Property 'setDoesJudgeRequestAnotherVote' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(191,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(198,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(199,28): error TS2339: Property 'setChosenCardId' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(201,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(208,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(209,28): error TS2339: Property 'setChosenSide' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(211,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "145", - "146" + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30", + "31", + "32", + "33", + "34", + "35", + "36", + "37", + "38", + "39", + "40" ], "location": { "end": { - "column": 6, - "line": 49 + "column": 2, + "line": 83 }, "start": { - "column": 9, - "line": 44 + "column": 80, + "line": 9 } } }, { - "id": "325", - "mutatorName": "ObjectLiteral", + "id": "420", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games\",\n Object {\n \"body\": \"{\"players\":[]}\",\n \"method\": \"POST\",\n },\n], but it was called with \"/games\"", + "statusReason": "expected _MakeGamePlayDto{ …(5) } to strictly equal _MakeGamePlayDto{ targets: [], …(4) }", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "139" + "24" ], "coveredBy": [ - "139", - "140" + "24" ], "location": { "end": { - "column": 8, - "line": 21 + "column": 4, + "line": 14 }, "start": { - "column": 64, - "line": 18 + "column": 76, + "line": 12 } } }, { - "id": "330", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"\"", + "id": "421", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected _MakeGamePlayDto{ targets: [], …(4) } to strictly equal _MakeGamePlayDto{ …(5) }", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "141" + "25" ], "coveredBy": [ - "141", - "142" + "25" ], "location": { "end": { - "column": 72, - "line": 29 + "column": 4, + "line": 18 }, "start": { - "column": 54, - "line": 29 + "column": 41, + "line": 16 } } }, { - "id": "345", + "id": "422", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(43,82): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.\n", - "status": "CompileError", - "static": false, - "coveredBy": [ - "146" - ], - "location": { - "end": { - "column": 6, - "line": 51 - }, - "start": { - "column": 21, - "line": 49 - } - } - }, - { - "id": "331", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"GET\",\n },\n], but it was called with \"/games/game-id\"", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "141" + "26" ], "coveredBy": [ - "141", - "142" + "26", + "27" ], "location": { "end": { - "column": 91, - "line": 29 + "column": 4, + "line": 25 }, "start": { "column": 74, - "line": 29 + "line": 20 } } }, { - "id": "344", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "composables/api/game/useFetchGames.ts(46,9): error TS2322: Type '\"\"' is not assignable to type '\"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"get\" | \"head\" | \"patch\" | \"post\" | \"put\" | \"delete\" | \"connect\" | \"options\" | \"trace\" | undefined'.\n", + "id": "423", + "mutatorName": "BooleanLiteral", + "replacement": "makeGamePlayDto.value.targets", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(24,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "145", - "146" - ], - "location": { - "end": { - "column": 23, - "line": 46 - }, - "start": { - "column": 17, - "line": 46 - } - } - }, - { - "id": "324", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games\",\n Object {\n \"body\": \"{\"players\":[]}\",\n \"method\": \"POST\",\n },\n], but it was called with \"\"", - "status": "Killed", - "static": false, - "testsCompleted": 1, - "killedBy": [ - "139" - ], - "coveredBy": [ - "139", - "140" + "26", + "27" ], "location": { "end": { - "column": 62, - "line": 18 + "column": 39, + "line": 21 }, "start": { - "column": 54, - "line": 18 + "column": 9, + "line": 21 } } }, { - "id": "336", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"DELETE\",\n },\n], but it was called with \"\"", + "id": "424", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected [ _MakeGamePlayTargetDto{ …(2) } ] to strictly equal [ Array(2) ]", "status": "Killed", + "testsCompleted": 2, "static": false, - "testsCompleted": 1, "killedBy": [ - "143" + "27" ], "coveredBy": [ - "143", - "144" + "26", + "27" ], "location": { "end": { - "column": 72, - "line": 37 + "column": 39, + "line": 21 }, "start": { - "column": 54, - "line": 37 + "column": 9, + "line": 21 } } }, { - "id": "346", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "composables/api/game/useFetchGames.ts(53,3): error TS2739: Type '{}' is missing the following properties from type 'UseFetchGames': createGame, getGame, cancelGame, makeGamePlay\n", - "status": "CompileError", - "static": true, - "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "130", - "131", - "132", - "133", - "134", - "135", - "136", - "137", - "138", - "139", - "140", - "141", - "142", - "143", - "144", - "145", - "146", - "205", - "241", - "242", - "243", - "247" + "id": "425", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(24,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "26", + "27" ], "location": { "end": { - "column": 4, - "line": 58 + "column": 39, + "line": 21 }, "start": { - "column": 10, - "line": 53 + "column": 9, + "line": 21 } } }, { - "id": "337", - "mutatorName": "ObjectLiteral", + "id": "426", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id\",\n Object {\n \"method\": \"DELETE\",\n },\n], but it was called with \"/games/game-id\"", - "status": "Killed", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(22,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "143" - ], + "killedBy": [], "coveredBy": [ - "143", - "144" + "26" ], "location": { "end": { - "column": 94, - "line": 37 + "column": 6, + "line": 23 }, "start": { - "column": 74, - "line": 37 + "column": 41, + "line": 21 } } }, { - "id": "342", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id/play\",\n Object {\n \"body\": \"{}\",\n \"method\": \"POST\",\n },\n], but it was called with \"\"", - "status": "Killed", + "id": "427", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(22,40): error TS2322: Type 'string' is not assignable to type '{ playerId: string; drankPotion?: string | undefined; }'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(24,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "145" - ], + "killedBy": [], "coveredBy": [ - "145", - "146" + "26" ], "location": { "end": { - "column": 77, - "line": 45 + "column": 41, + "line": 22 }, "start": { - "column": 54, - "line": 45 + "column": 39, + "line": 22 } } }, { - "id": "343", - "mutatorName": "ObjectLiteral", + "id": "428", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/games/game-id/play\",\n Object {\n \"body\": \"{}\",\n \"method\": \"POST\",\n },\n], but it was called with \"/games/game-id/play\"", + "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", "status": "Killed", + "testsCompleted": 3, "static": false, - "testsCompleted": 1, "killedBy": [ - "145" + "30" ], "coveredBy": [ - "145", - "146" + "28", + "29", + "30", + "31" ], "location": { "end": { - "column": 8, - "line": 48 + "column": 4, + "line": 38 }, "start": { - "column": 79, - "line": 45 + "column": 64, + "line": 27 } } - } - ], - "source": "import type { CreateGameDto } from \"~/composables/api/game/dto/create-game/create-game.dto\";\nimport type { MakeGamePlayDto } from \"~/composables/api/game/dto/make-game-play/make-game-play.dto\";\nimport type { Game } from \"~/composables/api/game/types/game.class\";\nimport { useWerewolvesAssistantApi } from \"~/composables/api/useWerewolvesAssistantApi\";\n\ntype UseFetchGames = {\n createGame: (createGameDto: CreateGameDto) => Promise> | null>;\n getGame: (gameId: string) => Promise> | null>;\n cancelGame: (gameId: string) => Promise> | null>;\n makeGamePlay: (gameId: string, makeGamePlayDto: MakeGamePlayDto) => Promise> | null>;\n};\n\nfunction useFetchGames(): UseFetchGames {\n const { fetchWerewolvesAssistantApi } = useWerewolvesAssistantApi();\n\n async function createGame(createGameDto: CreateGameDto): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games`, {\n method: \"POST\",\n body: JSON.stringify(createGameDto),\n });\n } catch (error) {\n return null;\n }\n }\n\n async function getGame(gameId: string): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games/${gameId}`, { method: \"GET\" });\n } catch (error) {\n return null;\n }\n }\n\n async function cancelGame(gameId: string): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games/${gameId}`, { method: \"DELETE\" });\n } catch (error) {\n return null;\n }\n }\n\n async function makeGamePlay(gameId: string, makeGamePlayDto: MakeGamePlayDto): Promise> | null> {\n try {\n return await fetchWerewolvesAssistantApi(`/games/${gameId}/play`, {\n method: \"POST\",\n body: JSON.stringify(makeGamePlayDto),\n });\n } catch (error) {\n return null;\n }\n }\n return {\n createGame,\n getGame,\n cancelGame,\n makeGamePlay,\n };\n}\n\nexport { useFetchGames };" - }, - "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "411", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "tests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(19,33): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(32,28): error TS2339: Property 'setMakeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(34,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(41,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(49,28): error TS2339: Property 'resetMakeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(51,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(58,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(60,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(62,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(68,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(70,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(73,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(80,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(81,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(83,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(89,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(90,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(92,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(102,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(103,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(106,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(113,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(114,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(116,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(123,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(125,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(127,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(133,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(135,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(138,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(145,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(146,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(148,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(154,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(155,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(157,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(167,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(168,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(171,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(178,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(179,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(181,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(188,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(189,28): error TS2339: Property 'setDoesJudgeRequestAnotherVote' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(191,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(198,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(199,28): error TS2339: Property 'setChosenCardId' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(201,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(208,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(209,28): error TS2339: Property 'setChosenSide' does not exist on type 'Store'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(211,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store'.\n", + "id": "429", + "mutatorName": "BooleanLiteral", + "replacement": "makeGamePlayDto.value.targets", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,65): error TS7006: Parameter 'target' implicitly has an 'any' type.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(35,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "23", - "24", - "25", - "26", - "27", "28", "29", "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40" + "31" ], "location": { "end": { - "column": 2, - "line": 83 + "column": 39, + "line": 28 }, "start": { - "column": 80, - "line": 9 + "column": 9, + "line": 28 } } }, { - "id": "415", - "mutatorName": "BooleanLiteral", - "replacement": "makeGamePlayDto.value.targets", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(24,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", + "id": "430", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(35,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "26", - "27" + "28", + "29", + "30", + "31" ], "location": { "end": { "column": 39, - "line": 21 + "line": 28 }, "start": { "column": 9, - "line": 21 + "line": 28 } } }, { - "id": "417", + "id": "431", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(24,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(35,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "26", - "27" + "28", + "29", + "30", + "31" ], "location": { "end": { "column": 39, - "line": 21 + "line": 28 }, "start": { "column": 9, - "line": 21 + "line": 28 } } }, { - "id": "418", + "id": "432", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(22,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(29,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "26" + "28" ], "location": { "end": { "column": 6, - "line": 23 + "line": 30 + }, + "start": { + "column": 41, + "line": 28 + } + } + }, + { + "id": "433", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", + "status": "Killed", + "testsCompleted": 2, + "static": false, + "killedBy": [ + "30" + ], + "coveredBy": [ + "29", + "30", + "31" + ], + "location": { + "end": { + "column": 103, + "line": 31 + }, + "start": { + "column": 65, + "line": 31 + } + } + }, + { + "id": "434", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "29" + ], + "coveredBy": [ + "29", + "30", + "31" + ], + "location": { + "end": { + "column": 103, + "line": 31 + }, + "start": { + "column": 75, + "line": 31 + } + } + }, + { + "id": "435", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", + "status": "Killed", + "testsCompleted": 2, + "static": false, + "killedBy": [ + "30" + ], + "coveredBy": [ + "29", + "30", + "31" + ], + "location": { + "end": { + "column": 103, + "line": 31 }, "start": { - "column": 41, - "line": 21 + "column": 75, + "line": 31 } } }, { - "id": "419", - "mutatorName": "ArrayDeclaration", - "replacement": "[\"Stryker was here\"]", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(22,40): error TS2322: Type 'string' is not assignable to type '{ playerId: string; drankPotion?: string | undefined; }'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(24,5): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "436", + "mutatorName": "EqualityOperator", + "replacement": "target.playerId !== targetId", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "29" + ], "coveredBy": [ - "26" + "29", + "30", + "31" ], "location": { "end": { - "column": 41, - "line": 22 + "column": 103, + "line": 31 }, "start": { - "column": 39, - "line": 22 + "column": 75, + "line": 31 } } }, { - "id": "421", - "mutatorName": "BooleanLiteral", - "replacement": "makeGamePlayDto.value.targets", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,65): error TS7006: Parameter 'target' implicitly has an 'any' type.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(35,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "437", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "29" + ], "coveredBy": [ - "28", "29", "30", "31" ], "location": { "end": { - "column": 39, - "line": 28 + "column": 27, + "line": 32 }, "start": { "column": 9, - "line": 28 + "line": 32 } } }, { - "id": "422", + "id": "438", "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(35,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", + "replacement": "false", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "28", "29", "30", "31" ], "location": { "end": { - "column": 39, - "line": 28 + "column": 27, + "line": 32 }, "start": { "column": 9, - "line": 28 + "line": 32 } } }, { - "id": "423", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(35,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "439", + "mutatorName": "EqualityOperator", + "replacement": "targetIndex === -1", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "29" + ], "coveredBy": [ - "28", "29", "30", "31" ], "location": { "end": { - "column": 39, - "line": 28 + "column": 27, + "line": 32 }, "start": { "column": 9, - "line": 28 + "line": 32 } } }, { - "id": "424", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(29,25): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(31,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,9): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "440", + "mutatorName": "UnaryOperator", + "replacement": "+1", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "29" + ], "coveredBy": [ - "28" + "29", + "30", + "31" ], "location": { "end": { - "column": 6, - "line": 30 + "column": 27, + "line": 32 }, "start": { - "column": 41, - "line": 28 + "column": 25, + "line": 32 } } }, { - "id": "412", + "id": "441", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected _MakeGamePlayDto{ …(5) } to strictly equal _MakeGamePlayDto{ targets: [], …(4) }", + "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "24" + "30" ], "coveredBy": [ - "24" + "30", + "31" ], "location": { "end": { - "column": 4, - "line": 14 + "column": 6, + "line": 34 }, "start": { - "column": 76, - "line": 12 + "column": 29, + "line": 32 } } }, { - "id": "430", + "id": "442", "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(33,39): error TS18048: 'makeGamePlayDto.value.targets' is possibly 'undefined'.\n", - "status": "CompileError", + "replacement": "true", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "29" + ], "coveredBy": [ "29", "30", @@ -14433,1498 +14672,1408 @@ ], "location": { "end": { - "column": 27, - "line": 32 + "column": 51, + "line": 35 }, "start": { "column": 9, - "line": 32 + "line": 35 } } }, { - "id": "413", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected _MakeGamePlayDto{ targets: [], …(4) } to strictly equal _MakeGamePlayDto{ …(5) }", + "id": "443", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected [] to be undefined", "status": "Killed", + "testsCompleted": 3, "static": false, - "testsCompleted": 1, "killedBy": [ - "25" + "31" ], "coveredBy": [ - "25" + "29", + "30", + "31" ], "location": { "end": { - "column": 4, - "line": 18 + "column": 51, + "line": 35 }, "start": { - "column": 41, - "line": 16 + "column": 9, + "line": 35 } } }, { - "id": "416", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected [ _MakeGamePlayTargetDto{ …(2) } ] to strictly equal [ Array(2) ]", + "id": "444", + "mutatorName": "EqualityOperator", + "replacement": "makeGamePlayDto.value.targets.length !== 0", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 2, "killedBy": [ - "27" + "29" ], "coveredBy": [ - "26", - "27" + "29", + "30", + "31" ], "location": { "end": { - "column": 39, - "line": 21 + "column": 51, + "line": 35 }, "start": { "column": 9, - "line": 21 + "line": 35 } } }, { - "id": "420", + "id": "445", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", + "statusReason": "expected [] to be undefined", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 3, "killedBy": [ - "30" + "31" ], "coveredBy": [ - "28", - "29", - "30", "31" ], "location": { "end": { - "column": 4, - "line": 38 + "column": 6, + "line": 37 }, "start": { - "column": 64, - "line": 27 + "column": 53, + "line": 35 } } }, { - "id": "414", + "id": "446", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "26" + "32" ], "coveredBy": [ - "26", - "27" + "32", + "33" ], "location": { "end": { "column": 4, - "line": 25 + "line": 45 }, "start": { - "column": 74, - "line": 20 + "column": 68, + "line": 40 } } }, { - "id": "425", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", - "status": "Killed", + "id": "447", + "mutatorName": "BooleanLiteral", + "replacement": "makeGamePlayDto.value.votes", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(44,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 2, - "killedBy": [ - "30" - ], + "killedBy": [], "coveredBy": [ - "29", - "30", - "31" + "32", + "33" ], "location": { "end": { - "column": 103, - "line": 31 + "column": 37, + "line": 41 }, "start": { - "column": 65, - "line": 31 + "column": 9, + "line": 41 } } }, { - "id": "426", + "id": "448", "mutatorName": "ConditionalExpression", "replacement": "true", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) } ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", "status": "Killed", + "testsCompleted": 2, "static": false, - "testsCompleted": 1, "killedBy": [ - "29" + "33" ], "coveredBy": [ - "29", - "30", - "31" + "32", + "33" ], "location": { "end": { - "column": 103, - "line": 31 + "column": 37, + "line": 41 }, "start": { - "column": 75, - "line": 31 + "column": 9, + "line": 41 } } }, { - "id": "427", + "id": "449", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", - "status": "Killed", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(44,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 2, - "killedBy": [ - "30" - ], + "killedBy": [], "coveredBy": [ - "29", - "30", - "31" + "32", + "33" ], "location": { "end": { - "column": 103, - "line": 31 + "column": 37, + "line": 41 }, "start": { - "column": 75, - "line": 31 + "column": 9, + "line": 41 } } }, { - "id": "439", - "mutatorName": "BooleanLiteral", - "replacement": "makeGamePlayDto.value.votes", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(44,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "id": "450", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(42,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "32", - "33" + "32" ], "location": { "end": { - "column": 37, - "line": 41 + "column": 6, + "line": 43 }, "start": { - "column": 9, + "column": 39, "line": 41 } } }, { - "id": "429", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", - "status": "Killed", + "id": "451", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(42,38): error TS2322: Type 'string' is not assignable to type '{ sourceId: string; targetId: string; }'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(44,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "29" - ], + "killedBy": [], "coveredBy": [ - "29", - "30", - "31" + "32" ], "location": { "end": { - "column": 27, - "line": 32 + "column": 39, + "line": 42 }, "start": { - "column": 9, - "line": 32 + "column": 37, + "line": 42 } } }, { - "id": "428", - "mutatorName": "EqualityOperator", - "replacement": "target.playerId !== targetId", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "id": "452", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", "status": "Killed", + "testsCompleted": 3, "static": false, - "testsCompleted": 1, "killedBy": [ - "29" + "36" ], "coveredBy": [ - "29", - "30", - "31" + "34", + "35", + "36", + "37" ], "location": { "end": { - "column": 103, - "line": 31 + "column": 4, + "line": 58 }, "start": { - "column": 75, - "line": 31 + "column": 62, + "line": 47 } } }, { - "id": "431", - "mutatorName": "EqualityOperator", - "replacement": "targetIndex === -1", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", - "status": "Killed", + "id": "453", + "mutatorName": "BooleanLiteral", + "replacement": "makeGamePlayDto.value.votes", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,61): error TS7006: Parameter 'vote' implicitly has an 'any' type.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(55,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "29" + "killedBy": [], + "coveredBy": [ + "34", + "35", + "36", + "37" ], + "location": { + "end": { + "column": 37, + "line": 48 + }, + "start": { + "column": 9, + "line": 48 + } + } + }, + { + "id": "454", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(55,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], "coveredBy": [ - "29", - "30", - "31" + "34", + "35", + "36", + "37" ], "location": { "end": { - "column": 27, - "line": 32 + "column": 37, + "line": 48 }, "start": { "column": 9, - "line": 32 + "line": 48 } } }, { - "id": "441", + "id": "455", "mutatorName": "ConditionalExpression", "replacement": "false", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(44,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(55,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "32", - "33" + "34", + "35", + "36", + "37" ], "location": { "end": { "column": 37, - "line": 41 + "line": 48 }, "start": { "column": 9, - "line": 41 + "line": 48 } } }, { - "id": "432", - "mutatorName": "UnaryOperator", - "replacement": "+1", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "id": "456", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(49,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [ + "34" + ], + "location": { + "end": { + "column": 6, + "line": 50 + }, + "start": { + "column": 39, + "line": 48 + } + } + }, + { + "id": "457", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", "status": "Killed", + "testsCompleted": 2, "static": false, - "testsCompleted": 1, "killedBy": [ - "29" + "36" ], "coveredBy": [ - "29", - "30", - "31" + "35", + "36", + "37" ], "location": { "end": { - "column": 27, - "line": 32 + "column": 95, + "line": 51 }, "start": { - "column": 25, - "line": 32 + "column": 61, + "line": 51 } } }, { - "id": "433", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected [ Array(3) ] to strictly equal [ Array(2) ]", + "id": "458", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "30" + "35" ], "coveredBy": [ - "30", - "31" + "35", + "36", + "37" ], "location": { "end": { - "column": 6, - "line": 34 + "column": 95, + "line": 51 }, "start": { - "column": 29, - "line": 32 + "column": 69, + "line": 51 } } }, { - "id": "442", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(42,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "459", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", + "status": "Killed", + "testsCompleted": 2, "static": false, + "killedBy": [ + "36" + ], "coveredBy": [ - "32" + "35", + "36", + "37" ], "location": { "end": { - "column": 6, - "line": 43 + "column": 95, + "line": 51 }, "start": { - "column": 39, - "line": 41 + "column": 69, + "line": 51 } } }, { - "id": "443", - "mutatorName": "ArrayDeclaration", - "replacement": "[\"Stryker was here\"]", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(42,38): error TS2322: Type 'string' is not assignable to type '{ sourceId: string; targetId: string; }'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(44,5): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "460", + "mutatorName": "EqualityOperator", + "replacement": "vote.sourceId !== sourceId", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "35" + ], "coveredBy": [ - "32" + "35", + "36", + "37" ], "location": { "end": { - "column": 39, - "line": 42 + "column": 95, + "line": 51 }, "start": { - "column": 37, - "line": 42 + "column": 69, + "line": 51 } } }, { - "id": "435", + "id": "461", "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected [] to be undefined", + "replacement": "true", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 3, "killedBy": [ - "31" + "35" ], "coveredBy": [ - "29", - "30", - "31" + "35", + "36", + "37" ], "location": { "end": { - "column": 51, - "line": 35 + "column": 25, + "line": 52 }, "start": { "column": 9, - "line": 35 + "line": 52 } } }, { - "id": "434", + "id": "462", "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", - "status": "Killed", + "replacement": "false", + "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "29" - ], + "killedBy": [], "coveredBy": [ - "29", - "30", - "31" + "35", + "36", + "37" ], "location": { "end": { - "column": 51, - "line": 35 + "column": 25, + "line": 52 }, "start": { "column": 9, - "line": 35 + "line": 52 } } }, { - "id": "436", + "id": "463", "mutatorName": "EqualityOperator", - "replacement": "makeGamePlayDto.value.targets.length !== 0", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayTargetDto{ …(2) } ]", + "replacement": "voteIndex === -1", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "29" + "35" ], "coveredBy": [ - "29", - "30", - "31" + "35", + "36", + "37" ], "location": { "end": { - "column": 51, - "line": 35 + "column": 25, + "line": 52 }, "start": { "column": 9, - "line": 35 + "line": 52 } } }, { - "id": "438", - "mutatorName": "BlockStatement", - "replacement": "{}", + "id": "464", + "mutatorName": "UnaryOperator", + "replacement": "+1", "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "32" + "35" ], "coveredBy": [ - "32", - "33" + "35", + "36", + "37" ], "location": { "end": { - "column": 4, - "line": 45 + "column": 25, + "line": 52 }, "start": { - "column": 68, - "line": 40 + "column": 23, + "line": 52 } } }, { - "id": "437", + "id": "465", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected [] to be undefined", + "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "31" + "36" ], "coveredBy": [ - "31" + "36", + "37" ], "location": { "end": { "column": 6, - "line": 37 + "line": 54 }, "start": { - "column": 53, - "line": 35 + "column": 27, + "line": 52 } } }, { - "id": "445", - "mutatorName": "BooleanLiteral", - "replacement": "makeGamePlayDto.value.votes", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,61): error TS7006: Parameter 'vote' implicitly has an 'any' type.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(55,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "466", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "35" + ], "coveredBy": [ - "34", "35", "36", "37" ], "location": { "end": { - "column": 37, - "line": 48 + "column": 49, + "line": 55 }, "start": { "column": 9, - "line": 48 + "line": 55 } } }, { - "id": "440", + "id": "467", "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) } ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", + "replacement": "false", + "statusReason": "expected [] to be undefined", "status": "Killed", + "testsCompleted": 3, "static": false, - "testsCompleted": 2, "killedBy": [ - "33" + "37" ], "coveredBy": [ - "32", - "33" + "35", + "36", + "37" ], "location": { "end": { - "column": 37, - "line": 41 + "column": 49, + "line": 55 }, "start": { "column": 9, - "line": 41 + "line": 55 } } }, { - "id": "446", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(55,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "468", + "mutatorName": "EqualityOperator", + "replacement": "makeGamePlayDto.value.votes.length !== 0", + "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "35" + ], "coveredBy": [ - "34", "35", "36", "37" ], "location": { "end": { - "column": 37, - "line": 48 + "column": 49, + "line": 55 }, "start": { "column": 9, - "line": 48 + "line": 55 } } }, { - "id": "448", + "id": "469", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(49,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", - "status": "CompileError", - "static": false, - "coveredBy": [ - "34" - ], - "location": { - "end": { - "column": 6, - "line": 50 - }, - "start": { - "column": 39, - "line": 48 - } - } - }, - { - "id": "447", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(51,23): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\nstores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(55,9): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", - "status": "CompileError", + "statusReason": "expected [] to be undefined", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "37" + ], "coveredBy": [ - "34", - "35", - "36", "37" ], "location": { "end": { - "column": 37, - "line": 48 + "column": 6, + "line": 57 }, "start": { - "column": 9, - "line": 48 + "column": 51, + "line": 55 } } }, { - "id": "444", + "id": "470", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", + "statusReason": "expected undefined to be truthy", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 3, "killedBy": [ - "36" + "38" ], "coveredBy": [ - "34", - "35", - "36", - "37" + "38" ], "location": { "end": { "column": 4, - "line": 58 + "line": 62 }, "start": { - "column": 62, - "line": 47 + "column": 99, + "line": 60 } } }, { - "id": "449", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", + "id": "471", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected undefined to be 'cardId' // Object.is equality", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 2, "killedBy": [ - "36" + "39" ], "coveredBy": [ - "35", - "36", - "37" + "39" ], "location": { "end": { - "column": 95, - "line": 51 + "column": 4, + "line": 66 }, "start": { - "column": 61, - "line": 51 + "column": 68, + "line": 64 } } }, { - "id": "450", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", + "id": "472", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected undefined to be 'werewolves' // Object.is equality", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "35" + "40" ], "coveredBy": [ - "35", - "36", - "37" + "40" ], "location": { "end": { - "column": 95, - "line": 51 + "column": 4, + "line": 70 }, "start": { - "column": 69, - "line": 51 + "column": 67, + "line": 68 } } }, { - "id": "452", - "mutatorName": "EqualityOperator", - "replacement": "vote.sourceId !== sourceId", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", - "status": "Killed", + "id": "473", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "tests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(19,33): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(32,28): error TS2339: Property 'setMakeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(34,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(41,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(49,28): error TS2339: Property 'resetMakeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(51,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(58,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(60,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(62,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(68,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(70,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(73,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(80,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(81,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(83,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(89,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(90,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(92,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(102,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(103,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(106,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(113,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(114,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(116,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(123,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(125,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(127,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(133,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(135,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(138,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(145,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(146,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(148,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(154,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(155,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(157,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(167,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(168,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(171,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(178,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(179,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(181,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(188,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(189,28): error TS2339: Property 'setDoesJudgeRequestAnotherVote' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(191,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(198,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(199,28): error TS2339: Property 'setChosenCardId' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(201,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(208,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(209,28): error TS2339: Property 'setChosenSide' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(211,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "35" - ], + "killedBy": [], "coveredBy": [ + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30", + "31", + "32", + "33", + "34", "35", "36", - "37" + "37", + "38", + "39", + "40" ], "location": { "end": { - "column": 95, - "line": 51 + "column": 4, + "line": 82 }, "start": { - "column": 69, - "line": 51 + "column": 10, + "line": 71 } } - }, + } + ], + "source": "import { defineStore } from \"pinia\";\n\nimport { MakeGamePlayTargetDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto\";\nimport { MakeGamePlayVoteDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto\";\nimport { MakeGamePlayDto } from \"~/composables/api/game/dto/make-game-play/make-game-play.dto\";\nimport type { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useMakeGamePlayDtoStore = defineStore(StoreIds.MAKE_GAME_PLAY_DTO, () => {\n const makeGamePlayDto = ref(MakeGamePlayDto.create({}));\n\n function setMakeGamePlayDto(makeGamePlayDtoValue: MakeGamePlayDto): void {\n makeGamePlayDto.value = MakeGamePlayDto.create(makeGamePlayDtoValue);\n }\n\n function resetMakeGamePlayDto(): void {\n makeGamePlayDto.value = MakeGamePlayDto.create({});\n }\n\n function addMakeGamePlayTargetDto(target: MakeGamePlayTargetDto): void {\n if (!makeGamePlayDto.value.targets) {\n makeGamePlayDto.value.targets = [];\n }\n makeGamePlayDto.value.targets.push(MakeGamePlayTargetDto.create(target));\n }\n\n function removeMakeGamePlayTargetDto(targetId: string): void {\n if (!makeGamePlayDto.value.targets) {\n return;\n }\n const targetIndex = makeGamePlayDto.value.targets.findIndex(target => target.playerId === targetId);\n if (targetIndex !== -1) {\n makeGamePlayDto.value.targets = makeGamePlayDto.value.targets.toSpliced(targetIndex, 1);\n }\n if (makeGamePlayDto.value.targets.length === 0) {\n makeGamePlayDto.value.targets = undefined;\n }\n }\n\n function addMakeGamePlayVoteDto(vote: MakeGamePlayVoteDto): void {\n if (!makeGamePlayDto.value.votes) {\n makeGamePlayDto.value.votes = [];\n }\n makeGamePlayDto.value.votes.push(MakeGamePlayVoteDto.create(vote));\n }\n\n function removeMakeGamePlayVoteDto(sourceId: string): void {\n if (!makeGamePlayDto.value.votes) {\n return;\n }\n const voteIndex = makeGamePlayDto.value.votes.findIndex(vote => vote.sourceId === sourceId);\n if (voteIndex !== -1) {\n makeGamePlayDto.value.votes = makeGamePlayDto.value.votes.toSpliced(voteIndex, 1);\n }\n if (makeGamePlayDto.value.votes.length === 0) {\n makeGamePlayDto.value.votes = undefined;\n }\n }\n\n function setDoesJudgeRequestAnotherVote(doesJudgeRequestAnotherVote: boolean | undefined): void {\n makeGamePlayDto.value.doesJudgeRequestAnotherVote = doesJudgeRequestAnotherVote;\n }\n\n function setChosenCardId(chosenCardId: string | undefined): void {\n makeGamePlayDto.value.chosenCardId = chosenCardId;\n }\n\n function setChosenSide(chosenSide: RoleSides | undefined): void {\n makeGamePlayDto.value.chosenSide = chosenSide;\n }\n return {\n makeGamePlayDto,\n setMakeGamePlayDto,\n resetMakeGamePlayDto,\n addMakeGamePlayTargetDto,\n removeMakeGamePlayTargetDto,\n addMakeGamePlayVoteDto,\n removeMakeGamePlayVoteDto,\n setDoesJudgeRequestAnotherVote,\n setChosenCardId,\n setChosenSide,\n };\n});\n\nexport { useMakeGamePlayDtoStore };" + }, + "stores/game/useGameStore.ts": { + "language": "typescript", + "mutants": [ { - "id": "451", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", + "id": "478", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expected _Game{ …(8) } to strictly equal _Game{ _id: undefined, …(7) }", "status": "Killed", + "testsCompleted": 1, "static": false, - "testsCompleted": 2, "killedBy": [ - "36" + "151" ], "coveredBy": [ - "35", - "36", - "37" + "151" ], "location": { "end": { - "column": 95, - "line": 51 + "column": 4, + "line": 23 }, "start": { - "column": 69, - "line": 51 + "column": 30, + "line": 21 } } }, { - "id": "454", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "stores/game/make-game-play-dto/useMakeGamePlayDtoStore.ts(53,37): error TS18048: 'makeGamePlayDto.value.votes' is possibly 'undefined'.\n", - "status": "CompileError", + "id": "479", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "status": "Killed", + "testsCompleted": 1, "static": false, + "killedBy": [ + "152" + ], "coveredBy": [ - "35", - "36", - "37" + "152", + "153" ], "location": { "end": { - "column": 25, - "line": 52 + "column": 4, + "line": 35 }, "start": { - "column": 9, - "line": 52 + "column": 65, + "line": 25 } } }, { - "id": "453", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", - "status": "Killed", + "id": "480", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(26,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "35" - ], + "killedBy": [], "coveredBy": [ - "35", - "36", - "37" + "152", + "153" ], "location": { "end": { - "column": 25, - "line": 52 + "column": 41, + "line": 26 }, "start": { - "column": 9, - "line": 52 + "column": 32, + "line": 26 } } }, { - "id": "456", - "mutatorName": "UnaryOperator", - "replacement": "+1", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", - "status": "Killed", + "id": "481", + "mutatorName": "BooleanLiteral", + "replacement": "fetchedGame", + "statusReason": "stores/game/useGameStore.ts(33,5): error TS2322: Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "35" - ], + "killedBy": [], "coveredBy": [ - "35", - "36", - "37" + "152", + "153" ], "location": { "end": { - "column": 25, - "line": 52 + "column": 21, + "line": 28 }, "start": { - "column": 23, - "line": 52 + "column": 9, + "line": 28 } } }, { - "id": "455", - "mutatorName": "EqualityOperator", - "replacement": "voteIndex === -1", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", - "status": "Killed", + "id": "482", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "stores/game/useGameStore.ts(33,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "35" - ], + "killedBy": [], "coveredBy": [ - "35", - "36", - "37" + "152", + "153" ], "location": { "end": { - "column": 25, - "line": 52 + "column": 21, + "line": 28 }, "start": { "column": 9, - "line": 52 + "line": 28 } } }, { - "id": "457", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected [ _MakeGamePlayVoteDto{ …(2) }, …(2) ] to strictly equal [ _MakeGamePlayVoteDto{ …(2) }, …(1) ]", - "status": "Killed", + "id": "483", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "stores/game/useGameStore.ts(33,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "36" - ], + "killedBy": [], "coveredBy": [ - "36", - "37" + "152", + "153" ], "location": { "end": { - "column": 6, - "line": 54 + "column": 21, + "line": 28 }, "start": { - "column": 27, - "line": 52 + "column": 9, + "line": 28 } } }, { - "id": "458", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", - "status": "Killed", + "id": "484", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "stores/game/useGameStore.ts(29,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "35" - ], + "killedBy": [], "coveredBy": [ - "35", - "36", - "37" + "152" ], "location": { "end": { - "column": 49, - "line": 55 + "column": 6, + "line": 32 }, "start": { - "column": 9, - "line": 55 + "column": 23, + "line": 28 } } }, { - "id": "459", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expected [] to be undefined", - "status": "Killed", + "id": "485", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(29,7): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 3, - "killedBy": [ - "37" - ], + "killedBy": [], "coveredBy": [ - "35", - "36", - "37" + "152" ], "location": { "end": { - "column": 49, - "line": 55 + "column": 41, + "line": 29 }, "start": { - "column": 9, - "line": 55 + "column": 34, + "line": 29 } } }, { - "id": "460", - "mutatorName": "EqualityOperator", - "replacement": "makeGamePlayDto.value.votes.length !== 0", - "statusReason": "expected undefined to strictly equal [ _MakeGamePlayVoteDto{ …(2) } ]", - "status": "Killed", + "id": "486", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(34,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "35" - ], + "killedBy": [], "coveredBy": [ - "35", - "36", - "37" + "153" ], "location": { "end": { - "column": 49, - "line": 55 + "column": 41, + "line": 34 }, "start": { - "column": 9, - "line": 55 + "column": 32, + "line": 34 } } }, { - "id": "461", + "id": "487", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected [] to be undefined", + "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "37" + "154" ], "coveredBy": [ - "37" + "154", + "155" ], "location": { "end": { - "column": 6, - "line": 57 + "column": 4, + "line": 47 }, "start": { - "column": 51, - "line": 55 + "column": 46, + "line": 37 } } }, { - "id": "463", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected undefined to be 'cardId' // Object.is equality", - "status": "Killed", + "id": "488", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(38,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "39" - ], + "killedBy": [], "coveredBy": [ - "39" + "154", + "155" ], "location": { "end": { - "column": 4, - "line": 66 + "column": 42, + "line": 38 }, "start": { - "column": 68, - "line": 64 + "column": 33, + "line": 38 } } }, { - "id": "462", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected undefined to be truthy", - "status": "Killed", + "id": "489", + "mutatorName": "BooleanLiteral", + "replacement": "canceledGame", + "statusReason": "stores/game/useGameStore.ts(45,5): error TS2322: Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "38" - ], + "killedBy": [], "coveredBy": [ - "38" + "154", + "155" ], "location": { "end": { - "column": 4, - "line": 62 + "column": 22, + "line": 40 }, "start": { - "column": 99, - "line": 60 + "column": 9, + "line": 40 } } }, { - "id": "464", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expected undefined to be 'werewolves' // Object.is equality", - "status": "Killed", + "id": "490", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "stores/game/useGameStore.ts(45,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "40" - ], + "killedBy": [], "coveredBy": [ - "40" + "154", + "155" ], "location": { "end": { - "column": 4, - "line": 70 + "column": 22, + "line": 40 }, "start": { - "column": 67, - "line": 68 + "column": 9, + "line": 40 } } }, { - "id": "465", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "tests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(19,33): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(32,28): error TS2339: Property 'setMakeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(34,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(41,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(49,28): error TS2339: Property 'resetMakeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(51,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(58,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(60,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(62,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(68,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(70,28): error TS2339: Property 'addMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(73,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(80,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(81,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(83,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(89,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(90,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(92,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(102,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(103,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(106,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(113,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(114,28): error TS2339: Property 'removeMakeGamePlayTargetDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(116,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(123,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(125,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(127,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(133,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(135,28): error TS2339: Property 'addMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(138,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(145,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(146,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(148,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(154,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(155,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(157,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(167,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(168,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(171,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(178,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(179,28): error TS2339: Property 'removeMakeGamePlayVoteDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(181,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(188,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(189,28): error TS2339: Property 'setDoesJudgeRequestAnotherVote' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(191,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(198,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(199,28): error TS2339: Property 'setChosenCardId' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(201,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(208,28): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(209,28): error TS2339: Property 'setChosenSide' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/make-game-play-dto/useMakeGamePlayDtoStore.spec.ts(211,35): error TS2339: Property 'makeGamePlayDto' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", + "id": "491", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "stores/game/useGameStore.ts(45,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40" + "154", + "155" ], "location": { "end": { - "column": 4, - "line": 82 + "column": 22, + "line": 40 }, "start": { - "column": 10, - "line": 71 + "column": 9, + "line": 40 } } - } - ], - "source": "import { defineStore } from \"pinia\";\n\nimport { MakeGamePlayTargetDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-target/make-game-play-target.dto\";\nimport { MakeGamePlayVoteDto } from \"~/composables/api/game/dto/make-game-play/make-game-play-vote/make-game-play-vote.dto\";\nimport { MakeGamePlayDto } from \"~/composables/api/game/dto/make-game-play/make-game-play.dto\";\nimport type { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useMakeGamePlayDtoStore = defineStore(StoreIds.MAKE_GAME_PLAY_DTO, () => {\n const makeGamePlayDto = ref(MakeGamePlayDto.create({}));\n\n function setMakeGamePlayDto(makeGamePlayDtoValue: MakeGamePlayDto): void {\n makeGamePlayDto.value = MakeGamePlayDto.create(makeGamePlayDtoValue);\n }\n\n function resetMakeGamePlayDto(): void {\n makeGamePlayDto.value = MakeGamePlayDto.create({});\n }\n\n function addMakeGamePlayTargetDto(target: MakeGamePlayTargetDto): void {\n if (!makeGamePlayDto.value.targets) {\n makeGamePlayDto.value.targets = [];\n }\n makeGamePlayDto.value.targets.push(MakeGamePlayTargetDto.create(target));\n }\n\n function removeMakeGamePlayTargetDto(targetId: string): void {\n if (!makeGamePlayDto.value.targets) {\n return;\n }\n const targetIndex = makeGamePlayDto.value.targets.findIndex(target => target.playerId === targetId);\n if (targetIndex !== -1) {\n makeGamePlayDto.value.targets = makeGamePlayDto.value.targets.toSpliced(targetIndex, 1);\n }\n if (makeGamePlayDto.value.targets.length === 0) {\n makeGamePlayDto.value.targets = undefined;\n }\n }\n\n function addMakeGamePlayVoteDto(vote: MakeGamePlayVoteDto): void {\n if (!makeGamePlayDto.value.votes) {\n makeGamePlayDto.value.votes = [];\n }\n makeGamePlayDto.value.votes.push(MakeGamePlayVoteDto.create(vote));\n }\n\n function removeMakeGamePlayVoteDto(sourceId: string): void {\n if (!makeGamePlayDto.value.votes) {\n return;\n }\n const voteIndex = makeGamePlayDto.value.votes.findIndex(vote => vote.sourceId === sourceId);\n if (voteIndex !== -1) {\n makeGamePlayDto.value.votes = makeGamePlayDto.value.votes.toSpliced(voteIndex, 1);\n }\n if (makeGamePlayDto.value.votes.length === 0) {\n makeGamePlayDto.value.votes = undefined;\n }\n }\n\n function setDoesJudgeRequestAnotherVote(doesJudgeRequestAnotherVote: boolean | undefined): void {\n makeGamePlayDto.value.doesJudgeRequestAnotherVote = doesJudgeRequestAnotherVote;\n }\n\n function setChosenCardId(chosenCardId: string | undefined): void {\n makeGamePlayDto.value.chosenCardId = chosenCardId;\n }\n\n function setChosenSide(chosenSide: RoleSides | undefined): void {\n makeGamePlayDto.value.chosenSide = chosenSide;\n }\n return {\n makeGamePlayDto,\n setMakeGamePlayDto,\n resetMakeGamePlayDto,\n addMakeGamePlayTargetDto,\n removeMakeGamePlayTargetDto,\n addMakeGamePlayVoteDto,\n removeMakeGamePlayVoteDto,\n setDoesJudgeRequestAnotherVote,\n setChosenCardId,\n setChosenSide,\n };\n});\n\nexport { useMakeGamePlayDtoStore };" - }, - "components/pages/game-lobby/GameLobbyFooter/GameLobbyStartGameButton/GameLobbyStartGameButton.vue": { - "language": "html", - "mutants": [ + }, { - "id": "70", - "mutatorName": "BooleanLiteral", - "replacement": "true", - "statusReason": "Snapshot `Game Lobby Start Game Button Component > should match snapshot when rendered. 1` mismatched", - "status": "Killed", + "id": "492", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "stores/game/useGameStore.ts(41,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "75" - ], + "killedBy": [], "coveredBy": [ - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "154" ], "location": { "end": { - "column": 47, - "line": 38 + "column": 6, + "line": 44 }, "start": { - "column": 42, - "line": 38 + "column": 24, + "line": 40 } } }, { - "id": "71", - "mutatorName": "ArrowFunction", - "replacement": "() => undefined", - "statusReason": "Snapshot `Game Lobby Start Game Button Component > should match snapshot when rendered. 1` mismatched", - "status": "Killed", + "id": "493", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(41,7): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "75" - ], + "killedBy": [], "coveredBy": [ - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85" + "154" ], "location": { "end": { - "column": 98, - "line": 40 + "column": 41, + "line": 41 }, "start": { - "column": 55, - "line": 40 + "column": 34, + "line": 41 } } }, { - "id": "73", - "mutatorName": "BooleanLiteral", - "replacement": "false", - "statusReason": "expect(received).toBeTrue()\n\nExpected value to be true:\n true\nReceived:\n false", - "status": "Killed", + "id": "494", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(46,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 5, - "killedBy": [ - "84" - ], + "killedBy": [], "coveredBy": [ - "80", - "81", - "82", - "83", - "84", - "85" + "155" ], "location": { "end": { - "column": 35, - "line": 43 + "column": 42, + "line": 46 }, "start": { - "column": 31, - "line": 43 + "column": 33, + "line": 46 } } }, { - "id": "72", + "id": "495", "mutatorName": "BlockStatement", "replacement": "{}", "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "80" + "156" ], "coveredBy": [ - "80", - "81", - "82", - "83", - "84", - "85" + "156", + "157" ], "location": { "end": { - "column": 2, - "line": 50 + "column": 4, + "line": 59 }, "start": { - "column": 60, - "line": 42 + "column": 80, + "line": 49 } } }, { - "id": "74", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "expected 'true' to be 'false' // Object.is equality", - "status": "Killed", + "id": "496", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(50,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 6, - "killedBy": [ - "85" - ], + "killedBy": [], "coveredBy": [ - "80", - "81", - "82", - "83", - "84", - "85" + "156", + "157" ], "location": { "end": { - "column": 18, - "line": 45 + "column": 43, + "line": 50 }, "start": { - "column": 7, - "line": 45 + "column": 34, + "line": 50 } } }, { - "id": "75", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "id": "497", + "mutatorName": "BooleanLiteral", + "replacement": "playedGame", + "statusReason": "stores/game/useGameStore.ts(57,5): error TS2322: Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 2, - "killedBy": [ - "81" - ], + "killedBy": [], "coveredBy": [ - "80", - "81", - "82", - "83", - "84", - "85" + "156", + "157" ], "location": { "end": { - "column": 18, - "line": 45 + "column": 20, + "line": 52 }, "start": { - "column": 7, - "line": 45 + "column": 9, + "line": 52 } } }, { - "id": "76", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "id": "498", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "stores/game/useGameStore.ts(57,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "81" - ], + "killedBy": [], "coveredBy": [ - "81", - "82" + "156", + "157" ], "location": { "end": { - "column": 4, - "line": 48 + "column": 20, + "line": 52 }, "start": { - "column": 20, - "line": 45 + "column": 9, + "line": 52 } } }, { - "id": "78", - "mutatorName": "ObjectLiteral", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.GameLobbyStartGameButton.gameCreated\",\n },\n], but it was called with Object {}", - "status": "Killed", + "id": "499", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "stores/game/useGameStore.ts(57,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 2, - "killedBy": [ - "82" - ], + "killedBy": [], "coveredBy": [ - "81", - "82" + "156", + "157" ], "location": { "end": { - "column": 86, - "line": 47 + "column": 20, + "line": 52 }, "start": { - "column": 21, - "line": 47 + "column": 9, + "line": 52 } } }, { - "id": "77", - "mutatorName": "StringLiteral", - "replacement": "``", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n \"/game/a083cc4d-0e66-4cae-8c6b-9ec36224ce6d\",\n], but it was called with \"\"", - "status": "Killed", + "id": "500", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "stores/game/useGameStore.ts(53,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "81" - ], - "coveredBy": [ - "81", - "82" + "killedBy": [], + "coveredBy": [ + "156" ], "location": { "end": { - "column": 48, - "line": 46 + "column": 6, + "line": 56 }, "start": { "column": 22, - "line": 46 + "line": 52 } } }, { - "id": "79", + "id": "501", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once with Array [\n Object {\n \"summary\": \"components.GameLobbyStartGameButton.gameCreated\",\n },\n], but it was called with Object {\n \"summary\": \"\",\n}", - "status": "Killed", + "statusReason": "stores/game/useGameStore.ts(53,7): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 2, - "killedBy": [ - "82" - ], + "killedBy": [], "coveredBy": [ - "81", - "82" + "156" ], "location": { "end": { - "column": 83, - "line": 47 + "column": 41, + "line": 53 }, "start": { "column": 34, - "line": 47 + "line": 53 } } }, { - "id": "80", - "mutatorName": "BooleanLiteral", - "replacement": "true", - "statusReason": "expected 'true' to be 'false' // Object.is equality", - "status": "Killed", + "id": "502", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/game/useGameStore.ts(58,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 6, - "killedBy": [ - "85" - ], + "killedBy": [], "coveredBy": [ - "80", - "81", - "82", - "83", - "84", - "85" + "157" ], "location": { "end": { - "column": 36, - "line": 49 + "column": 43, + "line": 58 }, "start": { - "column": 31, - "line": 49 + "column": 34, + "line": 58 } } - } - ], - "source": "\n\n" - }, - "stores/game/useGameStore.ts": { - "language": "typescript", - "mutants": [ + }, { - "id": "466", + "id": "474", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "tests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(101,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(109,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(136,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(164,13): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(191,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(195,24): error TS2339: Property 'cancelGame' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(27,15): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(39,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(47,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(63,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(71,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(72,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(80,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(89,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(90,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/pages/game-lobby/game-lobby.nuxt.spec.ts(30,24): error TS2339: Property 'resetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(27,22): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(28,22): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(34,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(35,17): error TS2339: Property 'resetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(37,24): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(44,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(53,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(55,24): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(62,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(63,23): error TS2339: Property 'cancelGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(72,23): error TS2339: Property 'cancelGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(74,24): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(83,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(93,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(95,24): error TS2339: Property 'game' does not exist on type 'Store'.\n", + "statusReason": "tests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(101,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(109,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(136,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(164,13): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(191,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(195,24): error TS2339: Property 'cancelGame' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(42,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(55,74): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(56,74): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(57,74): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(58,74): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(64,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(77,74): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(78,74): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(79,74): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(27,15): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(39,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(47,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(63,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(71,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(72,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(80,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(89,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(90,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/pages/game-lobby/game-lobby.nuxt.spec.ts(30,24): error TS2339: Property 'resetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(27,22): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(28,22): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(34,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(35,17): error TS2339: Property 'resetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(37,24): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(44,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(53,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(55,24): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(62,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(63,23): error TS2339: Property 'cancelGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(72,23): error TS2339: Property 'cancelGame' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(74,24): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(83,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(93,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(95,24): error TS2339: Property 'game' does not exist on type 'Store'.\n", "status": "CompileError", "static": true, "coveredBy": [ @@ -15946,19 +16095,22 @@ "136", "137", "138", - "147", - "148", - "149", + "139", + "140", + "141", "150", "151", "152", "153", "154", - "205", - "241", - "242", - "243", - "247" + "155", + "156", + "157", + "208", + "244", + "245", + "246", + "252" ], "location": { "end": { @@ -15972,10 +16124,10 @@ } }, { - "id": "468", + "id": "475", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(18,59): error TS2345: Argument of type '\"\"' is not assignable to parameter of type 'AsyncDataRequestStatus'.\n", + "statusReason": "stores/game/useGameStore.ts(17,58): error TS2345: Argument of type '\"\"' is not assignable to parameter of type 'AsyncDataRequestStatus'.\n", "status": "CompileError", "static": true, "coveredBy": [ @@ -15997,36 +16149,39 @@ "136", "137", "138", - "147", - "148", - "149", + "139", + "140", + "141", "150", "151", "152", "153", "154", - "205", - "241", - "242", - "243", - "247" + "155", + "156", + "157", + "208", + "244", + "245", + "246", + "252" ], "location": { "end": { - "column": 65, - "line": 18 + "column": 64, + "line": 17 }, "start": { - "column": 59, - "line": 18 + "column": 58, + "line": 17 } } }, { - "id": "467", + "id": "476", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(17,58): error TS2345: Argument of type '\"\"' is not assignable to parameter of type 'AsyncDataRequestStatus'.\n", + "statusReason": "stores/game/useGameStore.ts(18,59): error TS2345: Argument of type '\"\"' is not assignable to parameter of type 'AsyncDataRequestStatus'.\n", "status": "CompileError", "static": true, "coveredBy": [ @@ -16048,33 +16203,36 @@ "136", "137", "138", - "147", - "148", - "149", + "139", + "140", + "141", "150", "151", "152", "153", "154", - "205", - "241", - "242", - "243", - "247" + "155", + "156", + "157", + "208", + "244", + "245", + "246", + "252" ], "location": { "end": { - "column": 64, - "line": 17 + "column": 65, + "line": 18 }, "start": { - "column": 58, - "line": 17 + "column": 59, + "line": 18 } } }, { - "id": "469", + "id": "477", "mutatorName": "StringLiteral", "replacement": "\"\"", "statusReason": "stores/game/useGameStore.ts(19,60): error TS2345: Argument of type '\"\"' is not assignable to parameter of type 'AsyncDataRequestStatus'.\n", @@ -16099,19 +16257,22 @@ "136", "137", "138", - "147", - "148", - "149", + "139", + "140", + "141", "150", "151", "152", "153", "154", - "205", - "241", - "242", - "243", - "247" + "155", + "156", + "157", + "208", + "244", + "245", + "246", + "252" ], "location": { "end": { @@ -16125,614 +16286,817 @@ } }, { - "id": "472", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(26,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", - "status": "CompileError", - "static": false, - "coveredBy": [ - "149", - "150" - ], - "location": { - "end": { - "column": 41, - "line": 26 - }, - "start": { - "column": 32, - "line": 26 - } - } - }, - { - "id": "473", - "mutatorName": "BooleanLiteral", - "replacement": "fetchedGame", - "statusReason": "stores/game/useGameStore.ts(33,5): error TS2322: Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "id": "503", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "tests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(101,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(109,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(136,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(164,13): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(191,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(195,24): error TS2339: Property 'cancelGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(42,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(55,74): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(56,74): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(57,74): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(58,74): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(64,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(77,74): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(78,74): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts(79,74): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(27,15): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(39,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(47,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(63,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(71,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(72,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(80,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(89,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(90,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game-lobby/game-lobby.nuxt.spec.ts(30,24): error TS2339: Property 'resetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(27,22): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(28,22): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(34,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(35,17): error TS2339: Property 'resetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(37,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(44,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(53,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(55,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(62,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(63,23): error TS2339: Property 'cancelGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(72,23): error TS2339: Property 'cancelGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(74,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(83,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(93,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(95,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", "status": "CompileError", - "static": false, + "static": true, "coveredBy": [ - "149", - "150" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "150", + "151", + "152", + "153", + "154", + "155", + "156", + "157", + "208", + "244", + "245", + "246", + "252" ], "location": { "end": { - "column": 21, - "line": 28 + "column": 4, + "line": 69 }, "start": { - "column": 9, - "line": 28 + "column": 10, + "line": 60 } } - }, + } + ], + "source": "import type { AsyncDataRequestStatus } from \"#app/composables/asyncData\";\nimport { defineStore } from \"pinia\";\n\nimport type { MakeGamePlayDto } from \"~/composables/api/game/dto/make-game-play/make-game-play.dto\";\nimport { Game } from \"~/composables/api/game/types/game.class\";\nimport { useFetchGames } from \"~/composables/api/game/useFetchGames\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useGameStore = defineStore(StoreIds.GAME, () => {\n const {\n getGame: fetchGameFromApi,\n cancelGame: cancelGameFromApi,\n makeGamePlay: makeGamePlayFromApi,\n } = useFetchGames();\n\n const game = ref(new Game());\n const fetchingGameStatus = ref(\"idle\");\n const cancelingGameStatus = ref(\"idle\");\n const makingGamePlayStatus = ref(\"idle\");\n\n function resetGame(): void {\n game.value = new Game();\n }\n\n async function fetchAndSetGame(gameId: string): Promise {\n fetchingGameStatus.value = \"pending\";\n const fetchedGame = await fetchGameFromApi(gameId);\n if (!fetchedGame) {\n fetchingGameStatus.value = \"error\";\n\n return;\n }\n game.value = fetchedGame;\n fetchingGameStatus.value = \"success\";\n }\n\n async function cancelGame(): Promise {\n cancelingGameStatus.value = \"pending\";\n const canceledGame = await cancelGameFromApi(game.value._id);\n if (!canceledGame) {\n fetchingGameStatus.value = \"error\";\n\n return;\n }\n game.value = canceledGame;\n cancelingGameStatus.value = \"success\";\n }\n\n async function makeGamePlay(makeGamePlayDto: MakeGamePlayDto): Promise {\n makingGamePlayStatus.value = \"pending\";\n const playedGame = await makeGamePlayFromApi(game.value._id, makeGamePlayDto);\n if (!playedGame) {\n fetchingGameStatus.value = \"error\";\n\n return;\n }\n game.value = playedGame;\n makingGamePlayStatus.value = \"success\";\n }\n return {\n game,\n fetchingGameStatus,\n cancelingGameStatus,\n makingGamePlayStatus,\n resetGame,\n fetchAndSetGame,\n cancelGame,\n makeGamePlay,\n };\n});\n\nexport { useGameStore };" + }, + "stores/role/useRolesStore.ts": { + "language": "typescript", + "mutants": [ { - "id": "470", + "id": "504", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "expected _Game{ …(8) } to strictly equal _Game{ _id: undefined, …(7) }", - "status": "Killed", - "static": false, - "testsCompleted": 1, - "killedBy": [ - "148" - ], - "coveredBy": [ - "148" - ], - "location": { - "end": { - "column": 4, - "line": 23 - }, - "start": { - "column": 30, - "line": 21 - } - } - }, - { - "id": "475", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "stores/game/useGameStore.ts(33,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "statusReason": "tests/unit/specs/app.nuxt.spec.ts(29,23): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(49,20): error TS2339: Property 'roles' does not exist on type 'Store'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(79,20): error TS2339: Property 'roles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(28,23): error TS2339: Property 'roles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(29,23): error TS2339: Property 'fetchingRoleStatus' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(35,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(48,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(50,25): error TS2339: Property 'roles' does not exist on type 'Store'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "149", - "150" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "218", + "219", + "220", + "251", + "252", + "253" ], "location": { "end": { - "column": 21, - "line": 28 + "column": 2, + "line": 25 }, "start": { - "column": 9, - "line": 28 + "column": 57, + "line": 9 } } }, { - "id": "474", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "stores/game/useGameStore.ts(33,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "id": "505", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "stores/role/useRolesStore.ts(12,58): error TS2345: Argument of type '\"\"' is not assignable to parameter of type 'AsyncDataRequestStatus'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "149", - "150" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "218", + "219", + "220", + "251", + "252", + "253" ], "location": { "end": { - "column": 21, - "line": 28 + "column": 64, + "line": 12 }, "start": { - "column": 9, - "line": 28 + "column": 58, + "line": 12 } } }, { - "id": "471", + "id": "506", "mutatorName": "BlockStatement", "replacement": "{}", "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", "status": "Killed", - "static": false, "testsCompleted": 1, + "static": false, "killedBy": [ - "149" + "219" ], "coveredBy": [ - "149", - "150" + "219", + "220" ], "location": { "end": { "column": 4, - "line": 35 - }, - "start": { - "column": 65, - "line": 25 - } - } - }, - { - "id": "476", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "stores/game/useGameStore.ts(29,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", - "status": "CompileError", - "static": false, - "coveredBy": [ - "149" - ], - "location": { - "end": { - "column": 6, - "line": 32 + "line": 19 }, "start": { - "column": 23, - "line": 28 + "column": 52, + "line": 15 } } }, { - "id": "477", + "id": "507", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(29,7): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "statusReason": "stores/role/useRolesStore.ts(16,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "149" + "219", + "220" ], "location": { "end": { "column": 41, - "line": 29 + "line": 16 }, "start": { - "column": 34, - "line": 29 + "column": 32, + "line": 16 } } }, { - "id": "478", + "id": "508", "mutatorName": "StringLiteral", "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(34,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "statusReason": "stores/role/useRolesStore.ts(18,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", "status": "CompileError", "static": false, + "killedBy": [], "coveredBy": [ - "150" + "219", + "220" ], "location": { "end": { "column": 41, - "line": 34 + "line": 18 }, "start": { "column": 32, - "line": 34 + "line": 18 } } }, { - "id": "479", - "mutatorName": "BlockStatement", + "id": "509", + "mutatorName": "ObjectLiteral", "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", - "status": "Killed", + "statusReason": "tests/unit/specs/app.nuxt.spec.ts(29,23): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(49,20): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/pages/about/AboutAvailableRoles/AboutAvailableRoles.nuxt.spec.ts(79,20): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(28,23): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(29,23): error TS2339: Property 'fetchingRoleStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(35,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(48,24): error TS2339: Property 'fetchAndSetRoles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/role/useRolesStore.spec.ts(50,25): error TS2339: Property 'roles' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", + "status": "CompileError", "static": false, - "testsCompleted": 1, - "killedBy": [ - "151" - ], + "killedBy": [], "coveredBy": [ - "151", - "152" + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "218", + "219", + "220", + "251", + "252", + "253" ], "location": { "end": { "column": 4, - "line": 47 + "line": 24 }, "start": { - "column": 46, - "line": 37 + "column": 10, + "line": 20 } } - }, + } + ], + "source": "import type { AsyncDataRequestStatus } from \"#app/composables/asyncData\";\nimport { defineStore } from \"pinia\";\nimport { ref } from \"vue\";\n\nimport type { Role } from \"~/composables/api/role/types/role.class\";\nimport { useFetchRoles } from \"~/composables/api/role/useFetchRoles\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useRolesStore = defineStore(StoreIds.ROLES, () => {\n const { fetchRoles } = useFetchRoles();\n\n const fetchingRoleStatus = ref(\"idle\");\n const roles = ref(null);\n\n async function fetchAndSetRoles(): Promise {\n fetchingRoleStatus.value = \"pending\";\n roles.value = await fetchRoles();\n fetchingRoleStatus.value = \"success\";\n }\n return {\n roles,\n fetchingRoleStatus,\n fetchAndSetRoles,\n };\n});\n\nexport { useRolesStore };" + }, + "utils/url.utils.ts": { + "language": "typescript", + "mutants": [ { - "id": "480", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(38,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", - "status": "CompileError", - "static": false, + "id": "511", + "mutatorName": "Regex", + "replacement": "/\\/+/u", + "statusReason": "Snapshot `Role Image Component > should match snapshot when rendered. 1` mismatched", + "status": "Killed", + "testsCompleted": 1, + "static": true, + "killedBy": [ + "199" + ], "coveredBy": [ - "151", - "152" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "199", + "200", + "201", + "202", + "203", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264", + "275" ], "location": { "end": { - "column": 42, - "line": 38 + "column": 29, + "line": 2 }, "start": { - "column": 33, - "line": 38 + "column": 22, + "line": 2 } } }, { - "id": "481", - "mutatorName": "BooleanLiteral", - "replacement": "canceledGame", - "statusReason": "stores/game/useGameStore.ts(45,5): error TS2322: Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", - "status": "CompileError", - "static": false, + "id": "512", + "mutatorName": "Regex", + "replacement": "/\\/$/u", + "statusReason": "expected 'https://example.com//' to be 'https://example.com' // Object.is equality", + "status": "Killed", + "testsCompleted": 41, + "static": true, + "killedBy": [ + "275" + ], "coveredBy": [ - "151", - "152" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "199", + "200", + "201", + "202", + "203", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264", + "275" ], "location": { "end": { - "column": 22, - "line": 40 + "column": 29, + "line": 2 }, "start": { - "column": 9, - "line": 40 - } - } - }, - { - "id": "483", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "stores/game/useGameStore.ts(45,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", - "status": "CompileError", - "static": false, - "coveredBy": [ - "151", - "152" - ], - "location": { - "end": { "column": 22, - "line": 40 - }, - "start": { - "column": 9, - "line": 40 + "line": 2 } } }, { - "id": "482", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "stores/game/useGameStore.ts(45,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", - "status": "CompileError", - "static": false, + "id": "513", + "mutatorName": "StringLiteral", + "replacement": "\"Stryker was here!\"", + "statusReason": "expected 'https://example.comStryker was here!' to be 'https://example.com' // Object.is equality", + "status": "Killed", + "testsCompleted": 41, + "static": true, + "killedBy": [ + "275" + ], "coveredBy": [ - "151", - "152" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "199", + "200", + "201", + "202", + "203", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264", + "275" ], "location": { "end": { - "column": 22, - "line": 40 + "column": 33, + "line": 2 }, "start": { - "column": 9, - "line": 40 + "column": 31, + "line": 2 } } }, { - "id": "484", + "id": "510", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "stores/game/useGameStore.ts(41,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "statusReason": "utils/url.utils.ts(1,46): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", - "static": false, + "static": true, "coveredBy": [ - "151" + "66", + "67", + "68", + "69", + "70", + "71", + "72", + "73", + "74", + "86", + "87", + "88", + "89", + "90", + "91", + "92", + "93", + "94", + "95", + "130", + "131", + "132", + "133", + "134", + "135", + "136", + "137", + "138", + "139", + "140", + "141", + "199", + "200", + "201", + "202", + "203", + "208", + "244", + "245", + "246", + "251", + "252", + "253", + "264", + "275" ], "location": { "end": { - "column": 6, - "line": 44 + "column": 2, + "line": 3 }, "start": { - "column": 24, - "line": 40 + "column": 53, + "line": 1 } } - }, + } + ], + "source": "function removeTrailingSlashes(url: string): string {\n return url.replace(/\\/+$/u, \"\");\n}\n\nexport { removeTrailingSlashes };" + }, + "components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.vue": { + "language": "html", + "mutants": [ { - "id": "485", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(41,7): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", - "status": "CompileError", + "id": "56", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected [] to have a length of 4 but got +0", + "status": "Killed", "static": false, - "coveredBy": [ - "151" + "testsCompleted": 2, + "killedBy": [ + "131" ], - "location": { - "end": { - "column": 41, - "line": 41 - }, - "start": { - "column": 34, - "line": 41 - } - } - }, - { - "id": "486", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(46,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", - "status": "CompileError", - "static": false, "coveredBy": [ - "152" + "130", + "131", + "132" ], "location": { "end": { - "column": 42, - "line": 46 + "column": 116, + "line": 24 }, "start": { - "column": 33, - "line": 46 + "column": 72, + "line": 24 } } }, { - "id": "487", - "mutatorName": "BlockStatement", - "replacement": "{}", - "statusReason": "expect(received).toHaveBeenCalledExactlyOnceWith(expected)\n\nExpected mock function to have been called exactly once, but it was called 0 times", + "id": "57", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "expected [ VueWrapper{ …(7) }, …(4) ] to have a length of 4 but got 5", "status": "Killed", "static": false, "testsCompleted": 1, "killedBy": [ - "153" + "131" ], "coveredBy": [ - "153", - "154" + "131", + "132" ], "location": { "end": { - "column": 4, - "line": 59 + "column": 116, + "line": 24 }, "start": { - "column": 80, - "line": 49 + "column": 82, + "line": 24 } } }, { - "id": "488", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(50,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", - "status": "CompileError", + "id": "55", + "mutatorName": "MethodExpression", + "replacement": "game.value.players", + "statusReason": "expected [ VueWrapper{ …(7) }, …(4) ] to have a length of 4 but got 5", + "status": "Killed", "static": false, + "testsCompleted": 2, + "killedBy": [ + "131" + ], "coveredBy": [ - "153", - "154" + "130", + "131", + "132" ], "location": { "end": { - "column": 43, - "line": 50 + "column": 117, + "line": 24 }, "start": { - "column": 34, - "line": 50 + "column": 46, + "line": 24 } } }, { - "id": "490", - "mutatorName": "ConditionalExpression", - "replacement": "true", - "statusReason": "stores/game/useGameStore.ts(57,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", - "status": "CompileError", + "id": "54", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "expected [] to have a length of 4 but got +0", + "status": "Killed", "static": false, + "testsCompleted": 2, + "killedBy": [ + "131" + ], "coveredBy": [ - "153", - "154" + "130", + "131", + "132" ], "location": { "end": { - "column": 20, - "line": 52 + "column": 117, + "line": 24 }, "start": { - "column": 9, - "line": 52 + "column": 40, + "line": 24 } } }, { - "id": "489", - "mutatorName": "BooleanLiteral", - "replacement": "playedGame", - "statusReason": "stores/game/useGameStore.ts(57,5): error TS2322: Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", - "status": "CompileError", + "id": "58", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "expected [] to have a length of 4 but got +0", + "status": "Killed", "static": false, + "testsCompleted": 1, + "killedBy": [ + "131" + ], "coveredBy": [ - "153", - "154" + "131", + "132" ], "location": { "end": { - "column": 20, - "line": 52 + "column": 116, + "line": 24 }, "start": { - "column": 9, - "line": 52 + "column": 82, + "line": 24 } } }, { - "id": "491", - "mutatorName": "ConditionalExpression", - "replacement": "false", - "statusReason": "stores/game/useGameStore.ts(57,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", - "status": "CompileError", + "id": "59", + "mutatorName": "EqualityOperator", + "replacement": "player.side.current !== props.side", + "statusReason": "expected [ VueWrapper{ …(7) } ] to have a length of 4 but got 1", + "status": "Killed", "static": false, + "testsCompleted": 1, + "killedBy": [ + "131" + ], "coveredBy": [ - "153", - "154" + "131", + "132" ], "location": { "end": { - "column": 20, - "line": 52 + "column": 116, + "line": 24 }, "start": { - "column": 9, - "line": 52 + "column": 82, + "line": 24 } } - }, + } + ], + "source": "\n\n" + }, + "composables/api/game/types/players/player-role/player-side.class.ts": { + "language": "typescript", + "mutants": [ { - "id": "493", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(53,7): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "id": "218", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/types/players/player-role/player-side.class.ts(13,52): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", - "static": false, + "static": true, "coveredBy": [ - "153" + "250", + "263" ], "location": { "end": { - "column": 41, - "line": 53 + "column": 4, + "line": 15 }, "start": { - "column": 34, - "line": 53 + "column": 63, + "line": 13 } } - }, + } + ], + "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass PlayerSide {\n @Expose()\n public original: RoleSides;\n\n @Expose()\n public current: RoleSides;\n\n public static create(side: Partial): PlayerSide {\n return plainToInstance(PlayerSide, side, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { PlayerSide };" + }, + "composables/api/game/types/game.class.ts": { + "language": "typescript", + "mutants": [ { - "id": "492", + "id": "216", "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "stores/game/useGameStore.ts(53,5): error TS2322: Type 'Game | null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n Type 'null' is not assignable to type '{ _id: string; turn: number; phase: \"day\" | \"night\"; tick: number; status: \"playing\" | \"over\" | \"canceled\"; players: { _id: string; name: string; }[]; createdAt: { toString: () => string; toDateString: () => string; ... 42 more ...; [Symbol.toPrimitive]: { ...; }; }; updatedAt: { ...; }; }'.\n", + "statusReason": "composables/api/game/types/game.class.ts(34,37): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", - "static": false, + "static": true, "coveredBy": [ - "153" + "69", + "71", + "72", + "73", + "81", + "82", + "131", + "132", + "151", + "153", + "155", + "157", + "256" ], "location": { "end": { - "column": 6, - "line": 56 + "column": 4, + "line": 36 }, "start": { - "column": 22, - "line": 52 + "column": 42, + "line": 34 } } - }, + } + ], + "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { GamePhase, GameStatus } from \"~/composables/api/game/types/game.types\";\nimport { Player } from \"~/composables/api/game/types/players/player.class\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass Game {\n @Expose()\n public _id: string;\n\n @Expose()\n public turn: number;\n\n @Expose()\n public phase: GamePhase;\n\n @Expose()\n public tick: number;\n\n @Expose()\n public status: GameStatus;\n\n @Type(() => Player)\n @Expose()\n public players: Player[];\n\n @Expose()\n public createdAt: Date;\n\n @Expose()\n public updatedAt: Date;\n\n public static create(game: Game): Game {\n return plainToInstance(Game, game, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { Game };" + }, + "composables/api/game/types/players/player-role/player-role.class.ts": { + "language": "typescript", + "mutants": [ { - "id": "494", - "mutatorName": "StringLiteral", - "replacement": "\"\"", - "statusReason": "stores/game/useGameStore.ts(58,5): error TS2322: Type '\"\"' is not assignable to type 'AsyncDataRequestStatus'.\n", + "id": "217", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "composables/api/game/types/players/player-role/player-role.class.ts(16,52): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", "static": false, "coveredBy": [ - "154" + "250", + "262" ], "location": { "end": { - "column": 43, - "line": 58 + "column": 4, + "line": 18 }, "start": { - "column": 34, - "line": 58 + "column": 63, + "line": 16 } } - }, + } + ], + "source": "import { Expose, plainToInstance } from \"class-transformer\";\n\nimport { RoleNames } from \"~/composables/api/role/enums/role.enums\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass PlayerRole {\n @Expose()\n public original: RoleNames;\n\n @Expose()\n public current: RoleNames;\n\n @Expose()\n public isRevealed: boolean;\n\n public static create(role: Partial): PlayerRole {\n return plainToInstance(PlayerRole, role, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { PlayerRole };" + }, + "composables/api/game/types/players/player.class.ts": { + "language": "typescript", + "mutants": [ { - "id": "495", - "mutatorName": "ObjectLiteral", + "id": "219", + "mutatorName": "BlockStatement", "replacement": "{}", - "statusReason": "tests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(101,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(109,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(136,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(164,13): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(191,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/components/layouts/default/ParametersMenu/ParametersMenu.nuxt.spec.ts(195,24): error TS2339: Property 'cancelGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(27,15): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(39,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(47,22): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(63,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(71,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(72,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(80,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(89,17): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game/game-page.nuxt.spec.ts(90,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/pages/game-lobby/game-lobby.nuxt.spec.ts(30,24): error TS2339: Property 'resetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(27,22): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(28,22): error TS2339: Property 'fetchingGameStatus' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(34,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(35,17): error TS2339: Property 'resetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(37,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(44,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(53,23): error TS2339: Property 'fetchAndSetGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(55,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(62,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(63,23): error TS2339: Property 'cancelGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(72,23): error TS2339: Property 'cancelGame' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(74,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(81,17): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(83,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(93,23): error TS2339: Property 'makeGamePlay' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\ntests/unit/specs/stores/game/useGameStore.spec.ts(95,24): error TS2339: Property 'game' does not exist on type 'Store>, Pick<{}, never>, Pick<{}, never>>'.\n", + "statusReason": "composables/api/game/types/players/player.class.ts(25,41): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", "status": "CompileError", "static": true, "coveredBy": [ - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "73", - "74", - "130", "131", "132", - "133", - "134", - "135", - "136", - "137", - "138", - "147", - "148", - "149", - "150", - "151", - "152", - "153", - "154", - "205", - "241", - "242", - "243", - "247" + "250" ], "location": { "end": { "column": 4, - "line": 69 + "line": 27 }, "start": { - "column": 10, - "line": 60 + "column": 48, + "line": 25 } } } ], - "source": "import type { AsyncDataRequestStatus } from \"#app/composables/asyncData\";\nimport { defineStore } from \"pinia\";\n\nimport type { MakeGamePlayDto } from \"~/composables/api/game/dto/make-game-play/make-game-play.dto\";\nimport { Game } from \"~/composables/api/game/types/game.class\";\nimport { useFetchGames } from \"~/composables/api/game/useFetchGames\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\n\nconst useGameStore = defineStore(StoreIds.GAME, () => {\n const {\n getGame: fetchGameFromApi,\n cancelGame: cancelGameFromApi,\n makeGamePlay: makeGamePlayFromApi,\n } = useFetchGames();\n\n const game = ref(new Game());\n const fetchingGameStatus = ref(\"idle\");\n const cancelingGameStatus = ref(\"idle\");\n const makingGamePlayStatus = ref(\"idle\");\n\n function resetGame(): void {\n game.value = new Game();\n }\n\n async function fetchAndSetGame(gameId: string): Promise {\n fetchingGameStatus.value = \"pending\";\n const fetchedGame = await fetchGameFromApi(gameId);\n if (!fetchedGame) {\n fetchingGameStatus.value = \"error\";\n\n return;\n }\n game.value = fetchedGame;\n fetchingGameStatus.value = \"success\";\n }\n\n async function cancelGame(): Promise {\n cancelingGameStatus.value = \"pending\";\n const canceledGame = await cancelGameFromApi(game.value._id);\n if (!canceledGame) {\n fetchingGameStatus.value = \"error\";\n\n return;\n }\n game.value = canceledGame;\n cancelingGameStatus.value = \"success\";\n }\n\n async function makeGamePlay(makeGamePlayDto: MakeGamePlayDto): Promise {\n makingGamePlayStatus.value = \"pending\";\n const playedGame = await makeGamePlayFromApi(game.value._id, makeGamePlayDto);\n if (!playedGame) {\n fetchingGameStatus.value = \"error\";\n\n return;\n }\n game.value = playedGame;\n makingGamePlayStatus.value = \"success\";\n }\n return {\n game,\n fetchingGameStatus,\n cancelingGameStatus,\n makingGamePlayStatus,\n resetGame,\n fetchAndSetGame,\n cancelGame,\n makeGamePlay,\n };\n});\n\nexport { useGameStore };" + "source": "import { Expose, plainToInstance, Type } from \"class-transformer\";\n\nimport { PlayerRole } from \"~/composables/api/game/types/players/player-role/player-role.class\";\nimport { PlayerSide } from \"~/composables/api/game/types/players/player-role/player-side.class\";\nimport { DEFAULT_PLAIN_TO_INSTANCE_OPTIONS } from \"~/utils/constants/class-transformer.constants\";\n\nclass Player {\n @Expose()\n public _id: string;\n\n @Expose()\n public name: string;\n\n @Expose()\n @Type(() => PlayerRole)\n public role: PlayerRole;\n\n @Expose()\n @Type(() => PlayerSide)\n public side: PlayerSide;\n\n @Expose()\n public isAlive: boolean;\n\n public static create(player: Player): Player {\n return plainToInstance(Player, player, DEFAULT_PLAIN_TO_INSTANCE_OPTIONS);\n }\n}\n\nexport { Player };" } }, "schemaVersion": "1.0", @@ -17317,42 +17681,59 @@ ], "source": "import type { mount } from \"@vue/test-utils\";\n\nimport type { AboutAvailableRoleDescriptionProps } from \"~/components/pages/about/AboutAvailableRoles/AboutAvailableRoleDescription/about-available-role-description.types\";\nimport AboutAvailableRoleDescription from \"~/components/pages/about/AboutAvailableRoles/AboutAvailableRoleDescription/AboutAvailableRoleDescription.vue\";\nimport type RoleImage from \"~/components/shared/role/RoleImage/RoleImage.vue\";\nimport type RoleOriginBadge from \"~/components/shared/role/RoleOriginBadge/RoleOriginBadge.vue\";\nimport type RoleTypeBadge from \"~/components/shared/role/RoleTypeBadge/RoleTypeBadge.vue\";\nimport { RoleNames, RoleOrigins, RoleTypes } from \"~/composables/api/role/enums/role.enums\";\nimport type { Role } from \"~/composables/api/role/types/role.class\";\nimport { createFakeRole } from \"~/tests/unit/utils/factories/composables/api/role/role.factory\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"About Available Role Description Component\", () => {\n let wrapper: ReturnType>;\n const defaultRole: Role = createFakeRole({\n name: RoleNames.WEREWOLF,\n type: RoleTypes.WEREWOLF,\n origin: RoleOrigins.CLASSIC,\n });\n const defaultProps: AboutAvailableRoleDescriptionProps = { role: defaultRole };\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(AboutAvailableRoleDescription, { props: defaultProps });\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n describe(\"Role Left Description\", () => {\n describe(\"Role Image\", () => {\n it(\"should display role image when rendered.\", () => {\n const roleImage = wrapper.findComponent(\".available-role-description-role-image\");\n\n expect(roleImage.props(\"roleName\")).toBe(RoleNames.WEREWOLF);\n });\n\n it(\"should display role image with correct alt when rendered.\", () => {\n const roleImage = wrapper.find(\".available-role-description-role-image\");\n\n expect(roleImage.attributes(\"alt\")).toBe(\"components.AboutAvailableRoleDescription.roleDescriptionLeftImageAlt, {\\\"role\\\":\\\"shared.role.name.werewolf\\\"}\");\n });\n });\n\n it(\"should display role name when rendered.\", () => {\n const roleName = wrapper.find(\".available-role-description-role-name\");\n\n expect(roleName.text()).toBe(\"shared.role.name.werewolf\");\n });\n\n it(\"should display role type badge when rendered.\", () => {\n const roleTypeBadge = wrapper.findComponent(\".available-role-description-role-type-badge\");\n\n expect(roleTypeBadge.props(\"roleType\")).toBe(RoleTypes.WEREWOLF);\n });\n\n it(\"should display role origin badge when rendered.\", () => {\n const roleOriginBadge = wrapper.findComponent(\".available-role-description-role-origin-badge\");\n\n expect(roleOriginBadge.props(\"roleOrigin\")).toBe(RoleOrigins.CLASSIC);\n });\n });\n\n describe(\"Role Right Description\", () => {\n it(\"should display role description lines when rendered.\", () => {\n const roleDescriptionLines = wrapper.findAll(\".available-role-description-role-description-line\");\n\n expect(roleDescriptionLines).toHaveLength(4);\n expect(roleDescriptionLines[0].text()).toBe(\"components.AboutAvailableRoleDescription.descriptions.werewolf.hisGoalIsToKillVillagers\");\n expect(roleDescriptionLines[1].text()).toBe(\"components.AboutAvailableRoleDescription.descriptions.werewolf.eachNightEatsVillager\");\n expect(roleDescriptionLines[2].text()).toBe(\"components.AboutAvailableRoleDescription.descriptions.werewolf.numberOfWolvesVaries\");\n expect(roleDescriptionLines[3].text()).toBe(\"components.AboutAvailableRoleDescription.descriptions.werewolf.werewolvesCantEatEachOther\");\n });\n\n it(\"should not display role description lines when rendered if role description is not set in messages.\", async() => {\n const unknownRole = createFakeRole({ name: \"unknown\" as RoleNames });\n wrapper = await mountSuspendedComponent(AboutAvailableRoleDescription, { props: { role: unknownRole } });\n const roleDescriptionLines = wrapper.findAll(\".available-role-description-role-description-line\");\n\n expect(roleDescriptionLines).toHaveLength(0);\n });\n });\n});" }, - "tests/unit/specs/pages/game/game-page.nuxt.spec.ts": { + "tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts": { "tests": [ { "id": "130", - "name": "Game Page should match snapshot when rendered." + "name": "Game Team Side Component should match snapshot when rendered." }, { "id": "131", - "name": "Game Page should fetch and set game in store when rendered with valid game id as string." + "name": "Game Team Side Component Game Team Side Players should render the werewolves players when the side is werewolves." }, { "id": "132", + "name": "Game Team Side Component Game Team Side Players should render the villagers players when the side is villagers." + } + ], + "source": "import { createTestingPinia } from \"@pinia/testing\";\nimport type { mount } from \"@vue/test-utils\";\nimport type { ComponentMountingOptions } from \"@vue/test-utils/dist/mount\";\n\nimport type { GameTeamSideProps } from \"~/components/pages/game/GamePlaying/GameTeamSide/game-team-side.types\";\nimport GameTeamSide from \"~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.vue\";\nimport GameTeamSidePlayer from \"~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue\";\nimport type { Player } from \"~/composables/api/game/types/players/player.class\";\nimport { RoleSides } from \"~/composables/api/role/enums/role.enums\";\nimport { StoreIds } from \"~/stores/enums/store.enum\";\nimport { useGameStore } from \"~/stores/game/useGameStore\";\nimport { createFakeGame } from \"~/tests/unit/utils/factories/composables/api/game/game.factory\";\nimport { createFakeAccursedWolfFatherAlivePlayer, createFakeBigBadWolfAlivePlayer, createFakeHunterAlivePlayer, createFakeSeerAlivePlayer, createFakeVillagerAlivePlayer, createFakeWerewolfAlivePlayer, createFakeWhiteWerewolfAlivePlayer } from \"~/tests/unit/utils/factories/composables/api/game/player/player-with-role.factory\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Team Side Component\", () => {\n let wrapper: ReturnType>;\n const defaultProps: GameTeamSideProps = { side: RoleSides.VILLAGERS };\n const testingPinia = { initialState: { [StoreIds.GAME]: { game: createFakeGame() } } };\n\n async function mountGameTeamSideComponent(options: ComponentMountingOptions = {}): Promise>> {\n return mountSuspendedComponent(GameTeamSide, {\n props: options.props ?? defaultProps,\n global: { plugins: [createTestingPinia(testingPinia)] },\n ...options,\n });\n }\n\n beforeEach(async() => {\n wrapper = await mountGameTeamSideComponent();\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n describe(\"Game Team Side Players\", () => {\n it(\"should render the werewolves players when the side is werewolves.\", async() => {\n wrapper = await mountGameTeamSideComponent({ props: { side: RoleSides.WEREWOLVES } });\n const gameStore = useGameStore();\n gameStore.game = createFakeGame({\n players: [\n createFakeWerewolfAlivePlayer(),\n createFakeBigBadWolfAlivePlayer(),\n createFakeVillagerAlivePlayer(),\n createFakeAccursedWolfFatherAlivePlayer(),\n createFakeWhiteWerewolfAlivePlayer(),\n ],\n });\n await nextTick();\n const players = wrapper.findAllComponents(GameTeamSidePlayer);\n\n expect(players).toHaveLength(4);\n expect(players[0].props(\"player\")).toStrictEqual(gameStore.game.players[0]);\n expect(players[1].props(\"player\")).toStrictEqual(gameStore.game.players[1]);\n expect(players[2].props(\"player\")).toStrictEqual(gameStore.game.players[3]);\n expect(players[3].props(\"player\")).toStrictEqual(gameStore.game.players[4]);\n });\n\n it(\"should render the villagers players when the side is villagers.\", async() => {\n wrapper = await mountGameTeamSideComponent({ props: { side: RoleSides.VILLAGERS } });\n const gameStore = useGameStore();\n gameStore.game = createFakeGame({\n players: [\n createFakeWerewolfAlivePlayer(),\n createFakeSeerAlivePlayer(),\n createFakeVillagerAlivePlayer(),\n createFakeAccursedWolfFatherAlivePlayer(),\n createFakeHunterAlivePlayer(),\n ],\n });\n await nextTick();\n const players = wrapper.findAllComponents(GameTeamSidePlayer);\n\n expect(players).toHaveLength(3);\n expect(players[0].props(\"player\")).toStrictEqual(gameStore.game.players[1]);\n expect(players[1].props(\"player\")).toStrictEqual(gameStore.game.players[2]);\n expect(players[2].props(\"player\")).toStrictEqual(gameStore.game.players[4]);\n });\n });\n});" + }, + "tests/unit/specs/pages/game/game-page.nuxt.spec.ts": { + "tests": [ + { + "id": "133", + "name": "Game Page should match snapshot when rendered." + }, + { + "id": "134", + "name": "Game Page should fetch and set game in store when rendered with valid game id as string." + }, + { + "id": "135", "name": "Game Page should fetch and set game in store when rendered with valid game id as array of strings." }, { - "id": "133", + "id": "136", "name": "Game Page Game Status Containers should render game is loading container when game fetching status is pending." }, { - "id": "134", + "id": "137", "name": "Game Page Game Status Containers should render loading game spinner with text when game fetching status is pending." }, { - "id": "135", + "id": "138", "name": "Game Page Game Status Containers should render game not found when game fetching status is error." }, { - "id": "136", + "id": "139", "name": "Game Page Game Status Containers should render playing game when game fetching status is success and game status is playing." }, { - "id": "137", + "id": "140", "name": "Game Page Game Status Containers should render game over when game fetching status is success and game status is over." }, { - "id": "138", + "id": "141", "name": "Game Page Game Status Containers should render game canceled when game fetching status is success and game status is canceled." } ], @@ -17361,35 +17742,35 @@ "tests/unit/specs/composables/api/game/useFetchGames.spec.ts": { "tests": [ { - "id": "139", + "id": "142", "name": "Use Fetch Game Composable createGame should create game when called." }, { - "id": "140", + "id": "143", "name": "Use Fetch Game Composable createGame should return null when create game throws." }, { - "id": "141", + "id": "144", "name": "Use Fetch Game Composable getGame should get game when called." }, { - "id": "142", + "id": "145", "name": "Use Fetch Game Composable getGame should return null when get game throws." }, { - "id": "143", + "id": "146", "name": "Use Fetch Game Composable cancelGame should cancel game when called." }, { - "id": "144", + "id": "147", "name": "Use Fetch Game Composable cancelGame should return null when cancel game throws." }, { - "id": "145", + "id": "148", "name": "Use Fetch Game Composable makeGamePlay should make game play when called." }, { - "id": "146", + "id": "149", "name": "Use Fetch Game Composable makeGamePlay should return null when make game play throws." } ], @@ -17398,35 +17779,35 @@ "tests/unit/specs/stores/game/useGameStore.spec.ts": { "tests": [ { - "id": "147", + "id": "150", "name": "Game Store should have initial state when created." }, { - "id": "148", + "id": "151", "name": "Game Store resetGame should reset game when called." }, { - "id": "149", + "id": "152", "name": "Game Store fetchAndSetGame should fetch game when called." }, { - "id": "150", + "id": "153", "name": "Game Store fetchAndSetGame should set game when called." }, { - "id": "151", + "id": "154", "name": "Game Store cancelGame should cancel game when called." }, { - "id": "152", + "id": "155", "name": "Game Store cancelGame should set game when called." }, { - "id": "153", + "id": "156", "name": "Game Store makeGamePlay should make game play when called." }, { - "id": "154", + "id": "157", "name": "Game Store makeGamePlay should set game when called." } ], @@ -17435,23 +17816,23 @@ "tests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayerCard/GameLobbyPlayerCard.nuxt.spec.ts": { "tests": [ { - "id": "155", + "id": "158", "name": "Game Lobby Player Card Component should match snapshot when rendered." }, { - "id": "156", + "id": "159", "name": "Game Lobby Player Card Component Delete button should have translated tooltip with player name when rendered." }, { - "id": "157", + "id": "160", "name": "Game Lobby Player Card Component Delete button should remove player from party when clicked." }, { - "id": "158", + "id": "161", "name": "Game Lobby Player Card Component Role should translate role not selected when player doesn't have role yet." }, { - "id": "159", + "id": "162", "name": "Game Lobby Player Card Component Role should translate role when player has role." } ], @@ -17460,23 +17841,23 @@ "tests/unit/specs/composables/vue-prime/useVuePrimeToasts.spec.ts": { "tests": [ { - "id": "160", + "id": "163", "name": "Use Vue Prime Toasts Composable addToast should add a toast with default options when called." }, { - "id": "161", + "id": "164", "name": "Use Vue Prime Toasts Composable addSuccessToast should add a success toast with default options when called." }, { - "id": "162", + "id": "165", "name": "Use Vue Prime Toasts Composable addInfoToast should add an info toast with default options when called." }, { - "id": "163", + "id": "166", "name": "Use Vue Prime Toasts Composable addWarnToast should add a warn toast with default options when called." }, { - "id": "164", + "id": "167", "name": "Use Vue Prime Toasts Composable addErrorToast should add an error toast with default options when called." } ], @@ -17485,27 +17866,27 @@ "tests/unit/specs/components/shared/game/player/PlayerCard/PlayerCard.nuxt.spec.ts": { "tests": [ { - "id": "165", + "id": "168", "name": "Player Card Component should match snapshot when rendered." }, { - "id": "166", + "id": "169", "name": "Player Card Component Selector Button should render selector button without aria label when not provided in props." }, { - "id": "167", + "id": "170", "name": "Player Card Component Selector Button should emit playerCardSelectorClick event when clicked." }, { - "id": "168", + "id": "171", "name": "Player Card Component Selector Button should have tooltip with aria label as value when doesShowSelectorTooltip prop is true." }, { - "id": "169", + "id": "172", "name": "Player Card Component Selector Button should not have tooltip when doesShowSelectorTooltip prop is false." }, { - "id": "170", + "id": "173", "name": "Player Card Component Selector Button Role Image should render role image of player with correct alt when rendered." } ], @@ -17514,31 +17895,31 @@ "tests/unit/specs/components/shared/role/RoleTypeBadge/RoleTypeBadge.nuxt.spec.ts": { "tests": [ { - "id": "171", + "id": "174", "name": "Role Type Badge Component should match snapshot when rendered." }, { - "id": "172", + "id": "175", "name": "Role Type Badge Component Badge should have tooltip when rendered." }, { - "id": "173", + "id": "176", "name": "Role Type Badge Component Badge should translate role type when rendered." }, { - "id": "174", + "id": "177", "name": "Role Type Badge Component Badge 'should have severity of danger when r…'" }, { - "id": "175", + "id": "178", "name": "Role Type Badge Component Badge 'should have severity of success when …'" }, { - "id": "176", + "id": "179", "name": "Role Type Badge Component Badge 'should have severity of warning when …'" }, { - "id": "177", + "id": "180", "name": "Role Type Badge Component Badge 'should have severity of info when rol…'" } ], @@ -17547,31 +17928,31 @@ "tests/unit/specs/components/pages/about/AboutCreator/AboutCreator.nuxt.spec.ts": { "tests": [ { - "id": "178", + "id": "181", "name": "About Creator Component should match snapshot when rendered." }, { - "id": "179", + "id": "182", "name": "About Creator Component Title should translate title when rendered." }, { - "id": "180", + "id": "183", "name": "About Creator Component Sections should translate first section when rendered." }, { - "id": "181", + "id": "184", "name": "About Creator Component Sections should translate portfolio button when rendered." }, { - "id": "182", + "id": "185", "name": "About Creator Component Sections should translate second section when rendered." }, { - "id": "183", + "id": "186", "name": "About Creator Component Sections should translate third section when rendered." }, { - "id": "184", + "id": "187", "name": "About Creator Component Sections should translate fourth section when rendered." } ], @@ -17580,27 +17961,27 @@ "tests/unit/specs/components/pages/about/AboutWerewolvesGame/AboutWerewolvesGame.nuxt.spec.ts": { "tests": [ { - "id": "185", + "id": "188", "name": "About Werewolves Game Component should match snapshot when rendered." }, { - "id": "186", + "id": "189", "name": "About Werewolves Game Component Title should display translated title when rendered." }, { - "id": "187", + "id": "190", "name": "About Werewolves Game Component Watch tutorial on Youtube Anchor should have tooltip when rendered." }, { - "id": "188", + "id": "191", "name": "About Werewolves Game Component Watch tutorial on Youtube Anchor should have translated button when rendered." }, { - "id": "189", + "id": "192", "name": "About Werewolves Game Component Sections should translate first section when rendered." }, { - "id": "190", + "id": "193", "name": "About Werewolves Game Component Sections should translate second section when rendered." } ], @@ -17609,23 +17990,23 @@ "tests/unit/specs/components/pages/about/AboutHowToContribute/AboutHowToContribute.nuxt.spec.ts": { "tests": [ { - "id": "191", + "id": "194", "name": "About How To Contribute Component should match snapshot when rendered." }, { - "id": "192", + "id": "195", "name": "About How To Contribute Component Title should translate title when rendered." }, { - "id": "193", + "id": "196", "name": "About How To Contribute Component Sections should translate first section when rendered." }, { - "id": "194", + "id": "197", "name": "About How To Contribute Component Sections should translate second section for each bullet item when rendered." }, { - "id": "195", + "id": "198", "name": "About How To Contribute Component Sections should translate gitHub text button when rendered." } ], @@ -17634,23 +18015,23 @@ "tests/unit/specs/components/shared/role/RoleImage/RoleImage.nuxt.spec.ts": { "tests": [ { - "id": "196", + "id": "199", "name": "Role Image Component should match snapshot when rendered." }, { - "id": "197", + "id": "200", "name": "Role Image Component Image should have default width and height from props sizes when rendered." }, { - "id": "198", + "id": "201", "name": "Role Image Component Image should have back src when prop role image is undefined." }, { - "id": "199", + "id": "202", "name": "Role Image Component Image should have src based on role name from props when rendered." }, { - "id": "200", + "id": "203", "name": "Role Image Component Image should have small suffix for src when definition from props is small." } ], @@ -17659,23 +18040,23 @@ "tests/unit/specs/components/layouts/default/NavBar.nuxt.spec.ts": { "tests": [ { - "id": "201", + "id": "204", "name": "NavBar Component should match snapshot when rendered." }, { - "id": "202", + "id": "205", "name": "NavBar Component Home Page Link should have the prop 'to' set to home page when rendered." }, { - "id": "203", + "id": "206", "name": "NavBar Component Home Page Link Werewolves Assistant Logo should have the prop 'src' set to the small logo when rendered." }, { - "id": "204", + "id": "207", "name": "NavBar Component Home Page Link Werewolves Assistant Logo Text should translate the logo text when rendered." }, { - "id": "205", + "id": "208", "name": "NavBar Component Parameters Menu should have left tooltip when rendered." } ], @@ -17684,19 +18065,19 @@ "tests/unit/specs/components/pages/game-lobby/GameLobbyPlayersParty/GameLobbyPlayersParty.nuxt.spec.ts": { "tests": [ { - "id": "206", + "id": "209", "name": "Game Lobby Players Party Component should match snapshot when rendered." }, { - "id": "207", + "id": "210", "name": "Game Lobby Players Party Component Player Cards should render add player with input message when there are no players in the create game dto." }, { - "id": "208", + "id": "211", "name": "Game Lobby Players Party Component Player Cards should render no players in lobby when there are no players in the create game dto." }, { - "id": "209", + "id": "212", "name": "Game Lobby Players Party Component Player Cards should render 4 players cards when there are 4 players in the create game dto." } ], @@ -17705,11 +18086,11 @@ "tests/unit/specs/composables/api/error/useWerewolvesAssistantApiError.spec.ts": { "tests": [ { - "id": "210", + "id": "213", "name": "Use Werewolves Assistant Api Error Composable handleWerewolvesAssistantApiError should log error in console when called." }, { - "id": "211", + "id": "214", "name": "Use Werewolves Assistant Api Error Composable handleWerewolvesAssistantApiError should add error toast when called." } ], @@ -17718,15 +18099,15 @@ "tests/unit/specs/components/shared/role/RoleOriginBadge/RoleOriginBadge.nuxt.spec.ts": { "tests": [ { - "id": "212", + "id": "215", "name": "Role Origin Badge Component should match snapshot when rendered." }, { - "id": "213", + "id": "216", "name": "Role Origin Badge Component Badge should have tooltip when rendered." }, { - "id": "214", + "id": "217", "name": "Role Origin Badge Component Badge should translate role origin when rendered." } ], @@ -17735,15 +18116,15 @@ "tests/unit/specs/stores/role/useRolesStore.spec.ts": { "tests": [ { - "id": "215", + "id": "218", "name": "Roles Store should have initial state when created." }, { - "id": "216", + "id": "219", "name": "Roles Store fetchAndSetRoles should fetch roles when called." }, { - "id": "217", + "id": "220", "name": "Roles Store fetchAndSetRoles should set roles when called." } ], @@ -17752,15 +18133,15 @@ "tests/unit/specs/components/shared/external/GitHubRepositoryButton/GitHubRepositoryButton.nuxt.spec.ts": { "tests": [ { - "id": "218", + "id": "221", "name": "GitHub Repository Button should match snapshot when rendered." }, { - "id": "219", + "id": "222", "name": "GitHub Repository Button Button Text should render button text with other text when text is passed as prop." }, { - "id": "220", + "id": "223", "name": "GitHub Repository Button Button Text should render button text with default text when text is not passed as prop." } ], @@ -17769,19 +18150,19 @@ "tests/unit/specs/pages/index/index.nuxt.spec.ts": { "tests": [ { - "id": "221", + "id": "224", "name": "Index Page Component should match snapshot when rendered." }, { - "id": "222", + "id": "225", "name": "Index Page Component Title should display translated title when rendered." }, { - "id": "223", + "id": "226", "name": "Index Page Component Play button should display play button with translated label when rendered." }, { - "id": "224", + "id": "227", "name": "Index Page Component About button should display about button with translated label when rendered." } ], @@ -17790,7 +18171,7 @@ "tests/unit/specs/composables/api/game/useFetchRandomGameComposition.spec.ts": { "tests": [ { - "id": "225", + "id": "228", "name": "Use Fetch Random Game Composition fetchRandomGameComposition should fetch random game composition when called." } ], @@ -17799,7 +18180,7 @@ "tests/unit/specs/composables/api/game/dto/create-game/create-game-player/create-game-player.dto.spec.ts": { "tests": [ { - "id": "226", + "id": "229", "name": "Create Game Player Dto create should create a game player dto when called." } ], @@ -17808,15 +18189,15 @@ "tests/unit/specs/components/shared/misc/TextProgressSpinner/TextProgressSpinner.nuxt.spec.ts": { "tests": [ { - "id": "227", + "id": "230", "name": "Text Progress Spinner Component should match snapshot when rendered." }, { - "id": "228", + "id": "231", "name": "Text Progress Spinner Component Spinner should render spinner with aria label as text prop when rendered." }, { - "id": "229", + "id": "232", "name": "Text Progress Spinner Component Text should render text with value as text prop when rendered." } ], @@ -17825,11 +18206,11 @@ "tests/unit/specs/composables/api/role/useFetchRoles.spec.ts": { "tests": [ { - "id": "230", + "id": "233", "name": "Use Fetch Roles Composable fetchRoles should fetch roles when called." }, { - "id": "231", + "id": "234", "name": "Use Fetch Roles Composable fetchRoles should return null when fetch roles throws." } ], @@ -17838,15 +18219,15 @@ "tests/unit/specs/components/shared/buttons/CreateAnotherGameButton/CreateAnotherGameButton.nuxt.spec.ts": { "tests": [ { - "id": "232", + "id": "235", "name": "Create Another Game Button should match snapshot when rendered." }, { - "id": "233", + "id": "236", "name": "Create Another Game Button Button Navigation should have 'to' prop set to game lobby when rendered." }, { - "id": "234", + "id": "237", "name": "Create Another Game Button Button Text should translate button text when rendered." } ], @@ -17855,15 +18236,15 @@ "tests/unit/specs/components/shared/buttons/BackToHomeButton/BackToHomeButton.nuxt.spec.ts": { "tests": [ { - "id": "235", + "id": "238", "name": "Back To Home Button should match snapshot when rendered." }, { - "id": "236", + "id": "239", "name": "Back To Home Button Button Navigation should have 'to' prop set to home when rendered." }, { - "id": "237", + "id": "240", "name": "Back To Home Button Button Text should translate button text when rendered." } ], @@ -17872,15 +18253,15 @@ "tests/unit/specs/pages/about/about.nuxt.spec.ts": { "tests": [ { - "id": "238", + "id": "241", "name": "About Page Component should match snapshot when rendered." }, { - "id": "239", + "id": "242", "name": "About Page Component Title should display role image of werewolf when rendered." }, { - "id": "240", + "id": "243", "name": "About Page Component Title should display translated title when rendered." } ], @@ -17889,15 +18270,15 @@ "tests/unit/specs/pages/game-lobby/game-lobby.nuxt.spec.ts": { "tests": [ { - "id": "241", + "id": "244", "name": "Game Lobby Page should match snapshot when rendered." }, { - "id": "242", + "id": "245", "name": "Game Lobby Page Game Lobby Players Party should reset create game dto when rendered." }, { - "id": "243", + "id": "246", "name": "Game Lobby Page Game Lobby Players Party should reset game when rendered." } ], @@ -17906,28 +18287,46 @@ "tests/unit/specs/components/shared/external/BuyMeACoffeeButton/BuyMeACoffeeButton.nuxt.spec.ts": { "tests": [ { - "id": "244", + "id": "247", "name": "Buy Me A Coffee Button Component should match snapshot when rendered." }, { - "id": "245", + "id": "248", "name": "Buy Me A Coffee Button Component Link image should call link image with correct src when rendered." } ], "source": "import type { mount } from \"@vue/test-utils\";\n\nimport BuyMeACoffeeButton from \"~/components/shared/external/BuyMeACoffeeButton/BuyMeACoffeeButton.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Buy Me A Coffee Button Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(BuyMeACoffeeButton);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n describe(\"Link image\", () => {\n it(\"should call link image with correct src when rendered.\", () => {\n const linkImage = wrapper.find(\"[alt='Buy me a coffee']\");\n const expectedSrc = \"https://img.buymeacoffee.com/button-api/?\" +\n \"text=Buy%20me%20a%20coffee&slug=antoinezanardi&button_colour=46a6ff&font_colour=FFFFFF&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00\";\n\n expect(linkImage.attributes(\"src\")).toBe(expectedSrc);\n });\n });\n});" }, + "tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.nuxt.spec.ts": { + "tests": [ + { + "id": "249", + "name": "Game Team Side Player Component should match snapshot when rendered." + } + ], + "source": "import type { mount } from \"@vue/test-utils\";\n\nimport type { GameTeamSidePlayerProps } from \"~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/game-team-side-player.types\";\nimport GameTeamSidePlayer from \"~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue\";\nimport { createFakeWerewolfAlivePlayer } from \"~/tests/unit/utils/factories/composables/api/game/player/player-with-role.factory\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Team Side Player Component\", () => {\n let wrapper: ReturnType>;\n const defaultProps: GameTeamSidePlayerProps = { player: createFakeWerewolfAlivePlayer({ name: \"Antoine\" }) };\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(GameTeamSidePlayer, { props: defaultProps });\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n});" + }, + "tests/unit/specs/composables/api/game/player/player.class.spec.ts": { + "tests": [ + { + "id": "250", + "name": "Player Class create should create a player when called." + } + ], + "source": "import { Player } from \"~/composables/api/game/types/players/player.class\";\nimport { createFakePlayerRole } from \"~/tests/unit/utils/factories/composables/api/game/player/player-role/player-role.factory\";\nimport { createFakePlayerSide } from \"~/tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory\";\n\ndescribe(\"Player Class\", () => {\n describe(\"create\", () => {\n it(\"should create a player when called.\", () => {\n const role = createFakePlayerRole();\n const side = createFakePlayerSide();\n const createdPlayer = Player.create({\n _id: \"1\",\n name: \"Player 1\",\n isAlive: true,\n role,\n side,\n extra: \"Extra\",\n } as Player);\n const expectedPlayer = new Player();\n expectedPlayer._id = \"1\";\n expectedPlayer.name = \"Player 1\";\n expectedPlayer.isAlive = true;\n expectedPlayer.role = role;\n expectedPlayer.side = side;\n\n expect(createdPlayer).toStrictEqual(expectedPlayer);\n });\n });\n});" + }, "tests/unit/specs/app.nuxt.spec.ts": { "tests": [ { - "id": "246", + "id": "251", "name": "App Component should match snapshot when rendered." }, { - "id": "247", + "id": "252", "name": "App Component should render component without shallow and match snapshot when rendered." }, { - "id": "248", + "id": "253", "name": "App Component should fetch and set roles from store when rendered." } ], @@ -17936,7 +18335,7 @@ "tests/unit/specs/composables/api/game/dto/create-game/create-game-additional-card/create-game-additional-card.dto.spec.ts": { "tests": [ { - "id": "249", + "id": "254", "name": "Create Game Additional Card Dto create should create a game additional card dto when called." } ], @@ -17945,7 +18344,7 @@ "tests/unit/specs/composables/api/game/dto/create-game/create-game.dto.spec.ts": { "tests": [ { - "id": "250", + "id": "255", "name": "Create Game Dto create should create a game when called." } ], @@ -17954,7 +18353,7 @@ "tests/unit/specs/composables/api/game/game.class.spec.ts": { "tests": [ { - "id": "251", + "id": "256", "name": "Game Class create should create a game when called." } ], @@ -17963,11 +18362,11 @@ "tests/unit/specs/components/pages/game/GameNotFound/GameNotFound.nuxt.spec.ts": { "tests": [ { - "id": "252", + "id": "257", "name": "Game Not Found Component should match snapshot when rendered." }, { - "id": "253", + "id": "258", "name": "Game Not Found Component Game not found text should translate game not found text when rendered." } ], @@ -17976,7 +18375,7 @@ "tests/unit/specs/composables/api/role/useRoleName.spec.ts": { "tests": [ { - "id": "254", + "id": "259", "name": "Use Role Name Composable getRoleLabel should translate role when called with role name." } ], @@ -17985,38 +18384,92 @@ "tests/unit/specs/components/pages/index/IndexFooter.nuxt.spec.ts": { "tests": [ { - "id": "255", + "id": "260", "name": "Index Page Footer Component should match snapshot when rendered." }, { - "id": "256", + "id": "261", "name": "Index Page Footer Component Contact Me Button should display contact me with translated text button when rendered." } ], "source": "import type { mount } from \"@vue/test-utils\";\n\nimport IndexFooter from \"~/components/pages/index/IndexFooter.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Index Page Footer Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(IndexFooter);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n describe(\"Contact Me Button\", () => {\n it(\"should display contact me with translated text button when rendered.\", () => {\n const contactMeButton = wrapper.find(\"#contact-button\");\n\n expect(contactMeButton.text()).toBe(\"Contact me\");\n });\n });\n});" }, + "tests/unit/specs/composables/api/game/player/player-role/player-role.class.spec.ts": { + "tests": [ + { + "id": "262", + "name": "Player Role Class create should create a player role when called." + } + ], + "source": "import { PlayerRole } from \"~/composables/api/game/types/players/player-role/player-role.class\";\nimport { RoleNames } from \"~/composables/api/role/enums/role.enums\";\n\ndescribe(\"Player Role Class\", () => {\n describe(\"create\", () => {\n it(\"should create a player role when called.\", () => {\n const createdPlayerSide = PlayerRole.create({\n original: RoleNames.WEREWOLF,\n current: RoleNames.SEER,\n isRevealed: true,\n extra: \"Extra\",\n } as PlayerRole);\n const expectedPlayerSide = new PlayerRole();\n expectedPlayerSide.original = RoleNames.WEREWOLF;\n expectedPlayerSide.current = RoleNames.SEER;\n expectedPlayerSide.isRevealed = true;\n\n expect(createdPlayerSide).toStrictEqual(expectedPlayerSide);\n });\n });\n});" + }, + "tests/unit/specs/composables/api/game/player/player-side/player-side.class.spec.ts": { + "tests": [ + { + "id": "263", + "name": "Player Side Class create should create a player side when called." + } + ], + "source": "import { PlayerSide } from \"~/composables/api/game/types/players/player-role/player-side.class\";\nimport { RoleSides } from \"~/composables/api/role/enums/role.enums\";\n\ndescribe(\"Player Side Class\", () => {\n describe(\"create\", () => {\n it(\"should create a player side when called.\", () => {\n const createdPlayerSide = PlayerSide.create({\n original: RoleSides.WEREWOLVES,\n current: RoleSides.WEREWOLVES,\n extra: \"Extra\",\n } as PlayerSide);\n const expectedPlayerSide = new PlayerSide();\n expectedPlayerSide.original = RoleSides.WEREWOLVES;\n expectedPlayerSide.current = RoleSides.WEREWOLVES;\n\n expect(createdPlayerSide).toStrictEqual(expectedPlayerSide);\n });\n });\n});" + }, "tests/unit/specs/composables/api/useWerewolvesAssistantApi.spec.ts": { "tests": [ { - "id": "257", + "id": "264", "name": "Use Werewolves Assistant Api Composable fetchWerewolvesAssistantApi should create a fetch instance for Werewolves Assistant API when called." } ], "source": "import { useWerewolvesAssistantApi } from \"~/composables/api/useWerewolvesAssistantApi\";\n\nconst { createMock } = vi.hoisted(() => ({ createMock: vi.fn() }));\nvi.mock(\"ofetch\", () => ({ createFetch: vi.fn(() => ({ create: createMock })) }));\n\ndescribe(\"Use Werewolves Assistant Api Composable\", () => {\n describe(\"fetchWerewolvesAssistantApi\", () => {\n it(\"should create a fetch instance for Werewolves Assistant API when called.\", () => {\n useWerewolvesAssistantApi();\n\n expect(createMock).toHaveBeenCalledExactlyOnceWith({\n baseURL: \"http://127.0.0.1\",\n headers: { \"Content-Type\": \"application/json\" },\n onResponseError: expect.any(Function) as () => void,\n });\n });\n });\n});" }, + "tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.nuxt.spec.ts": { + "tests": [ + { + "id": "265", + "name": "Game Playground Content Component should match snapshot when rendered." + } + ], + "source": "import type { mount } from \"@vue/test-utils\";\n\nimport GamePlaygroundContent from \"~/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Playground Content Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(GamePlaygroundContent);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n});" + }, + "tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.nuxt.spec.ts": { + "tests": [ + { + "id": "266", + "name": "Game Playground Footer Component should match snapshot when rendered." + } + ], + "source": "import type { mount } from \"@vue/test-utils\";\n\nimport GamePlaygroundFooter from \"~/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Playground Footer Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(GamePlaygroundFooter);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n});" + }, + "tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.nuxt.spec.ts": { + "tests": [ + { + "id": "267", + "name": "Game Playground Header Component should match snapshot when rendered." + } + ], + "source": "import type { mount } from \"@vue/test-utils\";\n\nimport GamePlaygroundHeader from \"~/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Playground Header Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(GamePlaygroundHeader);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n});" + }, "tests/unit/specs/components/pages/game-lobby/GameLobbyFooter/GameLobbyFooter.nuxt.spec.ts": { "tests": [ { - "id": "258", + "id": "268", "name": "Game Lobby Footer Component should match snapshot when rendered." } ], "source": "import type { mount } from \"@vue/test-utils\";\n\nimport GameLobbyFooter from \"~/components/pages/game-lobby/GameLobbyFooter/GameLobbyFooter.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Lobby Footer Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(GameLobbyFooter);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n});" }, + "tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlayground.nuxt.spec.ts": { + "tests": [ + { + "id": "269", + "name": "Game Playground Component should match snapshot when rendered." + } + ], + "source": "import type { mount } from \"@vue/test-utils\";\n\nimport GamePlayground from \"~/components/pages/game/GamePlaying/GamePlayground/GamePlayground.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Playground Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(GamePlayground);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n});" + }, "tests/unit/specs/components/pages/game/GameCanceled/GameCanceled.nuxt.spec.ts": { "tests": [ { - "id": "259", + "id": "270", "name": "Game Canceled Component should match snapshot when rendered." } ], @@ -18025,7 +18478,7 @@ "tests/unit/specs/components/pages/game/GamePlaying/GamePlaying.nuxt.spec.ts": { "tests": [ { - "id": "260", + "id": "271", "name": "Game Playing Component should match snapshot when rendered." } ], @@ -18034,7 +18487,7 @@ "tests/unit/specs/modules/i18n.spec.ts": { "tests": [ { - "id": "261", + "id": "272", "name": "I18n module Locales should contain all keys set in fr locale when locale is en." } ], @@ -18043,25 +18496,16 @@ "tests/unit/specs/components/pages/game/GameOver/GameOver.nuxt.spec.ts": { "tests": [ { - "id": "262", + "id": "273", "name": "Game Over Component should match snapshot when rendered." } ], "source": "import type { mount } from \"@vue/test-utils\";\n\nimport GameOver from \"~/components/pages/game/GameOver/GameOver.vue\";\nimport { mountSuspendedComponent } from \"~/tests/unit/utils/helpers/mount.helpers\";\n\ndescribe(\"Game Over Component\", () => {\n let wrapper: ReturnType>;\n\n beforeEach(async() => {\n wrapper = await mountSuspendedComponent(GameOver);\n });\n\n it(\"should match snapshot when rendered.\", () => {\n expect(wrapper).toBeTruthy();\n expect(wrapper.html()).toMatchSnapshot();\n });\n});" }, - "tests/unit/specs/composables/api/game/player/player.class.spec.ts": { - "tests": [ - { - "id": "263", - "name": "Player Class create should create a player when called." - } - ], - "source": "import { Player } from \"~/composables/api/game/types/players/player.class\";\n\ndescribe(\"Player Class\", () => {\n describe(\"create\", () => {\n it(\"should create a player when called.\", () => {\n const createdPlayer = Player.create({\n _id: \"1\",\n name: \"Player 1\",\n extra: \"Extra\",\n } as Player);\n const expectedPlayer = new Player();\n expectedPlayer._id = \"1\";\n expectedPlayer.name = \"Player 1\";\n\n expect(createdPlayer).toStrictEqual(expectedPlayer);\n });\n });\n});" - }, "tests/unit/specs/layouts/default.nuxt.spec.ts": { "tests": [ { - "id": "264", + "id": "274", "name": "Default Layout should match snapshot when rendered." } ], @@ -18070,7 +18514,7 @@ "tests/unit/specs/utils/url.utils.spec.ts": { "tests": [ { - "id": "265", + "id": "275", "name": "URL Utils removeTrailingSlashes should remove trailing slashes when called." } ], diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlayground.nuxt.spec.ts b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlayground.nuxt.spec.ts new file mode 100644 index 00000000000..7d2f24a297a --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlayground.nuxt.spec.ts @@ -0,0 +1,17 @@ +import type { mount } from "@vue/test-utils"; + +import GamePlayground from "~/components/pages/game/GamePlaying/GamePlayground/GamePlayground.vue"; +import { mountSuspendedComponent } from "~/tests/unit/utils/helpers/mount.helpers"; + +describe("Game Playground Component", () => { + let wrapper: ReturnType>; + + beforeEach(async() => { + wrapper = await mountSuspendedComponent(GamePlayground); + }); + + it("should match snapshot when rendered.", () => { + expect(wrapper).toBeTruthy(); + expect(wrapper.html()).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.nuxt.spec.ts b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.nuxt.spec.ts new file mode 100644 index 00000000000..c973d8759be --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.nuxt.spec.ts @@ -0,0 +1,17 @@ +import type { mount } from "@vue/test-utils"; + +import GamePlaygroundContent from "~/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/GamePlaygroundContent.vue"; +import { mountSuspendedComponent } from "~/tests/unit/utils/helpers/mount.helpers"; + +describe("Game Playground Content Component", () => { + let wrapper: ReturnType>; + + beforeEach(async() => { + wrapper = await mountSuspendedComponent(GamePlaygroundContent); + }); + + it("should match snapshot when rendered.", () => { + expect(wrapper).toBeTruthy(); + expect(wrapper.html()).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/__snapshots__/GamePlaygroundContent.nuxt.spec.ts.snap b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/__snapshots__/GamePlaygroundContent.nuxt.spec.ts.snap new file mode 100644 index 00000000000..5f27ccacc2f --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundContent/__snapshots__/GamePlaygroundContent.nuxt.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Game Playground Content Component > should match snapshot when rendered. 1`] = `"
GAME PLAYGROUND CONTENT
"`; diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.nuxt.spec.ts b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.nuxt.spec.ts new file mode 100644 index 00000000000..141c3fceadd --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.nuxt.spec.ts @@ -0,0 +1,17 @@ +import type { mount } from "@vue/test-utils"; + +import GamePlaygroundFooter from "~/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/GamePlaygroundFooter.vue"; +import { mountSuspendedComponent } from "~/tests/unit/utils/helpers/mount.helpers"; + +describe("Game Playground Footer Component", () => { + let wrapper: ReturnType>; + + beforeEach(async() => { + wrapper = await mountSuspendedComponent(GamePlaygroundFooter); + }); + + it("should match snapshot when rendered.", () => { + expect(wrapper).toBeTruthy(); + expect(wrapper.html()).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/__snapshots__/GamePlaygroundFooter.nuxt.spec.ts.snap b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/__snapshots__/GamePlaygroundFooter.nuxt.spec.ts.snap new file mode 100644 index 00000000000..ca95a091e23 --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundFooter/__snapshots__/GamePlaygroundFooter.nuxt.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Game Playground Footer Component > should match snapshot when rendered. 1`] = `""`; diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.nuxt.spec.ts b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.nuxt.spec.ts new file mode 100644 index 00000000000..8704467f821 --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.nuxt.spec.ts @@ -0,0 +1,17 @@ +import type { mount } from "@vue/test-utils"; + +import GamePlaygroundHeader from "~/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/GamePlaygroundHeader.vue"; +import { mountSuspendedComponent } from "~/tests/unit/utils/helpers/mount.helpers"; + +describe("Game Playground Header Component", () => { + let wrapper: ReturnType>; + + beforeEach(async() => { + wrapper = await mountSuspendedComponent(GamePlaygroundHeader); + }); + + it("should match snapshot when rendered.", () => { + expect(wrapper).toBeTruthy(); + expect(wrapper.html()).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/__snapshots__/GamePlaygroundHeader.nuxt.spec.ts.snap b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/__snapshots__/GamePlaygroundHeader.nuxt.spec.ts.snap new file mode 100644 index 00000000000..f5747d784b1 --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/GamePlaygroundHeader/__snapshots__/GamePlaygroundHeader.nuxt.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Game Playground Header Component > should match snapshot when rendered. 1`] = `"
GAME PLAYGROUND HEADER
"`; diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/__snapshots__/GamePlayground.nuxt.spec.ts.snap b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/__snapshots__/GamePlayground.nuxt.spec.ts.snap new file mode 100644 index 00000000000..1a2d3cbb09c --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GamePlayground/__snapshots__/GamePlayground.nuxt.spec.ts.snap @@ -0,0 +1,9 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Game Playground Component > should match snapshot when rendered. 1`] = ` +"
+ + + +
" +`; diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts new file mode 100644 index 00000000000..0a0730daff8 --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.nuxt.spec.ts @@ -0,0 +1,82 @@ +import { createTestingPinia } from "@pinia/testing"; +import type { mount } from "@vue/test-utils"; +import type { ComponentMountingOptions } from "@vue/test-utils/dist/mount"; + +import type { GameTeamSideProps } from "~/components/pages/game/GamePlaying/GameTeamSide/game-team-side.types"; +import GameTeamSide from "~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSide.vue"; +import GameTeamSidePlayer from "~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue"; +import type { Player } from "~/composables/api/game/types/players/player.class"; +import { RoleSides } from "~/composables/api/role/enums/role.enums"; +import { StoreIds } from "~/stores/enums/store.enum"; +import { useGameStore } from "~/stores/game/useGameStore"; +import { createFakeGame } from "~/tests/unit/utils/factories/composables/api/game/game.factory"; +import { createFakeAccursedWolfFatherAlivePlayer, createFakeBigBadWolfAlivePlayer, createFakeHunterAlivePlayer, createFakeSeerAlivePlayer, createFakeVillagerAlivePlayer, createFakeWerewolfAlivePlayer, createFakeWhiteWerewolfAlivePlayer } from "~/tests/unit/utils/factories/composables/api/game/player/player-with-role.factory"; +import { mountSuspendedComponent } from "~/tests/unit/utils/helpers/mount.helpers"; + +describe("Game Team Side Component", () => { + let wrapper: ReturnType>; + const defaultProps: GameTeamSideProps = { side: RoleSides.VILLAGERS }; + const testingPinia = { initialState: { [StoreIds.GAME]: { game: createFakeGame() } } }; + + async function mountGameTeamSideComponent(options: ComponentMountingOptions = {}): Promise>> { + return mountSuspendedComponent(GameTeamSide, { + props: options.props ?? defaultProps, + global: { plugins: [createTestingPinia(testingPinia)] }, + ...options, + }); + } + + beforeEach(async() => { + wrapper = await mountGameTeamSideComponent(); + }); + + it("should match snapshot when rendered.", () => { + expect(wrapper).toBeTruthy(); + expect(wrapper.html()).toMatchSnapshot(); + }); + + describe("Game Team Side Players", () => { + it("should render the werewolves players when the side is werewolves.", async() => { + wrapper = await mountGameTeamSideComponent({ props: { side: RoleSides.WEREWOLVES } }); + const gameStore = useGameStore(); + gameStore.game = createFakeGame({ + players: [ + createFakeWerewolfAlivePlayer(), + createFakeBigBadWolfAlivePlayer(), + createFakeVillagerAlivePlayer(), + createFakeAccursedWolfFatherAlivePlayer(), + createFakeWhiteWerewolfAlivePlayer(), + ], + }); + await nextTick(); + const players = wrapper.findAllComponents(GameTeamSidePlayer); + + expect(players).toHaveLength(4); + expect(players[0].props("player")).toStrictEqual(gameStore.game.players[0]); + expect(players[1].props("player")).toStrictEqual(gameStore.game.players[1]); + expect(players[2].props("player")).toStrictEqual(gameStore.game.players[3]); + expect(players[3].props("player")).toStrictEqual(gameStore.game.players[4]); + }); + + it("should render the villagers players when the side is villagers.", async() => { + wrapper = await mountGameTeamSideComponent({ props: { side: RoleSides.VILLAGERS } }); + const gameStore = useGameStore(); + gameStore.game = createFakeGame({ + players: [ + createFakeWerewolfAlivePlayer(), + createFakeSeerAlivePlayer(), + createFakeVillagerAlivePlayer(), + createFakeAccursedWolfFatherAlivePlayer(), + createFakeHunterAlivePlayer(), + ], + }); + await nextTick(); + const players = wrapper.findAllComponents(GameTeamSidePlayer); + + expect(players).toHaveLength(3); + expect(players[0].props("player")).toStrictEqual(gameStore.game.players[1]); + expect(players[1].props("player")).toStrictEqual(gameStore.game.players[2]); + expect(players[2].props("player")).toStrictEqual(gameStore.game.players[4]); + }); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.nuxt.spec.ts b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.nuxt.spec.ts new file mode 100644 index 00000000000..d562247ed26 --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.nuxt.spec.ts @@ -0,0 +1,20 @@ +import type { mount } from "@vue/test-utils"; + +import type { GameTeamSidePlayerProps } from "~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/game-team-side-player.types"; +import GameTeamSidePlayer from "~/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/GameTeamSidePlayer.vue"; +import { createFakeWerewolfAlivePlayer } from "~/tests/unit/utils/factories/composables/api/game/player/player-with-role.factory"; +import { mountSuspendedComponent } from "~/tests/unit/utils/helpers/mount.helpers"; + +describe("Game Team Side Player Component", () => { + let wrapper: ReturnType>; + const defaultProps: GameTeamSidePlayerProps = { player: createFakeWerewolfAlivePlayer({ name: "Antoine" }) }; + + beforeEach(async() => { + wrapper = await mountSuspendedComponent(GameTeamSidePlayer, { props: defaultProps }); + }); + + it("should match snapshot when rendered.", () => { + expect(wrapper).toBeTruthy(); + expect(wrapper.html()).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/__snapshots__/GameTeamSidePlayer.nuxt.spec.ts.snap b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/__snapshots__/GameTeamSidePlayer.nuxt.spec.ts.snap new file mode 100644 index 00000000000..89e039a0079 --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/GameTeamSidePlayer/__snapshots__/GameTeamSidePlayer.nuxt.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Game Team Side Player Component > should match snapshot when rendered. 1`] = `"
Antoine
"`; diff --git a/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/__snapshots__/GameTeamSide.nuxt.spec.ts.snap b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/__snapshots__/GameTeamSide.nuxt.spec.ts.snap new file mode 100644 index 00000000000..cfd10da7cb1 --- /dev/null +++ b/tests/unit/specs/components/pages/game/GamePlaying/GameTeamSide/__snapshots__/GameTeamSide.nuxt.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Game Team Side Component > should match snapshot when rendered. 1`] = `"
"`; diff --git a/tests/unit/specs/components/pages/game/GamePlaying/__snapshots__/GamePlaying.nuxt.spec.ts.snap b/tests/unit/specs/components/pages/game/GamePlaying/__snapshots__/GamePlaying.nuxt.spec.ts.snap index ba7d12d49ce..92fa54096c4 100644 --- a/tests/unit/specs/components/pages/game/GamePlaying/__snapshots__/GamePlaying.nuxt.spec.ts.snap +++ b/tests/unit/specs/components/pages/game/GamePlaying/__snapshots__/GamePlaying.nuxt.spec.ts.snap @@ -1,3 +1,9 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`Game Playing Component > should match snapshot when rendered. 1`] = `"
GAME PLAYING
"`; +exports[`Game Playing Component > should match snapshot when rendered. 1`] = ` +"
+ + + +
" +`; diff --git a/tests/unit/specs/composables/api/game/player/player-role/player-role.class.spec.ts b/tests/unit/specs/composables/api/game/player/player-role/player-role.class.spec.ts new file mode 100644 index 00000000000..bd73c2f604f --- /dev/null +++ b/tests/unit/specs/composables/api/game/player/player-role/player-role.class.spec.ts @@ -0,0 +1,21 @@ +import { PlayerRole } from "~/composables/api/game/types/players/player-role/player-role.class"; +import { RoleNames } from "~/composables/api/role/enums/role.enums"; + +describe("Player Role Class", () => { + describe("create", () => { + it("should create a player role when called.", () => { + const createdPlayerSide = PlayerRole.create({ + original: RoleNames.WEREWOLF, + current: RoleNames.SEER, + isRevealed: true, + extra: "Extra", + } as PlayerRole); + const expectedPlayerSide = new PlayerRole(); + expectedPlayerSide.original = RoleNames.WEREWOLF; + expectedPlayerSide.current = RoleNames.SEER; + expectedPlayerSide.isRevealed = true; + + expect(createdPlayerSide).toStrictEqual(expectedPlayerSide); + }); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/composables/api/game/player/player-side/player-side.class.spec.ts b/tests/unit/specs/composables/api/game/player/player-side/player-side.class.spec.ts new file mode 100644 index 00000000000..933971fafae --- /dev/null +++ b/tests/unit/specs/composables/api/game/player/player-side/player-side.class.spec.ts @@ -0,0 +1,19 @@ +import { PlayerSide } from "~/composables/api/game/types/players/player-role/player-side.class"; +import { RoleSides } from "~/composables/api/role/enums/role.enums"; + +describe("Player Side Class", () => { + describe("create", () => { + it("should create a player side when called.", () => { + const createdPlayerSide = PlayerSide.create({ + original: RoleSides.WEREWOLVES, + current: RoleSides.WEREWOLVES, + extra: "Extra", + } as PlayerSide); + const expectedPlayerSide = new PlayerSide(); + expectedPlayerSide.original = RoleSides.WEREWOLVES; + expectedPlayerSide.current = RoleSides.WEREWOLVES; + + expect(createdPlayerSide).toStrictEqual(expectedPlayerSide); + }); + }); +}); \ No newline at end of file diff --git a/tests/unit/specs/composables/api/game/player/player.class.spec.ts b/tests/unit/specs/composables/api/game/player/player.class.spec.ts index 6a6cc4b911e..644ebd3c761 100644 --- a/tests/unit/specs/composables/api/game/player/player.class.spec.ts +++ b/tests/unit/specs/composables/api/game/player/player.class.spec.ts @@ -1,16 +1,26 @@ import { Player } from "~/composables/api/game/types/players/player.class"; +import { createFakePlayerRole } from "~/tests/unit/utils/factories/composables/api/game/player/player-role/player-role.factory"; +import { createFakePlayerSide } from "~/tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory"; describe("Player Class", () => { describe("create", () => { it("should create a player when called.", () => { + const role = createFakePlayerRole(); + const side = createFakePlayerSide(); const createdPlayer = Player.create({ _id: "1", name: "Player 1", + isAlive: true, + role, + side, extra: "Extra", } as Player); const expectedPlayer = new Player(); expectedPlayer._id = "1"; expectedPlayer.name = "Player 1"; + expectedPlayer.isAlive = true; + expectedPlayer.role = role; + expectedPlayer.side = side; expect(createdPlayer).toStrictEqual(expectedPlayer); }); diff --git a/tests/unit/utils/factories/composables/api/game/player/player-role/player-role.factory.ts b/tests/unit/utils/factories/composables/api/game/player/player-role/player-role.factory.ts new file mode 100644 index 00000000000..f7f470cb38a --- /dev/null +++ b/tests/unit/utils/factories/composables/api/game/player/player-role/player-role.factory.ts @@ -0,0 +1,14 @@ +import { faker } from "@faker-js/faker"; + +import { PlayerRole } from "~/composables/api/game/types/players/player-role/player-role.class"; +import { RoleNames } from "~/composables/api/role/enums/role.enums"; + +function createFakePlayerRole(role: Partial = {}): PlayerRole { + return PlayerRole.create({ + original: role.original ?? faker.helpers.arrayElement(Object.values(RoleNames)), + current: role.current ?? faker.helpers.arrayElement(Object.values(RoleNames)), + isRevealed: role.isRevealed ?? faker.datatype.boolean(), + }); +} + +export { createFakePlayerRole }; \ No newline at end of file diff --git a/tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory.ts b/tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory.ts new file mode 100644 index 00000000000..cd4729e139d --- /dev/null +++ b/tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory.ts @@ -0,0 +1,13 @@ +import { faker } from "@faker-js/faker"; + +import { PlayerSide } from "~/composables/api/game/types/players/player-role/player-side.class"; +import { RoleSides } from "~/composables/api/role/enums/role.enums"; + +function createFakePlayerSide(side: Partial = {}): PlayerSide { + return PlayerSide.create({ + original: side.original ?? faker.helpers.arrayElement(Object.values(RoleSides)), + current: side.current ?? faker.helpers.arrayElement(Object.values(RoleSides)), + }); +} + +export { createFakePlayerSide }; \ No newline at end of file diff --git a/tests/unit/utils/factories/composables/api/game/player/player-with-role.factory.ts b/tests/unit/utils/factories/composables/api/game/player/player-with-role.factory.ts new file mode 100644 index 00000000000..896858dec9e --- /dev/null +++ b/tests/unit/utils/factories/composables/api/game/player/player-with-role.factory.ts @@ -0,0 +1,273 @@ +import type { PlayerRole } from "~/composables/api/game/types/players/player-role/player-role.class"; +import type { Player } from "~/composables/api/game/types/players/player.class"; +import { RoleNames, RoleSides } from "~/composables/api/role/enums/role.enums"; +import { createFakePlayerSide } from "~/tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory"; +import { createFakePlayer } from "~/tests/unit/utils/factories/composables/api/game/player/player.factory"; + +const werewolfSide = createFakePlayerSide({ + original: RoleSides.WEREWOLVES, + current: RoleSides.WEREWOLVES, +}); + +const villagersSide = createFakePlayerSide({ + original: RoleSides.VILLAGERS, + current: RoleSides.VILLAGERS, +}); + +function createFakeWerewolfAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.WEREWOLF, { + side: player.side ?? werewolfSide, + ...player, + }); +} + +function createFakeBigBadWolfAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.BIG_BAD_WOLF, { + side: player.side ?? werewolfSide, + ...player, + }); +} + +function createFakeAccursedWolfFatherAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.ACCURSED_WOLF_FATHER, { + side: player.side ?? werewolfSide, + ...player, + }); +} + +function createFakeWhiteWerewolfAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.WHITE_WEREWOLF, { + side: player.side ?? werewolfSide, + ...player, + }); +} + +function createFakeVillagerAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.VILLAGER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeVillagerVillagerAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.VILLAGER_VILLAGER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeSeerAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.SEER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeCupidAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.CUPID, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeWitchAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.WITCH, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeHunterAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.HUNTER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeLittleGirlAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.LITTLE_GIRL, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeDefenderAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.DEFENDER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeElderAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.ELDER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeScapegoatAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.SCAPEGOAT, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeIdiotAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.IDIOT, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeTwoSistersAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.TWO_SISTERS, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeThreeBrothersAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.THREE_BROTHERS, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeFoxAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.FOX, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeBearTamerAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.BEAR_TAMER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeStutteringJudgeAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.STUTTERING_JUDGE, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeRustySwordKnightAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.RUSTY_SWORD_KNIGHT, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeWildChildAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.WILD_CHILD, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeWolfHoundAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.WOLF_HOUND, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeThiefAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.THIEF, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeAngelAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.ANGEL, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakePiedPiperAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.PIED_PIPER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeScandalmongerAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.SCANDALMONGER, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakePrejudicedManipulatorAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.PREJUDICED_MANIPULATOR, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeActorAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.ACTOR, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeDevotedServantAlivePlayer(player: Partial = {}): Player { + return createFakeAlivePlayerWithRole(RoleNames.DEVOTED_SERVANT, { + side: player.side ?? villagersSide, + ...player, + }); +} + +function createFakeAlivePlayerWithRole(role: RoleNames, player: Partial = {}): Player { + const playerRole: PlayerRole = { + current: role, + original: role, + isRevealed: role === RoleNames.VILLAGER_VILLAGER, + }; + + return createFakePlayer({ + role: playerRole, + isAlive: true, + ...player, + }); +} + +export { + createFakeAlivePlayerWithRole, + createFakeWerewolfAlivePlayer, + createFakeBigBadWolfAlivePlayer, + createFakeAccursedWolfFatherAlivePlayer, + createFakeWhiteWerewolfAlivePlayer, + createFakeVillagerAlivePlayer, + createFakeVillagerVillagerAlivePlayer, + createFakeSeerAlivePlayer, + createFakeCupidAlivePlayer, + createFakeWitchAlivePlayer, + createFakeHunterAlivePlayer, + createFakeLittleGirlAlivePlayer, + createFakeDefenderAlivePlayer, + createFakeElderAlivePlayer, + createFakeScapegoatAlivePlayer, + createFakeIdiotAlivePlayer, + createFakeTwoSistersAlivePlayer, + createFakeThreeBrothersAlivePlayer, + createFakeFoxAlivePlayer, + createFakeBearTamerAlivePlayer, + createFakeStutteringJudgeAlivePlayer, + createFakeRustySwordKnightAlivePlayer, + createFakeWildChildAlivePlayer, + createFakeWolfHoundAlivePlayer, + createFakeThiefAlivePlayer, + createFakeAngelAlivePlayer, + createFakePiedPiperAlivePlayer, + createFakeScandalmongerAlivePlayer, + createFakePrejudicedManipulatorAlivePlayer, + createFakeActorAlivePlayer, + createFakeDevotedServantAlivePlayer, +}; \ No newline at end of file diff --git a/tests/unit/utils/factories/composables/api/game/player/player.factory.ts b/tests/unit/utils/factories/composables/api/game/player/player.factory.ts new file mode 100644 index 00000000000..8bef4f5b62e --- /dev/null +++ b/tests/unit/utils/factories/composables/api/game/player/player.factory.ts @@ -0,0 +1,17 @@ +import { faker } from "@faker-js/faker"; + +import { Player } from "~/composables/api/game/types/players/player.class"; +import { createFakePlayerRole } from "~/tests/unit/utils/factories/composables/api/game/player/player-role/player-role.factory"; +import { createFakePlayerSide } from "~/tests/unit/utils/factories/composables/api/game/player/player-side/player-side.factory"; + +function createFakePlayer(player: Partial = {}): Player { + return Player.create({ + _id: player._id ?? faker.string.uuid(), + name: player.name ?? faker.person.firstName(), + role: player.role ?? createFakePlayerRole(), + side: player.side ?? createFakePlayerSide(), + isAlive: player.isAlive ?? faker.datatype.boolean(), + }); +} + +export { createFakePlayer }; \ No newline at end of file From a8a1aea69e838dc1a02caf107ef8d53dc40f01c1 Mon Sep 17 00:00:00 2001 From: Antoine ZANARDI Date: Sun, 25 Feb 2024 14:53:58 +0100 Subject: [PATCH 6/6] feat(game-playground): game playground basic structure --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 94929cb5ad5..4b47422bbb0 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ This is the **next** version of the current **[Werewolves Assistant Web](https:/ ## 🃏 Available roles -|
**Werewolf** |
**Big Bad Wolf** |
**Accursed Wolf-Father** |
**White Werewolf** | +|
**Werewolf** |
**Big Bad Wolf** |
**Accursed Wolf-Father** |
**White Werewolf** | |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
**Villager** |
**Villager-Villager** |
**Seer** |
**Cupid** | |
**Witch** |
**Hunter** |
**Little Girl** |
**Defender** |