From 9ba1fcef600f10942f87be7c5284eceff97e5cb3 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Thu, 12 Jan 2023 18:01:46 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=9F=20=F0=9F=9A=A6=20E2E:=20Fix=20dupl?= =?UTF-8?q?icated=20database=20object=20warning=20(#20926)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * replace "cypress-postgres" with "pg-promise" npm package * update cypress config * update userDefineConnection type and naming * Update airbyte-webapp-e2e-tests/cypress/plugins/index.ts Co-authored-by: Mark Berger Co-authored-by: Mark Berger --- .../cypress/plugins/index.ts | 22 ++- airbyte-webapp-e2e-tests/package-lock.json | 143 +++++++----------- airbyte-webapp-e2e-tests/package.json | 2 +- 3 files changed, 79 insertions(+), 88 deletions(-) diff --git a/airbyte-webapp-e2e-tests/cypress/plugins/index.ts b/airbyte-webapp-e2e-tests/cypress/plugins/index.ts index 61b54a1eabfd..e13e5aa5f1c5 100644 --- a/airbyte-webapp-e2e-tests/cypress/plugins/index.ts +++ b/airbyte-webapp-e2e-tests/cypress/plugins/index.ts @@ -14,6 +14,26 @@ import Cypress from "cypress"; +const pgp = require("pg-promise")(); +const cypressConfig = require(require("path").resolve("cypress.json")); + +interface dbConfig { + user: string; + host: string; + database: string; + password: string; + port: number; +} + +function dbConnection(query: any, userDefineConnection: dbConfig) { + let connection = cypressConfig.db; + if (userDefineConnection !== undefined) { + connection = userDefineConnection; + } + const db = pgp(connection); + return db.any(query).finally(db.$pool.end); +} + /** * @type {Cypress.PluginConfig} */ @@ -21,6 +41,6 @@ module.exports = (on: Cypress.PluginEvents, config: Cypress.PluginConfigOptions) // `on` is used to hook into various events Cypress emits // `config` is the resolved Cypress config on("task", { - dbQuery: (query) => require("cypress-postgres")(query.query, query.connection), + dbQuery: (query) => dbConnection(query.query, query.connection), }); }; diff --git a/airbyte-webapp-e2e-tests/package-lock.json b/airbyte-webapp-e2e-tests/package-lock.json index 6c0480412d40..63caf3c6dc48 100644 --- a/airbyte-webapp-e2e-tests/package-lock.json +++ b/airbyte-webapp-e2e-tests/package-lock.json @@ -12,10 +12,10 @@ "@typescript-eslint/eslint-plugin": "^5.27.1", "@typescript-eslint/parser": "^5.27.1", "cypress": "^9.2.0", - "cypress-postgres": "^1.1.1", "eslint-config-prettier": "^8.5.0", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-prettier": "^4.0.0", + "pg-promise": "^10.15.4", "prettier": "^2.6.2", "typescript": "^4.5.4" }, @@ -583,12 +583,12 @@ } }, "node_modules/assert-options": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.6.2.tgz", - "integrity": "sha512-KP9S549XptFAPGYmLRnIjQBL4/Ry8Jx5YNLQZ/l+eejqbTidBMnw4uZSAsUrzBq/lgyqDYqxcTF7cOxZb9gyEw==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.8.0.tgz", + "integrity": "sha512-qSELrEaEz4sGwTs4Qh+swQkjiHAysC4rot21+jzXU86dJzNG+FDqBzyS3ohSoTRf4ZLA3FSwxQdiuNl5NXUtvA==", "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">=10.0.0" } }, "node_modules/assert-plus": { @@ -967,15 +967,6 @@ "node": ">=12.0.0" } }, - "node_modules/cypress-postgres": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cypress-postgres/-/cypress-postgres-1.1.1.tgz", - "integrity": "sha512-ewhT84MhUU2FYzREUF2dYMJeIFarI2/8GkoD5xKyT/e7YIdYhJlOaFZSNZRY6OnQAnMWMy0g2p2n6+03HY/HZA==", - "dev": true, - "dependencies": { - "pg-promise": "10.5.8" - } - }, "node_modules/cypress/node_modules/@types/node": { "version": "14.18.33", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz", @@ -2421,22 +2412,29 @@ "dev": true }, "node_modules/pg": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.2.2.tgz", - "integrity": "sha512-Uni50U0W2CNPM68+zfC/1WWjSO3q/uBSF/Nl7D+1npZGsPSM4/EZt0xSMW2jox1Bn0EfDlnTWnTsM/TrSOtBEA==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", + "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", "dev": true, "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", - "pg-connection-string": "^2.2.3", - "pg-pool": "^3.2.1", - "pg-protocol": "^1.2.5", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.2", + "pg-protocol": "^1.5.0", "pg-types": "^2.1.0", - "pgpass": "1.x", - "semver": "4.3.2" + "pgpass": "1.x" }, "engines": { "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } } }, "node_modules/pg-connection-string": { @@ -2455,9 +2453,9 @@ } }, "node_modules/pg-minify": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.1.tgz", - "integrity": "sha512-ujanxJJB9CSDUvlAOshtjdKAywOPR2vY0a7D+vvgk5rbrYcthZA7TjpN+Z+UwZsz/G/bUexYDT6huE33vYVN0g==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz", + "integrity": "sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==", "dev": true, "engines": { "node": ">=8.0" @@ -2473,18 +2471,18 @@ } }, "node_modules/pg-promise": { - "version": "10.5.8", - "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.8.tgz", - "integrity": "sha512-EdLyPd/XlmNsfA2uRKHuCnyLhk5DHPdKGPZmjzpcKfdx6dDZB+nEfSuaNSjReRrM7BmPaV/hSGppt9kG/W2Umw==", + "version": "10.15.4", + "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-10.15.4.tgz", + "integrity": "sha512-BKlHCMCdNUmF6gagVbehRWSEiVcZzPVltEx14OJExR9Iz9/1R6KETDWLLGv2l6yRqYFnEZZy1VDjRhArzeIGrw==", "dev": true, "dependencies": { - "assert-options": "0.6.2", - "pg": "8.2.2", - "pg-minify": "1.6.1", - "spex": "3.0.2" + "assert-options": "0.8.0", + "pg": "8.8.0", + "pg-minify": "1.6.2", + "spex": "3.2.0" }, "engines": { - "node": ">=8.0" + "node": ">=12.0" } }, "node_modules/pg-protocol": { @@ -2509,15 +2507,6 @@ "node": ">=4" } }, - "node_modules/pg/node_modules/semver": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz", - "integrity": "sha512-VyFUffiBx8hABJ9HYSTXLRwyZtdDHMzMtFmID1aiNAD2BZppBmJm0Hqw3p2jkgxP9BNt1pQ9RnC49P0EcXf6cA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/pgpass": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", @@ -2915,9 +2904,9 @@ } }, "node_modules/spex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spex/-/spex-3.0.2.tgz", - "integrity": "sha512-ZNCrOso+oNv5P01HCO4wuxV9Og5rS6ms7gGAqugfBPjx1QwfNXJI3T02ldfaap1O0dlT1sB0Rk+mhDqxt3Z27w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz", + "integrity": "sha512-9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==", "dev": true, "engines": { "node": ">=4.5" @@ -3695,9 +3684,9 @@ } }, "assert-options": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.6.2.tgz", - "integrity": "sha512-KP9S549XptFAPGYmLRnIjQBL4/Ry8Jx5YNLQZ/l+eejqbTidBMnw4uZSAsUrzBq/lgyqDYqxcTF7cOxZb9gyEw==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.8.0.tgz", + "integrity": "sha512-qSELrEaEz4sGwTs4Qh+swQkjiHAysC4rot21+jzXU86dJzNG+FDqBzyS3ohSoTRf4ZLA3FSwxQdiuNl5NXUtvA==", "dev": true }, "assert-plus": { @@ -4015,15 +4004,6 @@ } } }, - "cypress-postgres": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cypress-postgres/-/cypress-postgres-1.1.1.tgz", - "integrity": "sha512-ewhT84MhUU2FYzREUF2dYMJeIFarI2/8GkoD5xKyT/e7YIdYhJlOaFZSNZRY6OnQAnMWMy0g2p2n6+03HY/HZA==", - "dev": true, - "requires": { - "pg-promise": "10.5.8" - } - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -5122,27 +5102,18 @@ "dev": true }, "pg": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.2.2.tgz", - "integrity": "sha512-Uni50U0W2CNPM68+zfC/1WWjSO3q/uBSF/Nl7D+1npZGsPSM4/EZt0xSMW2jox1Bn0EfDlnTWnTsM/TrSOtBEA==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", + "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", "dev": true, "requires": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", - "pg-connection-string": "^2.2.3", - "pg-pool": "^3.2.1", - "pg-protocol": "^1.2.5", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.2", + "pg-protocol": "^1.5.0", "pg-types": "^2.1.0", - "pgpass": "1.x", - "semver": "4.3.2" - }, - "dependencies": { - "semver": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz", - "integrity": "sha512-VyFUffiBx8hABJ9HYSTXLRwyZtdDHMzMtFmID1aiNAD2BZppBmJm0Hqw3p2jkgxP9BNt1pQ9RnC49P0EcXf6cA==", - "dev": true - } + "pgpass": "1.x" } }, "pg-connection-string": { @@ -5158,9 +5129,9 @@ "dev": true }, "pg-minify": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.1.tgz", - "integrity": "sha512-ujanxJJB9CSDUvlAOshtjdKAywOPR2vY0a7D+vvgk5rbrYcthZA7TjpN+Z+UwZsz/G/bUexYDT6huE33vYVN0g==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz", + "integrity": "sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==", "dev": true }, "pg-pool": { @@ -5171,15 +5142,15 @@ "requires": {} }, "pg-promise": { - "version": "10.5.8", - "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.8.tgz", - "integrity": "sha512-EdLyPd/XlmNsfA2uRKHuCnyLhk5DHPdKGPZmjzpcKfdx6dDZB+nEfSuaNSjReRrM7BmPaV/hSGppt9kG/W2Umw==", + "version": "10.15.4", + "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-10.15.4.tgz", + "integrity": "sha512-BKlHCMCdNUmF6gagVbehRWSEiVcZzPVltEx14OJExR9Iz9/1R6KETDWLLGv2l6yRqYFnEZZy1VDjRhArzeIGrw==", "dev": true, "requires": { - "assert-options": "0.6.2", - "pg": "8.2.2", - "pg-minify": "1.6.1", - "spex": "3.0.2" + "assert-options": "0.8.0", + "pg": "8.8.0", + "pg-minify": "1.6.2", + "spex": "3.2.0" } }, "pg-protocol": { @@ -5461,9 +5432,9 @@ } }, "spex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spex/-/spex-3.0.2.tgz", - "integrity": "sha512-ZNCrOso+oNv5P01HCO4wuxV9Og5rS6ms7gGAqugfBPjx1QwfNXJI3T02ldfaap1O0dlT1sB0Rk+mhDqxt3Z27w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz", + "integrity": "sha512-9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg==", "dev": true }, "split2": { diff --git a/airbyte-webapp-e2e-tests/package.json b/airbyte-webapp-e2e-tests/package.json index 7d700aa6732a..c7d07699e859 100644 --- a/airbyte-webapp-e2e-tests/package.json +++ b/airbyte-webapp-e2e-tests/package.json @@ -19,10 +19,10 @@ "@typescript-eslint/eslint-plugin": "^5.27.1", "@typescript-eslint/parser": "^5.27.1", "cypress": "^9.2.0", - "cypress-postgres": "^1.1.1", "eslint-config-prettier": "^8.5.0", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-prettier": "^4.0.0", + "pg-promise": "^10.15.4", "prettier": "^2.6.2", "typescript": "^4.5.4" }