diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index bfc691654..000000000 --- a/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -!.meta - -# Protected or generated -/.appends -/.github -/.vscode - -# Binaries -/bin - -# Configuration -/config - diff --git a/.eslintrc b/.eslintrc index 1a692a8f8..7204678bb 100644 --- a/.eslintrc +++ b/.eslintrc @@ -10,5 +10,13 @@ "excludedFiles": ["custom.test.ts"], "extends": "@exercism/eslint-config-typescript/maintainers" } + ], + "ignores": [ + "!.meta", + ".appends", + ".git", + ".vscode", + "/bin", + "/config" ] } diff --git a/common/.eslintignore b/common/.eslintignore deleted file mode 100644 index e08db2a94..000000000 --- a/common/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -!.meta - -# Protected or generated -.git -.vscode - -# When using npm -node_modules/* - -# Configuration files -.eslintrc.cjs -babel.config.cjs -jest.config.cjs \ No newline at end of file diff --git a/common/.eslintrc.cjs b/common/.eslintrc.cjs index e09910032..9ff6f50dc 100644 --- a/common/.eslintrc.cjs +++ b/common/.eslintrc.cjs @@ -1,6 +1,6 @@ module.exports = { root: true, - parserOptions: { + languageOptions: { tsconfigRootDir: __dirname, project: ['./tsconfig.json'], }, @@ -35,4 +35,13 @@ module.exports = { extends: '@exercism/eslint-config-typescript/maintainers', }, ], + ignores: [ + "!.meta", + ".git", + ".vscode", + "node_modules/*", + ".eslintrc.cjs", + "babel.config.cjs", + "jest.config.cjs", + ], } diff --git a/exercises/practice/dnd-character/.eslintignore b/exercises/practice/dnd-character/.eslintignore deleted file mode 100644 index e08db2a94..000000000 --- a/exercises/practice/dnd-character/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -!.meta - -# Protected or generated -.git -.vscode - -# When using npm -node_modules/* - -# Configuration files -.eslintrc.cjs -babel.config.cjs -jest.config.cjs \ No newline at end of file diff --git a/exercises/practice/dnd-character/.eslintrc.cjs b/exercises/practice/dnd-character/.eslintrc.cjs index e09910032..9ff6f50dc 100644 --- a/exercises/practice/dnd-character/.eslintrc.cjs +++ b/exercises/practice/dnd-character/.eslintrc.cjs @@ -1,6 +1,6 @@ module.exports = { root: true, - parserOptions: { + languageOptions: { tsconfigRootDir: __dirname, project: ['./tsconfig.json'], }, @@ -35,4 +35,13 @@ module.exports = { extends: '@exercism/eslint-config-typescript/maintainers', }, ], + ignores: [ + "!.meta", + ".git", + ".vscode", + "node_modules/*", + ".eslintrc.cjs", + "babel.config.cjs", + "jest.config.cjs", + ], } diff --git a/exercises/practice/dnd-character/dnd-character.test.ts b/exercises/practice/dnd-character/dnd-character.test.ts index 7118108d5..a6796318c 100644 --- a/exercises/practice/dnd-character/dnd-character.test.ts +++ b/exercises/practice/dnd-character/dnd-character.test.ts @@ -75,27 +75,51 @@ describe('Ability generator', () => { }) describe('Character creation', () => { - xit('Random character is valid', () => { + xit('Random character is valid - hitpoints', () => { const character = new DnDCharacter() expect(character.hitpoints).toEqual( 10 + DnDCharacter.getModifierFor(character.constitution) ) + }) + + xit('Random character is valid - strength', () => { + const character = new DnDCharacter() expect(character.strength).toBeGreaterThanOrEqual(3) expect(character.strength).toBeLessThanOrEqual(18) + }) + + xit('Random character is valid - dexterity', () => { + const character = new DnDCharacter() expect(character.dexterity).toBeGreaterThanOrEqual(3) expect(character.dexterity).toBeLessThanOrEqual(18) + }) + + xit('Random character is valid - constitution', () => { + const character = new DnDCharacter() expect(character.constitution).toBeGreaterThanOrEqual(3) expect(character.constitution).toBeLessThanOrEqual(18) + }) + + xit('Random character is valid - intelligence', () => { + const character = new DnDCharacter() expect(character.intelligence).toBeGreaterThanOrEqual(3) expect(character.intelligence).toBeLessThanOrEqual(18) + }) + + xit('Random character is valid - wisdom', () => { + const character = new DnDCharacter() expect(character.wisdom).toBeGreaterThanOrEqual(3) expect(character.wisdom).toBeLessThanOrEqual(18) + }) + + xit('Random character is valid - charisma', () => { + const character = new DnDCharacter() expect(character.charisma).toBeGreaterThanOrEqual(3) expect(character.charisma).toBeLessThanOrEqual(18) diff --git a/exercises/practice/dnd-character/package.json b/exercises/practice/dnd-character/package.json index fdafe9826..501252ab8 100644 --- a/exercises/practice/dnd-character/package.json +++ b/exercises/practice/dnd-character/package.json @@ -14,12 +14,12 @@ "devDependencies": { "@exercism/babel-preset-typescript": "^0.4.0", "@exercism/eslint-config-typescript": "^0.5.0", - "@types/jest": "^29.5.2", + "@types/jest": "^29.5.12", "@types/node": "~18.16.16", - "babel-jest": "^29.5.0", + "babel-jest": "^29.7.0", "core-js": "~3.30.2", - "eslint": "^8.42.0", - "jest": "^29.5.0", + "eslint": "^9.2.0", + "jest": "^29.7.0", "typescript": "~5.0.4" }, "scripts": { diff --git a/scripts/helpers.mjs b/scripts/helpers.mjs index 342293e41..8fcf7b15a 100644 --- a/scripts/helpers.mjs +++ b/scripts/helpers.mjs @@ -23,7 +23,6 @@ export const COMMON_DIRS = [ ] export const COMMON_FILES = [ path.join('.yarn', 'releases', 'yarn-3.6.4.cjs'), - '.eslintignore', '.eslintrc.cjs', '.yarnrc.yml', 'babel.config.cjs', diff --git a/scripts/lint.mjs b/scripts/lint.mjs index cd13bbd6e..dee1d5d9d 100644 --- a/scripts/lint.mjs +++ b/scripts/lint.mjs @@ -35,7 +35,7 @@ const failureStr = '[Failure] Lint check failed!' // Run lint all at once prepareAndRun( - 'yarn eslint tmp_exercises --ext .ts --ext .tsx -c node_modules/@exercism/eslint-config-typescript/maintainers.js', + 'yarn eslint tmp_exercises -c node_modules/@exercism/eslint-config-typescript/maintainers.js', infoStr, failureStr )