From 2f50011a39f2a3f03b421fec794a7630f30ade6e Mon Sep 17 00:00:00 2001 From: Derk-Jan Karrenbeld Date: Fri, 3 Jan 2025 00:37:24 +0100 Subject: [PATCH] Sync killer sudoku (#2575) --- .../practice/killer-sudoku-helper/.eslintrc | 14 ------ .../practice/killer-sudoku-helper/.gitignore | 2 +- .../killer-sudoku-helper/babel.config.js | 2 +- .../killer-sudoku-helper/eslint.config.mjs | 45 +++++++++++++++++++ .../killer-sudoku-helper/jest.config.js | 22 +++++++++ .../killer-sudoku-helper/package.json | 29 +++++++----- 6 files changed, 86 insertions(+), 28 deletions(-) delete mode 100644 exercises/practice/killer-sudoku-helper/.eslintrc create mode 100644 exercises/practice/killer-sudoku-helper/eslint.config.mjs create mode 100644 exercises/practice/killer-sudoku-helper/jest.config.js diff --git a/exercises/practice/killer-sudoku-helper/.eslintrc b/exercises/practice/killer-sudoku-helper/.eslintrc deleted file mode 100644 index 1d4446029c..0000000000 --- a/exercises/practice/killer-sudoku-helper/.eslintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "root": true, - "extends": "@exercism/eslint-config-javascript", - "env": { - "jest": true - }, - "overrides": [ - { - "files": [".meta/proof.ci.js", ".meta/exemplar.js", "*.spec.js"], - "excludedFiles": ["custom.spec.js"], - "extends": "@exercism/eslint-config-javascript/maintainers" - } - ] -} diff --git a/exercises/practice/killer-sudoku-helper/.gitignore b/exercises/practice/killer-sudoku-helper/.gitignore index 31c57dd53a..0c88ff6ec3 100644 --- a/exercises/practice/killer-sudoku-helper/.gitignore +++ b/exercises/practice/killer-sudoku-helper/.gitignore @@ -1,5 +1,5 @@ /node_modules /bin/configlet /bin/configlet.exe -/pnpm-lock.yaml +/package-lock.json /yarn.lock diff --git a/exercises/practice/killer-sudoku-helper/babel.config.js b/exercises/practice/killer-sudoku-helper/babel.config.js index b781d5a667..bee6710c47 100644 --- a/exercises/practice/killer-sudoku-helper/babel.config.js +++ b/exercises/practice/killer-sudoku-helper/babel.config.js @@ -1,4 +1,4 @@ module.exports = { - presets: ['@exercism/babel-preset-javascript'], + presets: [['@exercism/babel-preset-javascript', { corejs: '3.39' }]], plugins: [], }; diff --git a/exercises/practice/killer-sudoku-helper/eslint.config.mjs b/exercises/practice/killer-sudoku-helper/eslint.config.mjs new file mode 100644 index 0000000000..ca517111ed --- /dev/null +++ b/exercises/practice/killer-sudoku-helper/eslint.config.mjs @@ -0,0 +1,45 @@ +// @ts-check + +import config from '@exercism/eslint-config-javascript'; +import maintainersConfig from '@exercism/eslint-config-javascript/maintainers.mjs'; + +import globals from 'globals'; + +export default [ + ...config, + ...maintainersConfig, + { + files: maintainersConfig[1].files, + rules: { + 'jest/expect-expect': ['warn', { assertFunctionNames: ['expect*'] }], + }, + }, + { + files: ['scripts/**/*.mjs'], + languageOptions: { + globals: { + ...globals.node, + }, + }, + }, + // <> + { + ignores: [ + // # Protected or generated + '/.appends/**/*', + '/.github/**/*', + '/.vscode/**/*', + + // # Binaries + '/bin/*', + + // # Configuration + '/config', + '/babel.config.js', + + // # Typings + '/exercises/**/global.d.ts', + '/exercises/**/env.d.ts', + ], + }, +]; diff --git a/exercises/practice/killer-sudoku-helper/jest.config.js b/exercises/practice/killer-sudoku-helper/jest.config.js new file mode 100644 index 0000000000..ec8e908127 --- /dev/null +++ b/exercises/practice/killer-sudoku-helper/jest.config.js @@ -0,0 +1,22 @@ +module.exports = { + verbose: true, + projects: [''], + testMatch: [ + '**/__tests__/**/*.[jt]s?(x)', + '**/test/**/*.[jt]s?(x)', + '**/?(*.)+(spec|test).[jt]s?(x)', + ], + testPathIgnorePatterns: [ + '/(?:production_)?node_modules/', + '.d.ts$', + '/test/fixtures', + '/test/helpers', + '__mocks__', + ], + transform: { + '^.+\\.[jt]sx?$': 'babel-jest', + }, + moduleNameMapper: { + '^(\\.\\/.+)\\.js$': '$1', + }, +}; diff --git a/exercises/practice/killer-sudoku-helper/package.json b/exercises/practice/killer-sudoku-helper/package.json index 682b9f2dbc..3c80992a2c 100644 --- a/exercises/practice/killer-sudoku-helper/package.json +++ b/exercises/practice/killer-sudoku-helper/package.json @@ -15,20 +15,25 @@ "directory": "exercises/practice/killer-sudoku-helper" }, "devDependencies": { - "@babel/core": "^7.25.2", - "@exercism/babel-preset-javascript": "^0.2.1", - "@exercism/eslint-config-javascript": "^0.6.0", - "@types/jest": "^29.5.12", - "@types/node": "^20.12.12", - "babel-jest": "^29.6.4", - "core-js": "~3.37.1", - "eslint": "^8.49.0", + "@exercism/babel-preset-javascript": "^0.5.1", + "@exercism/eslint-config-javascript": "^0.8.1", + "@jest/globals": "^29.7.0", + "@types/node": "^22.10.3", + "@types/shelljs": "^0.8.15", + "babel-jest": "^29.7.0", + "core-js": "~3.39.0", + "diff": "^7.0.0", + "eslint": "^9.17.0", + "expect": "^29.7.0", + "globals": "^15.14.0", "jest": "^29.7.0" }, "dependencies": {}, "scripts": { - "test": "jest ./*", - "watch": "jest --watch ./*", - "lint": "eslint ." - } + "lint": "corepack pnpm eslint .", + "test": "corepack pnpm jest", + "watch": "corepack pnpm jest --watch", + "format": "corepack pnpm prettier -w ." + }, + "packageManager": "pnpm@9.15.2" }