Repository navigation
Conversation
Signed-off-by: Yash Rastogi <98934035+CoDe-ReDz@users.noreply.github.com>
|
@CoDe-ReDz check the CI issues |
|
@vitormattos on it! |
…issues Signed-off-by: Yash Rastogi <98934035+CoDe-ReDz@users.noreply.github.com>
YvesCesar
left a comment
There was a problem hiding this comment.
Hi @CoDe-ReDz !
Many thanks for your contribution.
The description mentions adding server.fs.strict: false to vitest.config.js, but that file is not part of the diff. Please either push that change or update the description.
…nfig Signed-off-by: Yash Rastogi <98934035+CoDe-ReDz@users.noreply.github.com>
|
Hi @YvesCesar! Thank you for the thorough review and the excellent tip regarding the CSS imports. I've pushed an update addressing all of your points:
Note on |
YvesCesar
left a comment
There was a problem hiding this comment.
Thanks, @CoDe-ReDz
I have a few more revisions. Could you take a look at them?
Signed-off-by: Yash Rastogi <98934035+CoDe-ReDz@users.noreply.github.com>
|
Thanks @YvesCesar, all points addressed in :
|
|
Looks ok to me. |
|
@vitormattos could you please review the PR |
Resolves: #8811
📝 Summary
This PR adds the minimum StrykerJS configuration required to run frontend mutation testing locally using our existing Vitest setup, adhering strictly to the KISS and YAGNI principles.
Changes included:
@stryker-mutator/coreand@stryker-mutator/vitest-runneras dev dependencies.stryker.config.mjs, configured to reusevitest.config.jsto ensure a single source of truth for aliases, mocks, and environment variables.server.fs.strict: falsetovitest.config.js: the Stryker sandbox linksnode_modulesfrom outside its root, and Vite otherwise rejects those files (Denied ID).--pool threads.@stryker-mutator/vitest-runnerforces that pool and ignorespool: 'vmForks', and underthreadsNode tried to load.cssfiles imported by some packages. The packages that import CSS are now inlined (@nextcloud/vue,@nextcloud/vue-select,@nextcloud/dialogs,@nextcloud/password-confirmation,splitpanes,vue-select) so Vitest processes them. Since@nextcloud/dialogsnow runs inside Vitest, three specs (router,DocumentValidationLogic,FileRequestFlow) neededdetectLogLeveladded to their existing@nextcloud/loggermock. No production code changed.mutateto targetsrc/**/*.{js,ts}, excludingsrc/tests/**and*.d.ts..vuefiles are not mutated: Stryker's instrumentation inserts helper calls intodefineOptions()/defineProps()arguments, which Vue's compiler rejects in<script setup>, so the initial test run crashes.ignorePatternsso the sandbox does not copy folders Vitest does not use (vendor, PHP, build output)./reports/and/.stryker-tmp/to.gitignoreand.stryker-tmpto the ESLint ignores.test:mutationscript topackage.json.No CI quality gates, dashboard services, or blocking thresholds were introduced.
🧪 How to test
To avoid GitHub Codespace memory limits, a full mutation run over all source files ( mutants) is not practical locally. These steps verify the integration instead.
mutateset (no mutants are tested):🎨 UI / Front‑end changes
vitest.config.jsto permit sandbox file resolution and fix CSS thread pool crashes.🚧 Tasks
✅ Checklist
npm run test:mutationscript exists.🤖 AI (if applicable)