Thanks for contributing to MagicMirror²!
We hold our code to standard, and these standards are documented below.
We use prettier for automatic formatting a lot all our files. The configuration is in our prettier.config.mjs file.
And we use ESLint to lint our JavaScript, Markdown, and CSS files. The configuration is in our eslint.config.mjs file.
To check for formatting and linting errors, use node --run test:lint
To fix formatting and linting errors, use node --run lint:fix.
We use Vitest for JavaScript testing.
To run all tests, use node --run test.
The package.json scripts expose finer-grained test commands:
test:unit– run unit tests onlytest:e2e– execute browser-driven end-to-end teststest:electron– launch the Electron-based regression suitetest:coverage– collect coverage while running every suitetest:watch– keep Vitest in watch mode for fast local feedbacktest:ui– open the Vitest UI dashboard (needs OS file-watch support enabled)test:calendar– run the legacy calendar debug helpertest:lint– run linter and formatter checkstest:spelling– run the spell checker
You can invoke any script with node --run <script> (or npm run <script>). Individual files can still be targeted directly, e.g. npx vitest run tests/e2e/env_spec.js.