From 2133c97437135de2da3c1195e4a29aa1339b69fa Mon Sep 17 00:00:00 2001 From: Lucian Mocanu Date: Mon, 8 Dec 2025 15:10:10 +0100 Subject: [PATCH] chore: disable eslint errors for chai assertions (#11833) --- eslint.config.mjs | 39 +++++++++---------- package-lock.json | 14 +++++++ package.json | 1 + src/driver/aurora-mysql/AuroraMysqlDriver.ts | 20 +++++++--- src/driver/cockroachdb/CockroachDriver.ts | 12 +++++- src/driver/mysql/MysqlDriver.ts | 20 +++++++--- src/driver/oracle/OracleDriver.ts | 10 +++-- src/driver/postgres/PostgresDriver.ts | 19 +++++++-- .../query-builder-distinct-on.test.ts | 15 +++---- .../{issue-11231.ts => issue-11231.test.ts} | 0 10 files changed, 102 insertions(+), 48 deletions(-) rename test/github-issues/11231/{issue-11231.ts => issue-11231.test.ts} (100%) diff --git a/eslint.config.mjs b/eslint.config.mjs index 0fd186a3b..dcd9b2133 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,20 +1,18 @@ import js from "@eslint/js" -import { defineConfig } from "eslint/config" +import pluginChaiFriendly from "eslint-plugin-chai-friendly" import { jsdoc } from "eslint-plugin-jsdoc" +import { defineConfig, globalIgnores } from "eslint/config" import globals from "globals" import ts from "typescript-eslint" export default defineConfig([ - { - ignores: [ - "build/**", - "docs/**", - "node_modules/**", - "sample/playground/**", - "temp/**", - ], - }, - + globalIgnores([ + "build/**", + "docs/**", + "node_modules/**", + "sample/playground/**", + "temp/**", + ]), { files: ["**/*.ts"], languageOptions: { @@ -31,10 +29,7 @@ export default defineConfig([ js, ts, }, - extends: [ - js.configs.recommended, - ...ts.configs.recommendedTypeChecked, - ], + extends: [js.configs.recommended, ...ts.configs.recommendedTypeChecked], rules: { // exceptions from typescript-eslint/recommended "@typescript-eslint/ban-ts-comment": "warn", @@ -45,12 +40,11 @@ export default defineConfig([ "@typescript-eslint/no-unnecessary-type-constraint": "warn", "@typescript-eslint/no-unsafe-declaration-merging": "warn", "@typescript-eslint/no-unsafe-function-type": "warn", - "@typescript-eslint/no-unused-expressions": "warn", "@typescript-eslint/no-unused-vars": [ "warn", { argsIgnorePattern: "^_", - destructuredArrayIgnorePattern: "^_" + destructuredArrayIgnorePattern: "^_", }, ], "@typescript-eslint/no-wrapper-object-types": "off", @@ -90,14 +84,17 @@ export default defineConfig([ "no-regex-spaces": "warn", }, }, - jsdoc({ - config: "flat/recommended-typescript", files: ["src/**/*.ts"], + config: "flat/recommended-typescript", // Temporarily enable individual rules when they are fixed, until all current warnings are gone, // and then remove manual config in favor of `config: "flat/recommended-typescript-error"` rules: { - "jsdoc/valid-types": "error" - } + "jsdoc/valid-types": "error", + }, }), + { + files: ["test/**/*.ts"], + ...pluginChaiFriendly.configs.recommendedFlat, + }, ]) diff --git a/package-lock.json b/package-lock.json index 790459b8d..a5bc13db7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,6 +53,7 @@ "chai-as-promised": "^7.1.2", "class-transformer": "^0.5.1", "eslint": "^9.39.1", + "eslint-plugin-chai-friendly": "^1.1.0", "eslint-plugin-jsdoc": "^61.4.1", "globals": "^16.5.0", "gulp": "^4.0.2", @@ -5936,6 +5937,19 @@ } } }, + "node_modules/eslint-plugin-chai-friendly": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-1.1.0.tgz", + "integrity": "sha512-+T1rClpDdXkgBAhC16vRQMI5umiWojVqkj9oUTdpma50+uByCZM/oBfxitZiOkjMRlm725mwFfz/RVgyDRvCKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=3.0.0" + } + }, "node_modules/eslint-plugin-jsdoc": { "version": "61.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-61.4.1.tgz", diff --git a/package.json b/package.json index eb6c3bdb5..6960aeb13 100644 --- a/package.json +++ b/package.json @@ -134,6 +134,7 @@ "chai-as-promised": "^7.1.2", "class-transformer": "^0.5.1", "eslint": "^9.39.1", + "eslint-plugin-chai-friendly": "^1.1.0", "eslint-plugin-jsdoc": "^61.4.1", "globals": "^16.5.0", "gulp": "^4.0.2", diff --git a/src/driver/aurora-mysql/AuroraMysqlDriver.ts b/src/driver/aurora-mysql/AuroraMysqlDriver.ts index fea9c03fb..d0707d93c 100644 --- a/src/driver/aurora-mysql/AuroraMysqlDriver.ts +++ b/src/driver/aurora-mysql/AuroraMysqlDriver.ts @@ -806,14 +806,20 @@ export class AuroraMysqlDriver implements Driver { this.poolCluster.getConnection( "MASTER", (err: any, dbConnection: any) => { - err - ? fail(err) - : ok(this.prepareDbConnection(dbConnection)) + if (err) { + fail(err) + } else { + ok(this.prepareDbConnection(dbConnection)) + } }, ) } else if (this.pool) { this.pool.getConnection((err: any, dbConnection: any) => { - err ? fail(err) : ok(this.prepareDbConnection(dbConnection)) + if (err) { + fail(err) + } else { + ok(this.prepareDbConnection(dbConnection)) + } }) } else { fail( @@ -837,7 +843,11 @@ export class AuroraMysqlDriver implements Driver { this.poolCluster.getConnection( "SLAVE*", (err: any, dbConnection: any) => { - err ? fail(err) : ok(this.prepareDbConnection(dbConnection)) + if (err) { + fail(err) + } else { + ok(this.prepareDbConnection(dbConnection)) + } }, ) }) diff --git a/src/driver/cockroachdb/CockroachDriver.ts b/src/driver/cockroachdb/CockroachDriver.ts index 7d39e6d6b..91456ddf8 100644 --- a/src/driver/cockroachdb/CockroachDriver.ts +++ b/src/driver/cockroachdb/CockroachDriver.ts @@ -826,7 +826,11 @@ export class CockroachDriver implements Driver { return new Promise((ok, fail) => { this.master.connect((err: any, connection: any, release: any) => { - err ? fail(err) : ok([connection, release]) + if (err) { + fail(err) + } else { + ok([connection, release]) + } }) }) } @@ -844,7 +848,11 @@ export class CockroachDriver implements Driver { return new Promise((ok, fail) => { this.slaves[random].connect( (err: any, connection: any, release: any) => { - err ? fail(err) : ok([connection, release]) + if (err) { + fail(err) + } else { + ok([connection, release]) + } }, ) }) diff --git a/src/driver/mysql/MysqlDriver.ts b/src/driver/mysql/MysqlDriver.ts index 885b7176a..b044ac4d5 100644 --- a/src/driver/mysql/MysqlDriver.ts +++ b/src/driver/mysql/MysqlDriver.ts @@ -920,14 +920,20 @@ export class MysqlDriver implements Driver { this.poolCluster.getConnection( "MASTER", (err: any, dbConnection: any) => { - err - ? fail(err) - : ok(this.prepareDbConnection(dbConnection)) + if (err) { + fail(err) + } else { + ok(this.prepareDbConnection(dbConnection)) + } }, ) } else if (this.pool) { this.pool.getConnection((err: any, dbConnection: any) => { - err ? fail(err) : ok(this.prepareDbConnection(dbConnection)) + if (err) { + fail(err) + } else { + ok(this.prepareDbConnection(dbConnection)) + } }) } else { fail( @@ -951,7 +957,11 @@ export class MysqlDriver implements Driver { this.poolCluster.getConnection( "SLAVE*", (err: any, dbConnection: any) => { - err ? fail(err) : ok(this.prepareDbConnection(dbConnection)) + if (err) { + fail(err) + } else { + ok(this.prepareDbConnection(dbConnection)) + } }, ) }) diff --git a/src/driver/oracle/OracleDriver.ts b/src/driver/oracle/OracleDriver.ts index 3523362e9..7c921a85a 100644 --- a/src/driver/oracle/OracleDriver.ts +++ b/src/driver/oracle/OracleDriver.ts @@ -988,14 +988,16 @@ export class OracleDriver implements Driver { try { const oracle = this.options.driver || PlatformTools.load("oracledb") this.oracle = oracle - } catch (e) { + } catch { throw new DriverPackageNotInstalledError("Oracle", "oracledb") } const thickMode = this.options.thickMode if (thickMode) { - typeof thickMode === "object" - ? this.oracle.initOracleClient(thickMode) - : this.oracle.initOracleClient() + if (typeof thickMode === "object") { + this.oracle.initOracleClient(thickMode) + } else { + this.oracle.initOracleClient() + } } } diff --git a/src/driver/postgres/PostgresDriver.ts b/src/driver/postgres/PostgresDriver.ts index fd0883011..8a46f4552 100644 --- a/src/driver/postgres/PostgresDriver.ts +++ b/src/driver/postgres/PostgresDriver.ts @@ -1218,7 +1218,11 @@ export class PostgresDriver implements Driver { return new Promise((ok, fail) => { this.master.connect((err: any, connection: any, release: any) => { - err ? fail(err) : ok([connection, release]) + if (err) { + fail(err) + } else { + ok([connection, release]) + } }) }) } @@ -1238,7 +1242,11 @@ export class PostgresDriver implements Driver { return new Promise((ok, fail) => { this.slaves[random].connect( (err: any, connection: any, release: any) => { - err ? fail(err) : ok([connection, release]) + if (err) { + fail(err) + } else { + ok([connection, release]) + } }, ) }) @@ -1569,14 +1577,17 @@ export class PostgresDriver implements Driver { if (options.logNotifications) { connection.on("notice", (msg: any) => { - msg && this.connection.logger.log("info", msg.message) + if (msg) { + this.connection.logger.log("info", msg.message) + } }) connection.on("notification", (msg: any) => { - msg && + if (msg) { this.connection.logger.log( "info", `Received NOTIFY on channel ${msg.channel}: ${msg.payload}.`, ) + } }) } release() diff --git a/test/functional/query-builder/distinct-on/query-builder-distinct-on.test.ts b/test/functional/query-builder/distinct-on/query-builder-distinct-on.test.ts index a798a4c21..fa69b466a 100644 --- a/test/functional/query-builder/distinct-on/query-builder-distinct-on.test.ts +++ b/test/functional/query-builder/distinct-on/query-builder-distinct-on.test.ts @@ -138,13 +138,14 @@ describe("query builder > distinct on", () => { expect( result.map(({ moderator }) => moderator), - ).to.have.members(["Dion", "Sarah", "Dion", "Dion"]) && - expect(result.map(({ author }) => author)).to.have.members([ - "Dion", - "Pablo", - "Sarah", - "Zelda", - ]) + ).to.have.members(["Dion", "Sarah", "Dion", "Dion"]) + + expect(result.map(({ author }) => author)).to.have.members([ + "Dion", + "Pablo", + "Sarah", + "Zelda", + ]) }), )) diff --git a/test/github-issues/11231/issue-11231.ts b/test/github-issues/11231/issue-11231.test.ts similarity index 100% rename from test/github-issues/11231/issue-11231.ts rename to test/github-issues/11231/issue-11231.test.ts