From b94e2da838ea50da7cadf3de790b94ea6cd9cbf5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 15:04:55 +0000 Subject: [PATCH 01/21] Bump chai from 4.3.10 to 5.0.0 Bumps [chai](https://github.com/chaijs/chai) from 4.3.10 to 5.0.0. - [Release notes](https://github.com/chaijs/chai/releases) - [Changelog](https://github.com/chaijs/chai/blob/main/History.md) - [Commits](https://github.com/chaijs/chai/compare/v4.3.10...v5.0.0) --- updated-dependencies: - dependency-name: chai dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 63 ++++++++++++++++++++++------------------------- package.json | 2 +- 2 files changed, 30 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index b14165733..46c99b1e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,7 +72,7 @@ "@types/yargs": "17.0.32", "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", - "chai": "4.3.10", + "chai": "5.0.0", "chai-http": "4.4.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", @@ -3219,11 +3219,12 @@ } }, "node_modules/assertion-error": { - "version": "1.1.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "license": "MIT", "engines": { - "node": "*" + "node": ">=12" } }, "node_modules/ast-types": { @@ -3783,21 +3784,19 @@ "license": "CC-BY-4.0" }, "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.0.0.tgz", + "integrity": "sha512-HO5p0oEKd5M6HEcwOkNAThAE3j960vIZvVcc0t2tI06Dd0ATu69cEnMB2wOhC5/ZyQ6m67w3ePjU/HzXsSsdBA==", "dev": true, "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "assertion-error": "^2.0.1", + "check-error": "^2.0.0", + "deep-eql": "^5.0.1", + "loupe": "^3.0.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/chai-http": { @@ -3878,15 +3877,12 @@ } }, "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.0.0.tgz", + "integrity": "sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==", "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, "engines": { - "node": "*" + "node": ">= 16" } }, "node_modules/chokidar": { @@ -4319,13 +4315,10 @@ } }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz", + "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==", "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, "engines": { "node": ">=6" } @@ -7861,11 +7854,12 @@ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, "node_modules/loupe": { - "version": "2.3.6", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.0.2.tgz", + "integrity": "sha512-Tzlkbynv7dtqxTROe54Il+J4e/zG2iehtJGZUYpTv8WzlkW9qyEcE83UhGJCeuF3SCfzHuM5VWhBi47phV3+AQ==", "dev": true, - "license": "MIT", "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lowercase-keys": { @@ -9519,11 +9513,12 @@ } }, "node_modules/pathval": { - "version": "1.1.1", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, - "license": "MIT", "engines": { - "node": "*" + "node": ">= 14.16" } }, "node_modules/pg": { diff --git a/package.json b/package.json index 8d0855f74..a09cbc772 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@types/yargs": "17.0.32", "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", - "chai": "4.3.10", + "chai": "5.0.0", "chai-http": "4.4.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", From 82a208582b8705be3020c4bc2724d28fffc1e864 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Wed, 3 Jan 2024 23:50:26 +0000 Subject: [PATCH 02/21] WIP: replace chai.expect with assert --- integration/test/admin/createAdminToken.ts | 8 +++--- integration/test/admin/createApiToken.ts | 30 ++++++++++---------- integration/test/admin/createEnvironment.ts | 25 ++++++++--------- integration/test/admin/createInvite.ts | 27 +++++++++--------- integration/test/admin/createTemplate.ts | 31 ++++++++++----------- integration/test/admin/deleteApiToken.ts | 18 ++++++------ integration/test/admin/deleteEnvironment.ts | 27 +++++++++--------- 7 files changed, 81 insertions(+), 85 deletions(-) diff --git a/integration/test/admin/createAdminToken.ts b/integration/test/admin/createAdminToken.ts index ca6af0e7e..9a252f0dd 100644 --- a/integration/test/admin/createAdminToken.ts +++ b/integration/test/admin/createAdminToken.ts @@ -1,7 +1,7 @@ -import { expect } from "chai"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -48,8 +48,8 @@ describe("Admin create admin token", function () { specify("Then the response should have a token and id", () => { id = resp.body.id; token = resp.body.token; - expect(id).not.to.be.empty; - expect(token).not.to.be.empty; + assert(id); + assert(token); }); context( @@ -80,7 +80,7 @@ describe("Admin create admin token", function () { }); specify("Then the response should have a 2xx status", () => { - expect(templateResponse).to.have.property("status", 201); + assert.strictEqual(templateResponse.status, 201); }); } ); diff --git a/integration/test/admin/createApiToken.ts b/integration/test/admin/createApiToken.ts index 774f4d674..8e4028129 100644 --- a/integration/test/admin/createApiToken.ts +++ b/integration/test/admin/createApiToken.ts @@ -4,6 +4,7 @@ import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -49,7 +50,7 @@ describe("Admin create API token", function () { disabled: false, }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); @@ -59,17 +60,17 @@ describe("Admin create API token", function () { const token = resp.body; const tenMinutes = 1000 * 60 * 10; - expect(resp).to.have.property("status", 201); - expect(token.token).to.be.ok; - expect(token.created).to.be.ok; + assert.strictEqual(resp.status, 201); + assert(token.token); + assert(token.created); expect(new Date(token.created).getTime()).to.be.within( Date.now() - tenMinutes, Date.now() + tenMinutes ); - expect(token.name).to.equal(name); - expect(token.disabled).to.equal(false); - expect(token.project_id).to.equal(project.id); - expect(token.environment_id).to.equal(env.id); + assert.strictEqual(token.name, name); + assert.strictEqual(token.disabled, false); + assert.strictEqual(token.project_id, project.id); + assert.strictEqual(token.environment_id, env.id); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -97,14 +98,13 @@ describe("Admin create API token", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("api_token.create"); - expect(audited.crud).to.equal("c"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.be.ok; - expect(audited.target!.fields).to.deep.equal({ + assert.strictEqual(audited.action, "api_token.create"); + assert.strictEqual(audited.crud, "c"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert(audited.target!.id); + assert.deepStrictEqual(audited.target!.fields, { name, disabled: "false", }); diff --git a/integration/test/admin/createEnvironment.ts b/integration/test/admin/createEnvironment.ts index f2b0abc86..c931bcc5a 100644 --- a/integration/test/admin/createEnvironment.ts +++ b/integration/test/admin/createEnvironment.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -46,17 +46,17 @@ describe("Admin create environment", function () { .set("Authorization", jwt) .send({ name: envName }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("The environment is returned with status 201.", function () { - expect(resp.status).to.equal(201); - expect(resp.body.id).to.be.ok; - expect(resp.body).to.have.property("name", envName); - expect(resp.body).to.have.property("project_id", project.id); + assert.strictEqual(resp.status, 201); + assert(resp.body.id); + assert.strictEqual(resp.body.name, envName); + assert.strictEqual(resp.body.project_id, project.id); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -83,14 +83,13 @@ describe("Admin create environment", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("environment.create"); - expect(audited.crud).to.equal("c"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.equal(resp.body.id); - expect(audited.target!.name).to.equal(resp.body.name); + assert.strictEqual(audited.action, "environment.create"); + assert.strictEqual(audited.crud, "c"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert.strictEqual(audited.target!.id, resp.body.id); + assert.strictEqual(audited.target!.name, resp.body.name); }); } }); diff --git a/integration/test/admin/createInvite.ts b/integration/test/admin/createInvite.ts index 2565d2161..3303ae46f 100644 --- a/integration/test/admin/createInvite.ts +++ b/integration/test/admin/createInvite.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -46,18 +46,18 @@ describe("Admin create invite", function () { .set("Authorization", jwt) .send({ email }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("The invite is returned with status 201.", function () { - expect(resp.status).to.equal(201); - expect(resp.body.id).to.be.ok; - expect(resp.body).to.have.property("project_id", project.id); - expect(resp.body).to.have.property("email", email); - expect(resp.body).to.have.property("created"); + assert.strictEqual(resp.status, 201); + assert(resp.body.id); + assert.strictEqual(resp.body.project_id, project.id); + assert.strictEqual(resp.body.email, email); + assert(resp.body.created); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -84,14 +84,13 @@ describe("Admin create invite", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("invite.create"); - expect(audited.crud).to.equal("c"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.equal(resp.body.id); - expect(audited.target!.name).to.equal(email); + assert.strictEqual(audited.action, "invite.create"); + assert.strictEqual(audited.crud, "c"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert.strictEqual(audited.target!.id, resp.body.id); + assert.strictEqual(audited.target!.name, email); }); } }); diff --git a/integration/test/admin/createTemplate.ts b/integration/test/admin/createTemplate.ts index 9ed46f1d3..31ecb8df3 100644 --- a/integration/test/admin/createTemplate.ts +++ b/integration/test/admin/createTemplate.ts @@ -4,6 +4,7 @@ import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -50,7 +51,7 @@ describe("Admin create template", function () { .set("Authorization", jwt) .send(reqBody) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); @@ -61,14 +62,13 @@ describe("Admin create template", function () { const now = Date.now(); const template = resp.body; - expect(resp).to.have.property("status", 201); - - expect(template.id).to.be.ok; - expect(template).to.have.property("name", reqBody.name); - expect(template).to.have.property("rule", reqBody.rule); - expect(template).to.have.property("template", reqBody.template); - expect(template).to.have.property("project_id", project.id); - expect(template).to.have.property("environment_id", env.id); + assert.strictEqual(resp.status, 201); + assert(template.id); + assert.strictEqual(template.name, reqBody.name); + assert.strictEqual(template.rule, reqBody.rule); + assert.strictEqual(template.template, reqBody.template); + assert.strictEqual(template.project_id, project.id); + assert.strictEqual(template.environment_id, env.id); expect(new Date(template.created).getTime()).to.be.within(now - tenMinutes, now + tenMinutes); }); @@ -97,14 +97,13 @@ describe("Admin create template", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("template.create"); - expect(audited.crud).to.equal("c"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.be.ok; - expect(audited.target!.fields).to.deep.equal(reqBody); + assert.strictEqual(audited.action, "template.create"); + assert.strictEqual(audited.crud, "c"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert(audited.target!.id); + assert.deepStrictEqual(audited.target!.fields, reqBody); }); } }); diff --git a/integration/test/admin/deleteApiToken.ts b/integration/test/admin/deleteApiToken.ts index 03c7dcdd0..ee3f595e6 100644 --- a/integration/test/admin/deleteApiToken.ts +++ b/integration/test/admin/deleteApiToken.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -45,15 +45,15 @@ describe("Admin delete API token", function () { .delete(`/admin/v1/project/${project.id}/token/${token.token}`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("The response succeeds with status 204.", function () { - expect(resp).to.have.property("status", 204); - expect(resp.body).to.deep.equal({}); + assert.strictEqual(resp.status, 204); + assert.deepStrictEqual(resp.body, {}); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -81,11 +81,11 @@ describe("Admin delete API token", function () { const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - expect(audited.action).to.equal("api_token.delete"); - expect(audited.crud).to.equal("d"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.be.ok; + assert.strictEqual(audited.action, "api_token.delete"); + assert.strictEqual(audited.crud, "d"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert(audited.target!.id); }); } }); diff --git a/integration/test/admin/deleteEnvironment.ts b/integration/test/admin/deleteEnvironment.ts index 4d02ceb24..e07870ac9 100644 --- a/integration/test/admin/deleteEnvironment.ts +++ b/integration/test/admin/deleteEnvironment.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -51,8 +51,8 @@ describe("Admin delete environment", function () { resourceId: env.id, }) .end((err, resp) => { - expect(err).to.be.null; - expect(resp.status).to.equal(201); + assert.strictEqual(err, null); + assert.strictEqual(resp.status, 201); done(); }); }); @@ -68,8 +68,8 @@ describe("Admin delete environment", function () { template: "{{}}", }) .end((err, res) => { - expect(err).to.be.null; - expect(res.status).to.equal(201); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 201); templateID = res.body.id; done(); @@ -83,15 +83,15 @@ describe("Admin delete environment", function () { .delete(`/admin/v1/project/${project.id}/environment/${env.id}`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("The environment is deleted with status 204.", function () { - expect(resp.status).to.equal(204); - expect(resp.body).to.deep.equal({}); + assert.strictEqual(resp.status, 204); + assert.deepEqual(resp.body, {}); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -117,13 +117,12 @@ describe("Admin delete environment", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("environment.delete"); - expect(audited.crud).to.equal("d"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.equal(env.id); + assert.strictEqual(audited.action, "environment.delete"); + assert.strictEqual(audited.crud, "d"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert.strictEqual(audited.target!.id, env.id); }); } }); From 2721a02b05010e464ff5c8d55f800b0ccdef118d Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Thu, 4 Jan 2024 00:06:06 +0000 Subject: [PATCH 03/21] WIP --- integration/test/admin/deleteInvite.ts | 21 +++--- integration/test/admin/deleteTemplate.ts | 25 ++++--- integration/test/admin/getproject.ts | 87 ++++++++++------------- integration/test/admin/listInvites.ts | 25 ++++--- integration/test/admin/searchTemplates.ts | 7 +- 5 files changed, 75 insertions(+), 90 deletions(-) diff --git a/integration/test/admin/deleteInvite.ts b/integration/test/admin/deleteInvite.ts index 6a6017a7f..742c32275 100644 --- a/integration/test/admin/deleteInvite.ts +++ b/integration/test/admin/deleteInvite.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -46,7 +46,7 @@ describe("Admin delete invite", function () { .set("Authorization", jwt) .send({ email }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); inviteID = res.body.id; done(); }); @@ -61,15 +61,15 @@ describe("Admin delete invite", function () { .delete(`/admin/v1/project/${project.id}/invite/${inviteID}`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("It should be deleted with status 204.", function () { - expect(resp.status).to.equal(204); - expect(resp.body).to.deep.equal({}); + assert.strictEqual(resp.status, 204); + assert.deepStrictEqual(resp.body, {}); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -95,13 +95,12 @@ describe("Admin delete invite", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("invite.delete"); - expect(audited.crud).to.equal("d"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.equal(inviteID); + assert.strictEqual(audited.action, "invite.delete"); + assert.strictEqual(audited.crud, "d"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert.strictEqual(audited.target!.id, inviteID); }); } }); diff --git a/integration/test/admin/deleteTemplate.ts b/integration/test/admin/deleteTemplate.ts index 2aebe3fc9..a4453e1db 100644 --- a/integration/test/admin/deleteTemplate.ts +++ b/integration/test/admin/deleteTemplate.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -50,8 +50,8 @@ describe("Admin delete template", function () { template: "{{}}", }) .end((err, res) => { - expect(err).to.be.null; - expect(res.status).to.equal(201); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 201); templateID = res.body.id; done(); @@ -65,16 +65,16 @@ describe("Admin delete template", function () { .delete(`/admin/v1/project/${project.id}/templates/${templateID}/?environment_id=${env.id}`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; - expect(res.status).to.equal(204); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 204); resp = res; done(); }); }); specify("It should be deleted with status 204.", function () { - expect(resp.status).to.equal(204); - expect(resp.body).to.deep.equal({}); + assert.strictEqual(resp.status, 204); + assert.deepStrictEqual(resp.body, {}); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -100,13 +100,12 @@ describe("Admin delete template", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("template.delete"); - expect(audited.crud).to.equal("d"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.equal(templateID); + assert.strictEqual(audited.action, "template.delete"); + assert.strictEqual(audited.crud, "d"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert.strictEqual(audited.target!.id, templateID); }); } }); diff --git a/integration/test/admin/getproject.ts b/integration/test/admin/getproject.ts index 0793347ab..dfeecf7d0 100644 --- a/integration/test/admin/getproject.ts +++ b/integration/test/admin/getproject.ts @@ -1,9 +1,8 @@ -import { expect } from "chai"; import "chai-http"; -import Chance from "chance"; import * as Env from "../env"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -23,64 +22,52 @@ describe("Admin Get Project", function () { beforeEach(retracedUp(Env)); // admin user - context( - "And an admin user exists with a project pending deletion", - function () { - before(async function () { - const admin: any = await adminUser(Env); - jwt = admin.jwt; - project = admin.project; - env = project.environments[0]; - }); + context("And an admin user exists with a project pending deletion", function () { + before(async function () { + const admin: any = await adminUser(Env); + jwt = admin.jwt; + project = admin.project; + env = project.environments[0]; + }); + + // with a pending environment deletion + before(function (done) { + chai + .request(Env.Endpoint) + .post(`/admin/v1/project/${project.id}/environment/${env.id}/deletion_request`) + .set("Authorization", jwt) + .send({ + resourceId: env.id, + resourceKind: "environment", + }) + .end((err, res) => { + assert.strictEqual(err, null); + delReqId = res.body.id; + done(); + }); + }); + + context("When a call is made to get the project by id", function () { + let responseBody; - // with a pending environment deletion before(function (done) { chai .request(Env.Endpoint) - .post( - `/admin/v1/project/${project.id}/environment/${env.id}/deletion_request` - ) + .get(`/admin/v1/project/${project.id}`) .set("Authorization", jwt) - .send({ - resourceId: env.id, - resourceKind: "environment", - }) .end((err, res) => { - expect(err).to.be.null; - delReqId = res.body.id; + assert.strictEqual(err, null); + responseBody = res.body; done(); }); }); - context("When a call is made to get the project by id", function () { - let responseBody; - - before(function (done) { - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}`) - .set("Authorization", jwt) - .end((err, res) => { - expect(err).to.be.null; - responseBody = res.body; - done(); - }); - }); - - specify( - "The response should include the environment with deletion statuses.", - function () { - const delEnv = responseBody.project.environments.find( - ({ id }) => id === env.id - ); - expect(delEnv.deletionRequest.id).to.equal(delReqId); - expect(delEnv.deletionRequest.resourceKind).to.equal( - "environment" - ); - } - ); + specify("The response should include the environment with deletion statuses.", function () { + const delEnv = responseBody.project.environments.find(({ id }) => id === env.id); + assert.strictEqual(delEnv.deletionRequest.id, delReqId); + assert.strictEqual(delEnv.deletionRequest.resourceKind, "environment"); }); - } - ); + }); + }); }); }); diff --git a/integration/test/admin/listInvites.ts b/integration/test/admin/listInvites.ts index 2c776695f..d15dab3b9 100644 --- a/integration/test/admin/listInvites.ts +++ b/integration/test/admin/listInvites.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -47,7 +47,7 @@ describe("Admin list invites", function () { .set("Authorization", jwt) .send({ email }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); inviteIDs.push(res.body.id); done(); }); @@ -63,19 +63,19 @@ describe("Admin list invites", function () { .get(`/admin/v1/project/${project.id}/invite`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("Both invites should be returned with status 200.", function () { - expect(resp.status).to.equal(200); + assert.strictEqual(resp.status, 200); - expect(resp.body[0]).to.have.property("id", inviteIDs[0]); - expect(resp.body[0]).to.have.property("email", emails[0]); - expect(resp.body[1]).to.have.property("id", inviteIDs[1]); - expect(resp.body[1]).to.have.property("email", emails[1]); + assert.strictEqual(resp.body[0].id, inviteIDs[0]); + assert.strictEqual(resp.body[0].email, emails[0]); + assert.strictEqual(resp.body[1].id, inviteIDs[1]); + assert.strictEqual(resp.body[1].email, emails[1]); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -98,12 +98,11 @@ describe("Admin list invites", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("invite.list"); - expect(audited.crud).to.equal("r"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); + assert.strictEqual(audited.action, "invite.list"); + assert.strictEqual(audited.crud, "r"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); }); } }); diff --git a/integration/test/admin/searchTemplates.ts b/integration/test/admin/searchTemplates.ts index f644b5ab0..cb3cfb72f 100644 --- a/integration/test/admin/searchTemplates.ts +++ b/integration/test/admin/searchTemplates.ts @@ -5,6 +5,7 @@ import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -47,16 +48,16 @@ describe("Admin search templates", function () { .get(`/admin/v1/project/${project.id}/templates?environment_id=${env.id}`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("The API should return an empty set of results with status 200", function () { - expect(resp).to.have.property("status", 200); + assert.strictEqual(resp.status, 200); - expect(resp.body).to.deep.equal({ + assert.deepStrictEqual(resp.body, { total_hits: 0, templates: [], }); From da30890f25923f80e4ccac57864a676f9296e73a Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Thu, 4 Jan 2024 15:35:48 +0000 Subject: [PATCH 04/21] WIP --- integration/test/admin/searchTemplates.ts | 28 +++---- integration/test/admin/updateApiToken.ts | 32 ++++---- integration/test/enterprise/search.ts | 98 ++++++++--------------- package-lock.json | 64 ++++++++------- package.json | 2 +- 5 files changed, 100 insertions(+), 124 deletions(-) diff --git a/integration/test/admin/searchTemplates.ts b/integration/test/admin/searchTemplates.ts index cb3cfb72f..3985b9781 100644 --- a/integration/test/admin/searchTemplates.ts +++ b/integration/test/admin/searchTemplates.ts @@ -1,5 +1,4 @@ import * as querystring from "querystring"; -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; @@ -88,12 +87,11 @@ describe("Admin search templates", function () { }; const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - const token = resp.body; - expect(audited.action).to.equal("template.search"); - expect(audited.crud).to.equal("r"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); + assert.strictEqual(audited.action, "template.search"); + assert.strictEqual(audited.crud, "r"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); }); } }); @@ -112,7 +110,7 @@ describe("Admin search templates", function () { template: "{{}}", }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); done(); }); }); @@ -132,17 +130,17 @@ describe("Admin search templates", function () { .get(`/admin/v1/project/${project.id}/templates?${qs}`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("The first template in alphabetical order should be returned.", function () { - expect(resp.status).to.equal(200); + assert.strictEqual(resp.status, 200); - expect(resp.body).to.have.property("total_hits", 1); - expect(resp.body.templates[0]).to.have.property("name", "A"); + assert.strictEqual(resp.body.total_hits, 1); + assert.strictEqual(resp.body.templates[0].name, "A"); }); }); @@ -159,17 +157,17 @@ describe("Admin search templates", function () { .get(`/admin/v1/project/${project.id}/templates?${qs}`) .set("Authorization", jwt) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); resp = res; done(); }); }); specify("The first template in alphabetical order should be returned.", function () { - expect(resp.status).to.equal(200); + assert.strictEqual(resp.status, 200); - expect(resp.body).to.have.property("total_hits", 1); - expect(resp.body.templates[0]).to.have.property("name", "Z"); + assert.strictEqual(resp.body.total_hits, 1); + assert.strictEqual(resp.body.templates[0].name, "Z"); }); }); }); diff --git a/integration/test/admin/updateApiToken.ts b/integration/test/admin/updateApiToken.ts index 67a4253ac..8dc3269be 100644 --- a/integration/test/admin/updateApiToken.ts +++ b/integration/test/admin/updateApiToken.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import "chai-http"; import { Client } from "@retracedhq/retraced"; import * as Env from "../env"; @@ -6,6 +5,7 @@ import Chance from "chance"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import { sleep } from "../pkg/util"; +import assert from "assert"; const chance = new Chance(); @@ -51,7 +51,7 @@ describe("Admin Update API tokens", function () { name: newName, }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); done(); }); }); @@ -65,8 +65,8 @@ describe("Admin Update API tokens", function () { .set("Authorization", jwt) .end((err, res) => { const updatedTkn = res.body.project.tokens.find((tkn) => tkn.token === token.token); - expect(updatedTkn.name).not.to.equal(token.name); - expect(updatedTkn.name).to.equal(newName); + assert.notStrictEqual(updatedTkn.name, token.name); + assert.strictEqual(updatedTkn.name, newName); done(); }); }); @@ -96,11 +96,11 @@ describe("Admin Update API tokens", function () { const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - expect(audited.action).to.equal("api_token.update"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.equal(token.token); - expect(audited.fields).to.deep.equal({ + assert.strictEqual(audited.action, "api_token.update"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert.strictEqual(audited.target!.id, token.token); + assert.deepStrictEqual(audited.fields, { name: newName, }); }); @@ -117,7 +117,7 @@ describe("Admin Update API tokens", function () { disabled: true, }) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); done(); }); }); @@ -129,7 +129,7 @@ describe("Admin Update API tokens", function () { .set("Authorization", jwt) .end((err, res) => { const updatedTkn = res.body.project.tokens.find((tkn) => tkn.token === token.token); - expect(updatedTkn.disabled).to.equal(true); + assert.strictEqual(updatedTkn.disabled, true); done(); }); }); @@ -159,11 +159,11 @@ describe("Admin Update API tokens", function () { const connection = await headless.query(query, mask, 1); const audited = connection.currentResults[0]; - expect(audited.action).to.equal("api_token.update"); - expect(audited.group!.id).to.equal(project.id); - expect(audited.actor!.id).to.equal(adminId); - expect(audited.target!.id).to.equal(token.token); - expect(audited.fields).to.deep.equal({ + assert.strictEqual(audited.action, "api_token.update"); + assert.strictEqual(audited.group!.id, project.id); + assert.strictEqual(audited.actor!.id, adminId); + assert.strictEqual(audited.target!.id, token.token); + assert.deepStrictEqual(audited.fields, { disabled: "true", }); }); diff --git a/integration/test/enterprise/search.ts b/integration/test/enterprise/search.ts index 86534f24f..6b3c2208e 100644 --- a/integration/test/enterprise/search.ts +++ b/integration/test/enterprise/search.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; @@ -7,6 +6,7 @@ import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -67,7 +67,7 @@ describe("Enterprise Search", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); }); @@ -89,9 +89,9 @@ describe("Enterprise Search", function () { }) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 201); - expect(responseBody.token).to.exist; + assert.strictEqual(err, null); + assert.strictEqual(res.status, 201); + assert(responseBody.token); token = responseBody.token; done(); }); @@ -111,8 +111,8 @@ describe("Enterprise Search", function () { .send(search("integration" + randomNumber.toString())) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(res).to.have.property("status", 200); - expect(err).to.be.null; + assert.strictEqual(res.status, 200); + assert.strictEqual(err, null); done(); }); }); @@ -120,56 +120,32 @@ describe("Enterprise Search", function () { specify( "Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.created", - isoDate(currentTime) - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.description", + assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(currentTime)); + assert.strictEqual( + responseBody.data.search.edges[0].node.description, "Automated integration testing..." ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", + assert.strictEqual( + responseBody.data.search.edges[0].node.actor.fields[0].key, "department" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", - "rtrcdqa1234" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.name", - "Retraced API" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].key", + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[0].node.target.name, "Retraced API"); + assert.strictEqual( + responseBody.data.search.edges[0].node.target.fields[0].key, "record_count" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].value", - "100" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_failure", false); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.source_ip", - "192.168.0.1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].key", - "quality" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].value", - "excellent" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].value, "100"); + assert.strictEqual(responseBody.data.search.edges[0].node.is_failure, false); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, "192.168.0.1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].key, "quality"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].value, "excellent"); } ); } @@ -187,8 +163,8 @@ describe("Enterprise Search", function () { .send(search("viewlogs.custom")) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); @@ -196,21 +172,15 @@ describe("Enterprise Search", function () { specify( "Then the most recent event should be a viewlogs.custom event with the enterprise token specified as the actor", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", - "viewlogs.custom" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", - "rtrcdqa1234" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "r"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.id", + assert.strictEqual(responseBody.data.search.edges[0].node.action, "viewlogs.custom"); + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "r"); + assert.strictEqual( + responseBody.data.search.edges[0].node.actor.id, "enterprise:" + token.substring(0, 7) ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.name", + assert.strictEqual( + responseBody.data.search.edges[0].node.actor.name, "QA" + randomNumber.toString() ); } diff --git a/package-lock.json b/package-lock.json index 46c99b1e6..4137324a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,7 +72,7 @@ "@types/yargs": "17.0.32", "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", - "chai": "5.0.0", + "chai": "4.3.10", "chai-http": "4.4.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", @@ -3219,12 +3219,12 @@ } }, "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, "engines": { - "node": ">=12" + "node": "*" } }, "node_modules/ast-types": { @@ -3784,19 +3784,21 @@ "license": "CC-BY-4.0" }, "node_modules/chai": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.0.0.tgz", - "integrity": "sha512-HO5p0oEKd5M6HEcwOkNAThAE3j960vIZvVcc0t2tI06Dd0ATu69cEnMB2wOhC5/ZyQ6m67w3ePjU/HzXsSsdBA==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.0.0", - "deep-eql": "^5.0.1", - "loupe": "^3.0.0", - "pathval": "^2.0.0" + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" }, "engines": { - "node": ">=12" + "node": ">=4" } }, "node_modules/chai-http": { @@ -3877,12 +3879,15 @@ } }, "node_modules/check-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.0.0.tgz", - "integrity": "sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { - "node": ">= 16" + "node": "*" } }, "node_modules/chokidar": { @@ -4315,10 +4320,13 @@ } }, "node_modules/deep-eql": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz", - "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, "engines": { "node": ">=6" } @@ -7854,9 +7862,9 @@ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, "node_modules/loupe": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.0.2.tgz", - "integrity": "sha512-Tzlkbynv7dtqxTROe54Il+J4e/zG2iehtJGZUYpTv8WzlkW9qyEcE83UhGJCeuF3SCfzHuM5VWhBi47phV3+AQ==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, "dependencies": { "get-func-name": "^2.0.1" @@ -9513,12 +9521,12 @@ } }, "node_modules/pathval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "engines": { - "node": ">= 14.16" + "node": "*" } }, "node_modules/pg": { diff --git a/package.json b/package.json index a09cbc772..8d0855f74 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@types/yargs": "17.0.32", "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", - "chai": "5.0.0", + "chai": "4.3.10", "chai-http": "4.4.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", From 9d23e1f59cbdbf4d1c4005d93fa93b15eeb52f05 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Thu, 4 Jan 2024 18:00:24 +0000 Subject: [PATCH 05/21] WIP --- integration/test/enterprise/searchscope.ts | 16 +-- integration/test/pkg/retracedUp.ts | 20 ++-- integration/test/publisher/createevent.ts | 101 +++++++----------- integration/test/publisher/createeventbulk.ts | 91 ++++++---------- 4 files changed, 91 insertions(+), 137 deletions(-) diff --git a/integration/test/enterprise/searchscope.ts b/integration/test/enterprise/searchscope.ts index 975fb7fa2..a13072fa8 100644 --- a/integration/test/enterprise/searchscope.ts +++ b/integration/test/enterprise/searchscope.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; @@ -7,6 +6,7 @@ import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep } from "../pkg/util"; import * as Env from "../env"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -70,7 +70,7 @@ describe("Enterprise Search Group Scoping", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); }); @@ -87,9 +87,9 @@ describe("Enterprise Search Group Scoping", function () { .send({ display_name: "QA" + randomNumber.toString() }) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 201); - expect(responseBody.token).to.exist; + assert.strictEqual(err, null); + assert.strictEqual(res.status, 201); + assert(responseBody.token); otherToken = responseBody.token; done(); }); @@ -108,14 +108,14 @@ describe("Enterprise Search Group Scoping", function () { .send(search("integration.test.api." + randomNumber.toString())) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); }); specify("Then the response should not include the event from Retraced Group", function () { - expect(responseBody.data.search.edges).to.be.empty; + assert.strictEqual(responseBody.data.search.edges, {}); }); } ); diff --git a/integration/test/pkg/retracedUp.ts b/integration/test/pkg/retracedUp.ts index 244436ffe..c70268fd2 100644 --- a/integration/test/pkg/retracedUp.ts +++ b/integration/test/pkg/retracedUp.ts @@ -1,14 +1,16 @@ +import assert from "assert"; -const chai = require("chai") - , chaiHttp = require("chai-http"); +const chai = require("chai"), + chaiHttp = require("chai-http"); chai.use(chaiHttp); export const retracedUp = (Env) => (done) => { - chai.request(Env.Endpoint) - .get("/") - .end(function (err, res) { - chai.expect(err).to.be.null; - chai.expect(res).to.have.status(200); - done(); - }); + chai + .request(Env.Endpoint) + .get("/") + .end(function (err, res) { + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); + done(); + }); }; diff --git a/integration/test/publisher/createevent.ts b/integration/test/publisher/createevent.ts index 95853ab47..5287d4c4a 100644 --- a/integration/test/publisher/createevent.ts +++ b/integration/test/publisher/createevent.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; @@ -9,6 +8,7 @@ import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; import * as util from "util"; import picocolors from "picocolors"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -20,7 +20,7 @@ currentTime.setMilliseconds(0); // api only returns seconds precision describe("Create Events", function () { describe("Given the Retraced API is up and running", function () { - let responseBody = {}; + let responseBody: any = {}; let resultBody; beforeEach(retracedUp(Env)); @@ -68,7 +68,7 @@ describe("Create Events", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); }); @@ -88,62 +88,41 @@ describe("Create Events", function () { } else if (Env.Debug) { console.log(util.inspect(res.body, false, 100, true)); } - expect(err).to.be.null; - expect(res).to.have.property("status", 200); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); }); specify("Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.created", - isoDate(currentTime) - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.description", + assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(currentTime)); + assert.strictEqual( + responseBody.data.search.edges[0].node.description, "Automated integration testing..." ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", - "department" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.group.id", "rtrcdqa1234"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.name", - "Retraced API" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].key", - "record_count" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].value", - "100" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_failure", false); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.source_ip", "192.168.0.1"); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.fields[0].key", "quality"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].value", - "excellent" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].key, "department"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[0].node.target.name, "Retraced API"); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].key, "record_count"); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].value, "100"); + assert.strictEqual(responseBody.data.search.edges[0].node.is_failure, false); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, "192.168.0.1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].key, "quality"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].value, "excellent"); }); }); }); }); describe("Given the Retraced API is up and running", function () { - let responseBody = {}; + let responseBody: any = {}; let resultBody; beforeEach(retracedUp(Env)); @@ -166,7 +145,7 @@ describe("Create Events", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); }); @@ -183,25 +162,25 @@ describe("Create Events", function () { .send(thisQuery) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); }); specify("Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integrationminimum" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_anonymous", true); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.created", null); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.description", null); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.group.id", null); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.target.name", null); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_failure", null); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.source_ip", null); + assert.strictEqual(responseBody.data.search.edges[0].node.is_anonymous, true); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.created, null); + assert.strictEqual(responseBody.data.search.edges[0].node.description, null); + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, null); + assert.strictEqual(responseBody.data.search.edges[0].node.target.name, null); + assert.strictEqual(responseBody.data.search.edges[0].node.is_failure, null); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, null); }); }); } @@ -231,7 +210,7 @@ describe("Create Events", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); try { resultBody = await retraced.reportEvent(event); } catch (e) { @@ -242,8 +221,8 @@ describe("Create Events", function () { specify( "Then the Retraced API should reject the call with a 401 Unauthorized and not return anything", function () { - expect(responseBody).to.be.empty; - expect(httpResponse).to.contain("401 Unauthorized"); + assert.strictEqual(responseBody, {}); + assert.strictEqual(httpResponse.includes("401 Unauthorized"), true); } ); }); @@ -277,8 +256,8 @@ describe("Create Events", function () { }); specify("The API should return a 400 response code.", async function () { - expect(resultBody).to.be.undefined; - expect(httpResponse).to.contain("400"); + assert.strictEqual(resultBody, undefined); + assert.strictEqual(httpResponse.includes("400"), true); }); }); }); diff --git a/integration/test/publisher/createeventbulk.ts b/integration/test/publisher/createeventbulk.ts index 11a9d4535..a7474fe97 100644 --- a/integration/test/publisher/createeventbulk.ts +++ b/integration/test/publisher/createeventbulk.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import "mocha"; import "chai-http"; @@ -8,6 +7,7 @@ import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; import * as util from "util"; import picocolors from "picocolors"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -116,81 +116,54 @@ describe("Bulk Create Events", function () { } else if (Env.Debug) { console.log(util.inspect(res.body, false, 100, true)); } - expect(err).to.be.null; - expect(res).to.have.property("status", 200); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); }); specify("Then the response should contain all four events", function () { - expect(responseBody.data.search.edges.length).to.equal(4); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual(responseBody.data.search.edges.length, 4); + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integrationbulk" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.id", - "LATEST@retraced.io" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.created", - isoDate(latest) - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.group.id", "rtrcdqa1234"); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.source_ip", - "192.168.0.1" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.id, "LATEST@redtraced.io"); + assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(latest)); + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, "192.168.0.1"); - expect(responseBody).to.have.nested.property( - "data.search.edges[1].node.action", + assert.strictEqual( + responseBody.data.search.edges[1].node.action, "integrationbulk" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[1].node.actor.id", - "LATER@retraced.io" - ); - expect(responseBody).to.have.nested.property("data.search.edges[1].node.created", isoDate(later)); - expect(responseBody).to.have.nested.property("data.search.edges[1].node.group.id", "rtrcdqa1234"); - expect(responseBody).to.have.nested.property("data.search.edges[1].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[1].node.source_ip", - "192.168.0.1" - ); + assert.strictEqual(responseBody.data.search.edges[1].node.actor.id, "LATER@retraced.io"); + assert.strictEqual(responseBody.data.search.edges[1].node.created, isoDate(later)); + assert.strictEqual(responseBody.data.search.edges[1].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[1].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[1].node.source_ip, "192.168.0.1"); - expect(responseBody).to.have.nested.property( - "data.search.edges[2].node.action", + assert.strictEqual( + responseBody.data.search.edges[2].node.action, "integrationbulk" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[2].node.actor.id", - "NEXT@retraced.io" - ); - expect(responseBody).to.have.nested.property("data.search.edges[2].node.created", isoDate(next)); - expect(responseBody).to.have.nested.property("data.search.edges[2].node.group.id", "rtrcdqa1234"); - expect(responseBody).to.have.nested.property("data.search.edges[2].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[2].node.source_ip", - "192.168.0.1" - ); + assert.strictEqual(responseBody.data.search.edges[2].node.actor.id, "NEXT@retraced.io"); + assert.strictEqual(responseBody.data.search.edges[2].node.created, isoDate(next)); + assert.strictEqual(responseBody.data.search.edges[2].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[2].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[2].node.source_ip, "192.168.0.1"); - expect(responseBody).to.have.nested.property( - "data.search.edges[3].node.action", + assert.strictEqual( + responseBody.data.search.edges[3].node.action, "integrationbulk" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[3].node.actor.id", - "NOW@retraced.io" - ); - expect(responseBody).to.have.nested.property("data.search.edges[3].node.created", isoDate(now)); - expect(responseBody).to.have.nested.property("data.search.edges[3].node.group.id", "rtrcdqa1234"); - expect(responseBody).to.have.nested.property("data.search.edges[3].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[3].node.source_ip", - "192.168.0.1" - ); + assert.strictEqual(responseBody.data.search.edges[3].node.actor.id, "NOW@retraced.io"); + assert.strictEqual(responseBody.data.search.edges[3].node.created, isoDate(now)); + assert.strictEqual(responseBody.data.search.edges[3].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[3].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[3].node.source_ip, "192.168.0.1"); }); }); } From a175c4a3308db55495f83c0edcff3ddfcb868408 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Thu, 4 Jan 2024 23:43:11 +0000 Subject: [PATCH 06/21] fixed tests --- integration/test/enterprise/searchscope.ts | 2 +- integration/test/publisher/createevent.ts | 2 +- integration/test/publisher/createeventbulk.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integration/test/enterprise/searchscope.ts b/integration/test/enterprise/searchscope.ts index a13072fa8..1b0263c93 100644 --- a/integration/test/enterprise/searchscope.ts +++ b/integration/test/enterprise/searchscope.ts @@ -115,7 +115,7 @@ describe("Enterprise Search Group Scoping", function () { }); }); specify("Then the response should not include the event from Retraced Group", function () { - assert.strictEqual(responseBody.data.search.edges, {}); + assert.strictEqual(responseBody.data.search.edges, []); }); } ); diff --git a/integration/test/publisher/createevent.ts b/integration/test/publisher/createevent.ts index 5287d4c4a..71cac7141 100644 --- a/integration/test/publisher/createevent.ts +++ b/integration/test/publisher/createevent.ts @@ -221,7 +221,7 @@ describe("Create Events", function () { specify( "Then the Retraced API should reject the call with a 401 Unauthorized and not return anything", function () { - assert.strictEqual(responseBody, {}); + assert.deepStrictEqual(responseBody, {}); assert.strictEqual(httpResponse.includes("401 Unauthorized"), true); } ); diff --git a/integration/test/publisher/createeventbulk.ts b/integration/test/publisher/createeventbulk.ts index a7474fe97..582b54e17 100644 --- a/integration/test/publisher/createeventbulk.ts +++ b/integration/test/publisher/createeventbulk.ts @@ -129,7 +129,7 @@ describe("Bulk Create Events", function () { responseBody.data.search.edges[0].node.action, "integrationbulk" + randomNumber.toString() ); - assert.strictEqual(responseBody.data.search.edges[0].node.actor.id, "LATEST@redtraced.io"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.id, "LATEST@retraced.io"); assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(latest)); assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234"); assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); From e1b3c23bb3f9b82b3d5d4325612b92fa73f6b495 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Thu, 4 Jan 2024 23:48:05 +0000 Subject: [PATCH 07/21] fixed tests --- integration/test/enterprise/searchscope.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/test/enterprise/searchscope.ts b/integration/test/enterprise/searchscope.ts index 1b0263c93..f8e41d3b5 100644 --- a/integration/test/enterprise/searchscope.ts +++ b/integration/test/enterprise/searchscope.ts @@ -115,7 +115,7 @@ describe("Enterprise Search Group Scoping", function () { }); }); specify("Then the response should not include the event from Retraced Group", function () { - assert.strictEqual(responseBody.data.search.edges, []); + assert.deepStrictEqual(responseBody.data.search.edges, []); }); } ); From d3d036ff0a24645fcbb18441094bafa1de4fd552 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Fri, 5 Jan 2024 00:14:08 +0000 Subject: [PATCH 08/21] converted date check --- integration/test/admin/createApiToken.ts | 7 +++---- integration/test/admin/createTemplate.ts | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/integration/test/admin/createApiToken.ts b/integration/test/admin/createApiToken.ts index 8e4028129..f98d5cd1d 100644 --- a/integration/test/admin/createApiToken.ts +++ b/integration/test/admin/createApiToken.ts @@ -63,10 +63,9 @@ describe("Admin create API token", function () { assert.strictEqual(resp.status, 201); assert(token.token); assert(token.created); - expect(new Date(token.created).getTime()).to.be.within( - Date.now() - tenMinutes, - Date.now() + tenMinutes - ); + + const createdDate = new Date(token.created).getTime(); + assert.strictEqual(Date.now() - createdDate < tenMinutes, true); assert.strictEqual(token.name, name); assert.strictEqual(token.disabled, false); assert.strictEqual(token.project_id, project.id); diff --git a/integration/test/admin/createTemplate.ts b/integration/test/admin/createTemplate.ts index 31ecb8df3..0aa261dcb 100644 --- a/integration/test/admin/createTemplate.ts +++ b/integration/test/admin/createTemplate.ts @@ -69,7 +69,8 @@ describe("Admin create template", function () { assert.strictEqual(template.template, reqBody.template); assert.strictEqual(template.project_id, project.id); assert.strictEqual(template.environment_id, env.id); - expect(new Date(template.created).getTime()).to.be.within(now - tenMinutes, now + tenMinutes); + const createdDate = new Date(template.created).getTime(); + assert.strictEqual(Date.now() - createdDate < tenMinutes, true); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { From 05b2da8ad42f1e010904c2cd8faa6d239174901c Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Fri, 5 Jan 2024 13:25:49 +0000 Subject: [PATCH 09/21] WIP --- integration/test/publisher/deletetokens.ts | 18 ++-- .../test/publisher/groupnameresolution.ts | 38 ++++----- integration/test/publisher/listtokens.ts | 82 +++++++------------ integration/test/publisher/search.ts | 28 +++---- integration/test/viewer/createsavedexport.ts | 23 +++--- 5 files changed, 78 insertions(+), 111 deletions(-) diff --git a/integration/test/publisher/deletetokens.ts b/integration/test/publisher/deletetokens.ts index 040c112dd..ff8dde0ba 100644 --- a/integration/test/publisher/deletetokens.ts +++ b/integration/test/publisher/deletetokens.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; @@ -6,6 +5,7 @@ import "chai-http"; import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import * as Env from "../env"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -66,7 +66,7 @@ describe("Deleting Enterprise Tokens", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); }); @@ -83,9 +83,9 @@ describe("Deleting Enterprise Tokens", function () { .send({ display_name: "QA" + randomNumber.toString() }) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 201); - expect(responseBody.token).to.exist; + assert.strictEqual(err, null); + assert.strictEqual(res.status, 201); + assert(responseBody.token); token = responseBody.token; done(); }); @@ -99,9 +99,9 @@ describe("Deleting Enterprise Tokens", function () { .set("Authorization", `token=${Env.ApiKey}`) .send({ display_name: "QA" + randomNumber.toString() }) .end(function (err, res) { - expect(err).to.be.null; - expect(res).to.have.property("status", 204); - expect(responseBody.token).to.exist; + assert.strictEqual(err, null); + assert.strictEqual(res.status, 204); + assert(responseBody.token); token = responseBody.token; done(); }); @@ -121,7 +121,7 @@ describe("Deleting Enterprise Tokens", function () { }); specify("Then the response should be a 401", function () { - expect(response).to.have.property("status", 401); + assert.strictEqual(response.status, 401); }); }); }); diff --git a/integration/test/publisher/groupnameresolution.ts b/integration/test/publisher/groupnameresolution.ts index 3d3b46aa3..8acea709c 100644 --- a/integration/test/publisher/groupnameresolution.ts +++ b/integration/test/publisher/groupnameresolution.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Event, Client } from "@retracedhq/retraced"; import "mocha"; import "chai-http"; @@ -8,6 +7,7 @@ import { sleep } from "../pkg/util"; import * as Env from "../env"; import * as util from "util"; import picocolors from "picocolors"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -81,9 +81,8 @@ describe("Group Name Resolution", function () { } else if (Env.Debug) { console.log(util.inspect(res.body, false, 100, true)); } - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); @@ -91,16 +90,13 @@ describe("Group Name Resolution", function () { specify( "Then the response should contain a non-null group.id, and the second event's group.name should be populated", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration" + FIRST_EVENT ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", - "rtrcdqa1234" + GROUP_ID - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.name", + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234" + GROUP_ID); + assert.strictEqual( + responseBody.data.search.edges[0].node.group.name, "group number " + GROUP_ID ); } @@ -123,9 +119,8 @@ describe("Group Name Resolution", function () { } else if (Env.Debug) { console.log(util.inspect(res.body, false, 100, true)); } - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); @@ -133,16 +128,13 @@ describe("Group Name Resolution", function () { specify( "Then the response should contain a non-null group.id, and the second event's group.name should be populated", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration" + SECOND_EVENT ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", - "rtrcdqa1234" + GROUP_ID - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.name", + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234" + GROUP_ID); + assert.strictEqual( + responseBody.data.search.edges[0].node.group.name, "group number " + GROUP_ID ); } diff --git a/integration/test/publisher/listtokens.ts b/integration/test/publisher/listtokens.ts index 001264544..714bf28ed 100644 --- a/integration/test/publisher/listtokens.ts +++ b/integration/test/publisher/listtokens.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; @@ -7,6 +6,7 @@ import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -67,7 +67,7 @@ describe("Listing Enterprise Tokens", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); }); @@ -80,9 +80,9 @@ describe("Listing Enterprise Tokens", function () { .send({ display_name: "QA" + randomNumber.toString() }) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 201); - expect(responseBody.token).to.exist; + assert.strictEqual(err, null); + assert.strictEqual(res.status, 201); + assert(responseBody.token); token = responseBody.token; done(); }); @@ -96,14 +96,14 @@ describe("Listing Enterprise Tokens", function () { .set("Authorization", `token=${Env.ApiKey}`) .end(function (err, res) { tokens = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); specify("Then the response should contain at least one enterprise token ", function () { - expect(tokens.length).to.be.greaterThan(0); - expect(tokens).to.have.nested.property("[0].token"); + assert.strictEqual(tokens.length > 0, true); + assert(tokens[0].token); }); context( @@ -120,8 +120,8 @@ describe("Listing Enterprise Tokens", function () { .send(search("integration" + randomNumber.toString())) .end(function (err, res) { responseBody = JSON.parse(res.text); - expect(res).to.have.property("status", 200); - expect(err).to.be.null; + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); @@ -129,56 +129,32 @@ describe("Listing Enterprise Tokens", function () { specify( "Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.created", - isoDate(currentTime) - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.description", + assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(currentTime)); + assert.strictEqual( + responseBody.data.search.edges[0].node.description, "Automated integration testing..." ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", + assert.strictEqual( + responseBody.data.search.edges[0].node.actor.fields[0].key, "department" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", - "rtrcdqa1234" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.name", - "Retraced API" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].key", + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); + assert.strictEqual(responseBody.data.search.edges[0].node.group.id, "rtrcdqa1234"); + assert.strictEqual(responseBody.data.search.edges[0].node.target.name, "Retraced API"); + assert.strictEqual( + responseBody.data.search.edges[0].node.target.fields[0].key, "record_count" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].value", - "100" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_failure", false); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.source_ip", - "192.168.0.1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].key", - "quality" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].value", - "excellent" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].value, "100"); + assert.strictEqual(responseBody.data.search.edges[0].node.is_failure, false); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, "192.168.0.1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].key, "quality"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].value, "excellent"); } ); } diff --git a/integration/test/publisher/search.ts b/integration/test/publisher/search.ts index 0603df25b..3faa543be 100644 --- a/integration/test/publisher/search.ts +++ b/integration/test/publisher/search.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { EventsConnection, Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; @@ -8,6 +7,7 @@ import { retracedUp } from "../pkg/retracedUp"; import { sleep } from "../pkg/util"; import * as Env from "../env"; import * as _ from "lodash"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -70,7 +70,7 @@ describe("Publisher Search", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); return retraced.reportEvent(event); }) ) @@ -100,7 +100,7 @@ describe("Publisher Search", function () { specify( "Then the connection should contain the first 3 results and metadata about the full results.", function () { - expect(connection.currentResults).to.deep.equal([ + assert.deepEqual(connection.currentResults, [ { action: "integration.test.api", actor: { id: uniqueActorId }, @@ -114,11 +114,11 @@ describe("Publisher Search", function () { actor: { id: uniqueActorId }, }, ]); - expect(connection.totalCount).to.equal(10); - expect(connection.hasPreviousPage()).to.equal(false); - expect(connection.totalPages()).to.equal(4); - expect(connection.currentPageNumber).to.equal(1); - expect(connection.hasNextPage()).to.equal(true); + assert.strictEqual(connection.totalCount, 10); + assert.strictEqual(connection.hasPreviousPage(), false); + assert.strictEqual(connection.totalPages(), 4); + assert.strictEqual(connection.currentPageNumber, 1); + assert.strictEqual(connection.hasNextPage(), true); } ); @@ -133,12 +133,12 @@ describe("Publisher Search", function () { specify( "Then the connection should contain the last result and metadata about the full results.", function () { - expect(connection.currentPageNumber).to.equal(4); - expect(connection.totalCount).to.equal(10); - expect(connection.hasNextPage()).to.equal(false); - expect(connection.hasPreviousPage()).to.equal(true); - expect(connection.totalPages()).to.equal(4); - expect(connection.currentResults).to.deep.equal([ + assert.strictEqual(connection.currentPageNumber, 4); + assert.strictEqual(connection.totalCount, 10); + assert.strictEqual(connection.hasNextPage(), false); + assert.strictEqual(connection.hasPreviousPage(), true); + assert.strictEqual(connection.totalPages(), 4); + assert.deepEqual(connection.currentResults, [ { action: "integration.test.api", actor: { id: uniqueActorId }, diff --git a/integration/test/viewer/createsavedexport.ts b/integration/test/viewer/createsavedexport.ts index d41ede7bd..3c1ad9b66 100644 --- a/integration/test/viewer/createsavedexport.ts +++ b/integration/test/viewer/createsavedexport.ts @@ -1,5 +1,4 @@ import * as querystring from "querystring"; -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import "mocha"; import "chai-http"; @@ -8,6 +7,7 @@ import * as Env from "../env"; import * as jwt from "jsonwebtoken"; import { sleep } from "../pkg/util"; import * as _ from "lodash"; +import assert from "assert"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -39,7 +39,7 @@ describe("Viewer API", function () { .get(`/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`) .set("Authorization", `Token token=${Env.ApiKey}`) .end((err, res) => { - expect(err).to.be.null; + assert.strictEqual(err, null); token = res.body.token; done(); }); @@ -54,8 +54,8 @@ describe("Viewer API", function () { .send({ token }) .end(function (err, res: any) { viewerSession = JSON.parse(res.text).token; - expect(err).to.be.null; - expect(res).to.have.property("status", 200); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); done(); }); }); @@ -83,14 +83,14 @@ describe("Viewer API", function () { }) .end((err, res) => { responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 201); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 201); done(); }); }); specify("Then the response should contain the new saved export.", function () { - expect(responseBody.id).to.be.ok; + assert(responseBody.id); }); // This test only runs in dev where we know the JWT signing secret. Dev should @@ -145,13 +145,12 @@ describe("Viewer API", function () { .request(Env.Endpoint) .get(`/viewer/v1/project/${Env.ProjectID}/export/${responseBody.id}/rendered?jwt=${tkn}`) .end((err, res) => { - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - expect(res.text.split("\n")).to.have.length(eventCount + 2); + assert.strictEqual(err, null); + assert.strictEqual(res.status, 200); + assert.strictEqual(res.text.split("\n").length, eventCount + 2); _.each(ids, function (id) { - expect(res.text).to.match(new RegExp(id)); + assert(res.text.match(new RegExp(id))); }); - done(); }); }); }); From 277282c2d4ae0e34b83376ae2c6ac89433f4ec22 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Fri, 5 Jan 2024 13:31:20 +0000 Subject: [PATCH 10/21] added missing done() --- integration/test/viewer/createsavedexport.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/integration/test/viewer/createsavedexport.ts b/integration/test/viewer/createsavedexport.ts index 3c1ad9b66..de2556799 100644 --- a/integration/test/viewer/createsavedexport.ts +++ b/integration/test/viewer/createsavedexport.ts @@ -151,6 +151,7 @@ describe("Viewer API", function () { _.each(ids, function (id) { assert(res.text.match(new RegExp(id))); }); + done(); }); }); }); From 5b2b893321563f1b022c8d0c24b0cbfa6d56ef8a Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Fri, 5 Jan 2024 14:04:05 +0000 Subject: [PATCH 11/21] replace chai-http --- integration/test/admin/createAdminToken.ts | 43 +++++++--------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/integration/test/admin/createAdminToken.ts b/integration/test/admin/createAdminToken.ts index 9a252f0dd..f90105713 100644 --- a/integration/test/admin/createAdminToken.ts +++ b/integration/test/admin/createAdminToken.ts @@ -2,10 +2,7 @@ import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin create admin token", function () { if (!Env.AdminRootToken) { @@ -29,17 +26,10 @@ describe("Admin create admin token", function () { context("When an admin token is created", function () { let resp; beforeEach(async () => { - resp = await new Promise((resolve, reject) => { - chai - .request(Env.Endpoint) - .post(`/admin/v1/token`) - .set("Authorization", jwt) - .end((err, res) => { - if (err) { - reject(err); - } - resolve(res); - }); + resp = await axios.post(`${Env.Endpoint}/admin/v1/token`, null, { + headers: { + Authorization: jwt, + }, }); }); @@ -63,20 +53,15 @@ describe("Admin create admin token", function () { }; beforeEach(async () => { - templateResponse = await new Promise((resolve, reject) => { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/templates?environment_id=${env.id}`) - .set("Authorization", `id=${id} token=${token}`) - .send(reqBody) - .end((err, res) => { - if (err) { - reject(err); - return; - } - resolve(res); - }); - }); + templateResponse = axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/templates?environment_id=${env.id}`, + reqBody, + { + headers: { + Authorization: `id=${id} token=${token}`, + }, + } + ); }); specify("Then the response should have a 2xx status", () => { From df5a4d345f3cc82ddd9f32fa413db86753162528 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Fri, 5 Jan 2024 14:51:36 +0000 Subject: [PATCH 12/21] replace chai-http --- integration/test/admin/createAdminToken.ts | 8 ++++--- integration/test/admin/createApiToken.ts | 27 +++++++++++----------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/integration/test/admin/createAdminToken.ts b/integration/test/admin/createAdminToken.ts index f90105713..054d6c24b 100644 --- a/integration/test/admin/createAdminToken.ts +++ b/integration/test/admin/createAdminToken.ts @@ -31,13 +31,14 @@ describe("Admin create admin token", function () { Authorization: jwt, }, }); + assert(resp); }); let id; let token; specify("Then the response should have a token and id", () => { - id = resp.body.id; - token = resp.body.token; + id = resp.data.id; + token = resp.data.token; assert(id); assert(token); }); @@ -53,7 +54,7 @@ describe("Admin create admin token", function () { }; beforeEach(async () => { - templateResponse = axios.post( + templateResponse = await axios.post( `${Env.Endpoint}/admin/v1/project/${project.id}/templates?environment_id=${env.id}`, reqBody, { @@ -62,6 +63,7 @@ describe("Admin create admin token", function () { }, } ); + assert(templateResponse); }); specify("Then the response should have a 2xx status", () => { diff --git a/integration/test/admin/createApiToken.ts b/integration/test/admin/createApiToken.ts index f98d5cd1d..afd230014 100644 --- a/integration/test/admin/createApiToken.ts +++ b/integration/test/admin/createApiToken.ts @@ -5,6 +5,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; +import axios from "axios"; const chai = require("chai"), chaiHttp = require("chai-http"); @@ -40,24 +41,24 @@ describe("Admin create API token", function () { context("When a new API token is created", function () { let resp; - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/token?environment_id=${env.id}`) - .set("Authorization", jwt) - .send({ + before(async function () { + resp = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/token?environment_id=${env.id}`, + { name, disabled: false, - }) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); }); specify("The token resource is returned with status 201.", function () { - const token = resp.body; + const token = resp.data; const tenMinutes = 1000 * 60 * 10; assert.strictEqual(resp.status, 201); From 134724f6ec1d7d05a0a7f978cc41418eee7b7eb7 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Fri, 5 Jan 2024 17:43:34 +0000 Subject: [PATCH 13/21] WIP: replace chai-http --- integration/test/admin/createApiToken.ts | 5 -- integration/test/admin/createEnvironment.ts | 37 +++++----- integration/test/admin/createInvite.ts | 37 +++++----- integration/test/admin/createTemplate.ts | 29 ++++---- integration/test/admin/deleteApiToken.ts | 24 +++---- integration/test/admin/deleteEnvironment.ts | 80 ++++++++++----------- integration/test/admin/deleteInvite.ts | 47 ++++++------ integration/test/admin/getproject.ts | 49 ++++++------- integration/test/pkg/retracedUp.ts | 17 ++--- 9 files changed, 142 insertions(+), 183 deletions(-) diff --git a/integration/test/admin/createApiToken.ts b/integration/test/admin/createApiToken.ts index afd230014..480f3789f 100644 --- a/integration/test/admin/createApiToken.ts +++ b/integration/test/admin/createApiToken.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; @@ -7,10 +6,6 @@ import { sleep } from "../pkg/util"; import assert from "assert"; import axios from "axios"; -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); - describe("Admin create API token", function () { if (!Env.AdminRootToken) { return; diff --git a/integration/test/admin/createEnvironment.ts b/integration/test/admin/createEnvironment.ts index c931bcc5a..18c570812 100644 --- a/integration/test/admin/createEnvironment.ts +++ b/integration/test/admin/createEnvironment.ts @@ -4,10 +4,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin create environment", function () { if (!Env.AdminRootToken) { @@ -39,24 +36,24 @@ describe("Admin create environment", function () { const envName = "QA"; let resp; - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/environment`) - .set("Authorization", jwt) - .send({ name: envName }) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + before(async function () { + resp = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/environment`, + { name: envName }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); }); specify("The environment is returned with status 201.", function () { assert.strictEqual(resp.status, 201); - assert(resp.body.id); - assert.strictEqual(resp.body.name, envName); - assert.strictEqual(resp.body.project_id, project.id); + assert(resp.data.id); + assert.strictEqual(resp.data.name, envName); + assert.strictEqual(resp.data.project_id, project.id); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -88,8 +85,8 @@ describe("Admin create environment", function () { assert.strictEqual(audited.crud, "c"); assert.strictEqual(audited.group!.id, project.id); assert.strictEqual(audited.actor!.id, adminId); - assert.strictEqual(audited.target!.id, resp.body.id); - assert.strictEqual(audited.target!.name, resp.body.name); + assert.strictEqual(audited.target!.id, resp.data.id); + assert.strictEqual(audited.target!.name, resp.data.name); }); } }); diff --git a/integration/test/admin/createInvite.ts b/integration/test/admin/createInvite.ts index 3303ae46f..b0dfdf164 100644 --- a/integration/test/admin/createInvite.ts +++ b/integration/test/admin/createInvite.ts @@ -4,10 +4,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin create invite", function () { if (!Env.AdminRootToken) { @@ -39,25 +36,25 @@ describe("Admin create invite", function () { const email = "newperson@retraced.io"; let resp; - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/invite`) - .set("Authorization", jwt) - .send({ email }) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + before(async function () { + resp = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/invite`, + { email }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); }); specify("The invite is returned with status 201.", function () { assert.strictEqual(resp.status, 201); - assert(resp.body.id); - assert.strictEqual(resp.body.project_id, project.id); - assert.strictEqual(resp.body.email, email); - assert(resp.body.created); + assert(resp.data.id); + assert.strictEqual(resp.data.project_id, project.id); + assert.strictEqual(resp.data.email, email); + assert(resp.data.created); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -89,7 +86,7 @@ describe("Admin create invite", function () { assert.strictEqual(audited.crud, "c"); assert.strictEqual(audited.group!.id, project.id); assert.strictEqual(audited.actor!.id, adminId); - assert.strictEqual(audited.target!.id, resp.body.id); + assert.strictEqual(audited.target!.id, resp.data.id); assert.strictEqual(audited.target!.name, email); }); } diff --git a/integration/test/admin/createTemplate.ts b/integration/test/admin/createTemplate.ts index 0aa261dcb..746ee802c 100644 --- a/integration/test/admin/createTemplate.ts +++ b/integration/test/admin/createTemplate.ts @@ -5,10 +5,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin create template", function () { if (!Env.AdminRootToken) { @@ -44,23 +41,23 @@ describe("Admin create template", function () { }; let resp; - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/templates?environment_id=${env.id}`) - .set("Authorization", jwt) - .send(reqBody) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + before(async function () { + resp = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/templates?environment_id=${env.id}`, + reqBody, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); }); specify("The template resource is returned with status 201.", function () { const tenMinutes = 1000 * 60 * 10; const now = Date.now(); - const template = resp.body; + const template = resp.data; assert.strictEqual(resp.status, 201); assert(template.id); diff --git a/integration/test/admin/deleteApiToken.ts b/integration/test/admin/deleteApiToken.ts index ee3f595e6..2cc19a3d8 100644 --- a/integration/test/admin/deleteApiToken.ts +++ b/integration/test/admin/deleteApiToken.ts @@ -4,10 +4,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin delete API token", function () { if (!Env.AdminRootToken) { @@ -39,21 +36,18 @@ describe("Admin delete API token", function () { context("When an API token is deleted", function () { let resp; - before(function (done) { - chai - .request(Env.Endpoint) - .delete(`/admin/v1/project/${project.id}/token/${token.token}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + before(async function () { + resp = await axios.delete(`${Env.Endpoint}/admin/v1/project/${project.id}/token/${token.token}`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp); }); specify("The response succeeds with status 204.", function () { assert.strictEqual(resp.status, 204); - assert.deepStrictEqual(resp.body, {}); + assert.deepStrictEqual(resp.data, ""); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { diff --git a/integration/test/admin/deleteEnvironment.ts b/integration/test/admin/deleteEnvironment.ts index e07870ac9..5f3a1f2a7 100644 --- a/integration/test/admin/deleteEnvironment.ts +++ b/integration/test/admin/deleteEnvironment.ts @@ -4,10 +4,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin delete environment", function () { if (!Env.AdminRootToken) { @@ -41,57 +38,58 @@ describe("Admin delete environment", function () { adminId = admin.userId; }); - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/environment/${env.id}/deletion_request`) - .set("Authorization", jwt) - .send({ + before(async function () { + resp = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/environment/${env.id}/deletion_request`, + { resourceKind: "environment", resourceId: env.id, - }) - .end((err, resp) => { - assert.strictEqual(err, null); - assert.strictEqual(resp.status, 201); - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); + assert.strictEqual(resp.status, 201); }); - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/templates?environment_id=${env.id}`) - .set("Authorization", jwt) - .send({ + before(async function () { + const resp1 = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/templates?environment_id=${env.id}`, + { name: "Delete Template Test", rule: "always", template: "{{}}", - }) - .end((err, res) => { - assert.strictEqual(err, null); - assert.strictEqual(res.status, 201); - - templateID = res.body.id; - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 201); + templateID = resp1.data.id; }); context("When the admin sends a request to delete the environment", function () { - before(function (done) { - chai - .request(Env.Endpoint) - .delete(`/admin/v1/project/${project.id}/environment/${env.id}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + before(async function () { + resp = await axios.delete( + `${Env.Endpoint}/admin/v1/project/${project.id}/environment/${env.id}`, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); }); specify("The environment is deleted with status 204.", function () { assert.strictEqual(resp.status, 204); - assert.deepEqual(resp.body, {}); + assert.deepEqual(resp.data, ""); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { diff --git a/integration/test/admin/deleteInvite.ts b/integration/test/admin/deleteInvite.ts index 742c32275..97cf4797d 100644 --- a/integration/test/admin/deleteInvite.ts +++ b/integration/test/admin/deleteInvite.ts @@ -4,10 +4,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin delete invite", function () { if (!Env.AdminRootToken) { @@ -39,37 +36,35 @@ describe("Admin delete invite", function () { adminId = admin.userId; }); - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/invite`) - .set("Authorization", jwt) - .send({ email }) - .end((err, res) => { - assert.strictEqual(err, null); - inviteID = res.body.id; - done(); - }); + before(async function () { + const resp1 = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/invite`, + { email }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); + inviteID = resp1.data.id; }); context("When the admin deletes the invite", function () { let resp; - before(function (done) { - chai - .request(Env.Endpoint) - .delete(`/admin/v1/project/${project.id}/invite/${inviteID}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + before(async function () { + resp = await axios.delete(`${Env.Endpoint}/admin/v1/project/${project.id}/invite/${inviteID}`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp); }); specify("It should be deleted with status 204.", function () { assert.strictEqual(resp.status, 204); - assert.deepStrictEqual(resp.body, {}); + assert.deepStrictEqual(resp.data, ""); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { diff --git a/integration/test/admin/getproject.ts b/integration/test/admin/getproject.ts index dfeecf7d0..f2fa1aa19 100644 --- a/integration/test/admin/getproject.ts +++ b/integration/test/admin/getproject.ts @@ -1,12 +1,8 @@ -import "chai-http"; import * as Env from "../env"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin Get Project", function () { if (!Env.AdminRootToken) { @@ -31,35 +27,34 @@ describe("Admin Get Project", function () { }); // with a pending environment deletion - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/environment/${env.id}/deletion_request`) - .set("Authorization", jwt) - .send({ + before(async function () { + const resp1 = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/environment/${env.id}/deletion_request`, + { resourceId: env.id, resourceKind: "environment", - }) - .end((err, res) => { - assert.strictEqual(err, null); - delReqId = res.body.id; - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); + delReqId = resp1.data.id; }); context("When a call is made to get the project by id", function () { let responseBody; - before(function (done) { - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - responseBody = res.body; - done(); - }); + before(async function () { + const resp2 = await axios.get(`${Env.Endpoint}/admin/v1/project/${project.id}`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp2); + responseBody = resp2.data; }); specify("The response should include the environment with deletion statuses.", function () { diff --git a/integration/test/pkg/retracedUp.ts b/integration/test/pkg/retracedUp.ts index c70268fd2..575dba757 100644 --- a/integration/test/pkg/retracedUp.ts +++ b/integration/test/pkg/retracedUp.ts @@ -1,16 +1,7 @@ import assert from "assert"; +import axios from "axios"; -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); - -export const retracedUp = (Env) => (done) => { - chai - .request(Env.Endpoint) - .get("/") - .end(function (err, res) { - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); +export const retracedUp = (Env) => async () => { + const res = await axios.get(Env.Endpoint); + assert.strictEqual(res.status, 200); }; From 3794e5b232f6284b3d27b8499c51d9c57847c9af Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Fri, 5 Jan 2024 22:23:00 +0000 Subject: [PATCH 14/21] WIP: replace chai-http --- integration/test/admin/deleteTemplate.ts | 56 +++++++------ integration/test/admin/listInvites.ts | 53 ++++++------- integration/test/admin/searchTemplates.ts | 95 +++++++++++------------ integration/test/admin/updateApiToken.ts | 92 +++++++++++----------- 4 files changed, 139 insertions(+), 157 deletions(-) diff --git a/integration/test/admin/deleteTemplate.ts b/integration/test/admin/deleteTemplate.ts index a4453e1db..6d78e4d42 100644 --- a/integration/test/admin/deleteTemplate.ts +++ b/integration/test/admin/deleteTemplate.ts @@ -4,10 +4,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin delete template", function () { if (!Env.AdminRootToken) { @@ -39,42 +36,41 @@ describe("Admin delete template", function () { adminId = admin.userId; }); - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/templates?environment_id=${env.id}`) - .set("Authorization", jwt) - .send({ + before(async function () { + const resp1 = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/templates?environment_id=${env.id}`, + { name: "Delete Template Test", rule: "always", template: "{{}}", - }) - .end((err, res) => { - assert.strictEqual(err, null); - assert.strictEqual(res.status, 201); - - templateID = res.body.id; - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 201); + templateID = resp1.data.id; }); context("When the admin deletes the template", function () { - before(function (done) { - chai - .request(Env.Endpoint) - .delete(`/admin/v1/project/${project.id}/templates/${templateID}/?environment_id=${env.id}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - assert.strictEqual(res.status, 204); - resp = res; - done(); - }); + before(async function () { + resp = await axios.delete( + `${Env.Endpoint}/admin/v1/project/${project.id}/templates/${templateID}/?environment_id=${env.id}`, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); }); specify("It should be deleted with status 204.", function () { assert.strictEqual(resp.status, 204); - assert.deepStrictEqual(resp.body, {}); + assert.deepStrictEqual(resp.data, ""); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { diff --git a/integration/test/admin/listInvites.ts b/integration/test/admin/listInvites.ts index d15dab3b9..05013f509 100644 --- a/integration/test/admin/listInvites.ts +++ b/integration/test/admin/listInvites.ts @@ -4,10 +4,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin list invites", function () { if (!Env.AdminRootToken) { @@ -40,42 +37,40 @@ describe("Admin list invites", function () { }); emails.forEach((email) => { - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/invite`) - .set("Authorization", jwt) - .send({ email }) - .end((err, res) => { - assert.strictEqual(err, null); - inviteIDs.push(res.body.id); - done(); - }); + before(async function () { + const resp1 = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/invite`, + { email }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); + inviteIDs.push(resp1.data.id); }); }); context("When a call is made to list invites", function () { let resp; - before(function (done) { - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}/invite`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + before(async function () { + resp = await axios.get(`${Env.Endpoint}/admin/v1/project/${project.id}/invite`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp); }); specify("Both invites should be returned with status 200.", function () { assert.strictEqual(resp.status, 200); - assert.strictEqual(resp.body[0].id, inviteIDs[0]); - assert.strictEqual(resp.body[0].email, emails[0]); - assert.strictEqual(resp.body[1].id, inviteIDs[1]); - assert.strictEqual(resp.body[1].email, emails[1]); + assert.strictEqual(resp.data[0].id, inviteIDs[0]); + assert.strictEqual(resp.data[0].email, emails[0]); + assert.strictEqual(resp.data[1].id, inviteIDs[1]); + assert.strictEqual(resp.data[1].email, emails[1]); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { diff --git a/integration/test/admin/searchTemplates.ts b/integration/test/admin/searchTemplates.ts index 3985b9781..89157df25 100644 --- a/integration/test/admin/searchTemplates.ts +++ b/integration/test/admin/searchTemplates.ts @@ -5,10 +5,7 @@ import adminUser from "../pkg/adminUser"; import * as Env from "../env"; import { sleep } from "../pkg/util"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; describe("Admin search templates", function () { if (!Env.AdminRootToken) { @@ -41,22 +38,22 @@ describe("Admin search templates", function () { let resp; context("When the admin searches for templates", function () { - beforeEach(function (done) { - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}/templates?environment_id=${env.id}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + beforeEach(async function () { + resp = await axios.get( + `${Env.Endpoint}/admin/v1/project/${project.id}/templates?environment_id=${env.id}`, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp); }); specify("The API should return an empty set of results with status 200", function () { assert.strictEqual(resp.status, 200); - assert.deepStrictEqual(resp.body, { + assert.deepStrictEqual(resp.data, { total_hits: 0, templates: [], }); @@ -99,75 +96,73 @@ describe("Admin search templates", function () { context("In an environment with two templates", function () { for (let i = 0; i < 2; i++) { - before(function (done) { - chai - .request(Env.Endpoint) - .post(`/admin/v1/project/${project.id}/templates?environment_id=${env.id}`) - .set("Authorization", jwt) - .send({ + before(async function () { + const resp1 = await axios.post( + `${Env.Endpoint}/admin/v1/project/${project.id}/templates?environment_id=${env.id}`, + { name: i === 0 ? "Z" : "A", rule: "always", template: "{{}}", - }) - .end((err, res) => { - assert.strictEqual(err, null); - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 201); }); } context("When an admin searches for templates with length=1 offset=0", function () { let resp; - before(function (done) { + before(async function () { const qs = querystring.stringify({ environment_id: env.id, offset: 0, length: 1, }); - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}/templates?${qs}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + + resp = await axios.get(`${Env.Endpoint}/admin/v1/project/${project.id}/templates?${qs}`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp); }); specify("The first template in alphabetical order should be returned.", function () { assert.strictEqual(resp.status, 200); - assert.strictEqual(resp.body.total_hits, 1); - assert.strictEqual(resp.body.templates[0].name, "A"); + assert.strictEqual(resp.data.total_hits, 1); + assert.strictEqual(resp.data.templates[0].name, "A"); }); }); context("When an admin searches for templates with offset=1", function () { let resp; - before(function (done) { + before(async function () { const qs = querystring.stringify({ environment_id: env.id, offset: 1, }); - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}/templates?${qs}`) - .set("Authorization", jwt) - .end((err, res) => { - assert.strictEqual(err, null); - resp = res; - done(); - }); + + resp = await axios.get(`${Env.Endpoint}/admin/v1/project/${project.id}/templates?${qs}`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp); }); specify("The first template in alphabetical order should be returned.", function () { assert.strictEqual(resp.status, 200); - assert.strictEqual(resp.body.total_hits, 1); - assert.strictEqual(resp.body.templates[0].name, "Z"); + assert.strictEqual(resp.data.total_hits, 1); + assert.strictEqual(resp.data.templates[0].name, "Z"); }); }); }); diff --git a/integration/test/admin/updateApiToken.ts b/integration/test/admin/updateApiToken.ts index 8dc3269be..2ccc82d5e 100644 --- a/integration/test/admin/updateApiToken.ts +++ b/integration/test/admin/updateApiToken.ts @@ -1,4 +1,3 @@ -import "chai-http"; import { Client } from "@retracedhq/retraced"; import * as Env from "../env"; import Chance from "chance"; @@ -6,13 +5,10 @@ import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; import { sleep } from "../pkg/util"; import assert from "assert"; +import axios from "axios"; const chance = new Chance(); -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); - describe("Admin Update API tokens", function () { if (!Env.AdminRootToken) { return; @@ -42,33 +38,33 @@ describe("Admin Update API tokens", function () { context("When a token name is updated", function () { const newName = chance.string(); - before(function (done) { - chai - .request(Env.Endpoint) - .put(`/admin/v1/project/${project.id}/token/${token.token}`) - .set("Authorization", jwt) - .send({ + before(async function () { + const resp1 = await axios.put( + `${Env.Endpoint}/admin/v1/project/${project.id}/token/${token.token}`, + { name: newName, - }) - .end((err, res) => { - assert.strictEqual(err, null); - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); }); // There's no GET token endpoint, but it can be read as a // subresource on project - specify("GET project will return the new name.", function (done) { - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}`) - .set("Authorization", jwt) - .end((err, res) => { - const updatedTkn = res.body.project.tokens.find((tkn) => tkn.token === token.token); - assert.notStrictEqual(updatedTkn.name, token.name); - assert.strictEqual(updatedTkn.name, newName); - done(); - }); + specify("GET project will return the new name.", async function () { + const resp2 = await axios.get(`${Env.Endpoint}/admin/v1/project/${project.id}`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp2); + const updatedTkn = resp2.data.project.tokens.find((tkn) => tkn.token === token.token); + assert.notStrictEqual(updatedTkn.name, token.name); + assert.strictEqual(updatedTkn.name, newName); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { @@ -108,30 +104,30 @@ describe("Admin Update API tokens", function () { }); context("When a token is disabled", function () { - before(function (done) { - chai - .request(Env.Endpoint) - .put(`/admin/v1/project/${project.id}/token/${token.token}`) - .set("Authorization", jwt) - .send({ + before(async function () { + const resp3 = await axios.put( + `${Env.Endpoint}/admin/v1/project/${project.id}/token/${token.token}`, + { disabled: true, - }) - .end((err, res) => { - assert.strictEqual(err, null); - done(); - }); + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp3); }); - specify("GET project will return the token's status as disabled.", function (done) { - chai - .request(Env.Endpoint) - .get(`/admin/v1/project/${project.id}`) - .set("Authorization", jwt) - .end((err, res) => { - const updatedTkn = res.body.project.tokens.find((tkn) => tkn.token === token.token); - assert.strictEqual(updatedTkn.disabled, true); - done(); - }); + specify("GET project will return the token's status as disabled.", async function () { + const resp4 = await axios.get(`${Env.Endpoint}/admin/v1/project/${project.id}`, { + headers: { + Authorization: jwt, + }, + }); + assert(resp4); + const updatedTkn = resp4.data.project.tokens.find((tkn) => tkn.token === token.token); + assert.strictEqual(updatedTkn.disabled, true); }); if (Env.HeadlessApiKey && Env.HeadlessProjectID) { From 766e15242e06914591455167d3313d0b45e252a7 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Sat, 6 Jan 2024 01:03:34 +0000 Subject: [PATCH 15/21] WIP: replace chai-http --- integration/test/enterprise/search.ts | 95 +++++++++++----------- integration/test/enterprise/searchscope.ts | 67 ++++++++------- integration/test/pkg/adminUser.ts | 78 +++++++++--------- 3 files changed, 116 insertions(+), 124 deletions(-) diff --git a/integration/test/enterprise/search.ts b/integration/test/enterprise/search.ts index 6b3c2208e..7cf9c9966 100644 --- a/integration/test/enterprise/search.ts +++ b/integration/test/enterprise/search.ts @@ -1,16 +1,12 @@ import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date(); @@ -74,48 +70,49 @@ describe("Enterprise Search", function () { context( "When a call is made to create an eitapi token using the Publisher API with a custom view_log_action", function () { - beforeEach((done) => { + beforeEach(async () => { if (token) { - done(); return; } - chai - .request(Env.Endpoint) - .post(`/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`) - .set("Authorization", `token=${Env.ApiKey}`) - .send({ + const resp1 = await axios.post( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`, + { display_name: "QA" + randomNumber.toString(), view_log_action: "viewlogs.custom", - }) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 201); - assert(responseBody.token); - token = responseBody.token; - done(); - }); + }, + { + headers: { + Authorization: `token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 201); + + responseBody = resp1.data; + assert(responseBody.token); + token = responseBody.token; }); context( "And the eitapi token is used to call the Enterprise API GraphQL endpoint for the event", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/enterprise/v1/graphql") - .set("Authorization", `token=${token}`) - .send(search("integration" + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(res.status, 200); - assert.strictEqual(err, null); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + const resp2 = await axios.post( + `${Env.Endpoint}/enterprise/v1/graphql`, + search("integration" + randomNumber.toString()), + { + headers: { + Authorization: `token=${token}`, + }, + } + ); + assert(resp2); + assert.strictEqual(resp2.status, 200); + responseBody = resp2.data; }); specify( "Then the response should contain the correct information about the event", @@ -153,21 +150,21 @@ describe("Enterprise Search", function () { context("When a second call is made to the Enterprise API GraphQL endpoint", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/enterprise/v1/graphql") - .set("Authorization", `token=${token}`) - .send(search("viewlogs.custom")) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + const resp3 = await axios.post( + `${Env.Endpoint}/enterprise/v1/graphql`, + search("viewlogs.custom"), + { + headers: { + Authorization: `token=${token}`, + }, + } + ); + assert(resp3); + assert.strictEqual(resp3.status, 200); + responseBody = resp3.data; }); specify( "Then the most recent event should be a viewlogs.custom event with the enterprise token specified as the actor", diff --git a/integration/test/enterprise/searchscope.ts b/integration/test/enterprise/searchscope.ts index f8e41d3b5..c443fe4c2 100644 --- a/integration/test/enterprise/searchscope.ts +++ b/integration/test/enterprise/searchscope.ts @@ -1,16 +1,12 @@ import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep } from "../pkg/util"; import * as Env from "../env"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date(); @@ -20,7 +16,6 @@ describe("Enterprise Search Group Scoping", function () { describe("Given the Retraced API is up and running", function () { let resultBody; let responseBody; - let token; let otherToken; beforeEach(retracedUp(Env)); @@ -75,44 +70,46 @@ describe("Enterprise Search Group Scoping", function () { }); context("When a call is made to create an eitapi token for a Replicated group", function () { - beforeEach((done) => { + beforeEach(async () => { if (otherToken) { - done(); return; } - chai - .request(Env.Endpoint) - .post(`/publisher/v1/project/${Env.ProjectID}/group/replqa1234/enterprisetoken`) - .set("Authorization", `token=${Env.ApiKey}`) - .send({ display_name: "QA" + randomNumber.toString() }) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 201); - assert(responseBody.token); - otherToken = responseBody.token; - done(); - }); + const resp1 = await axios.post( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/group/replqa1234/enterprisetoken`, + { display_name: "QA" + randomNumber.toString() }, + { + headers: { + Authorization: `token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 201); + responseBody = resp1.data; + assert(responseBody.token); + otherToken = responseBody.token; }); context( "And the eitapi token is used to call the Enterprise API GraphQL endpoint for event", function () { - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/enterprise/v1/graphql") - .set("Authorization", `token=${otherToken}`) - .send(search("integration.test.api." + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp2 = await axios.post( + `${Env.Endpoint}/enterprise/v1/graphql`, + search("integration.test.api." + randomNumber.toString()), + { + headers: { + Authorization: `token=${otherToken}`, + }, + } + ); + assert(resp2); + assert.strictEqual(resp2.status, 200); + responseBody = resp2.data; + assert(responseBody); }); specify("Then the response should not include the event from Retraced Group", function () { assert.deepStrictEqual(responseBody.data.search.edges, []); diff --git a/integration/test/pkg/adminUser.ts b/integration/test/pkg/adminUser.ts index 49ab9f3a6..24430a4ef 100644 --- a/integration/test/pkg/adminUser.ts +++ b/integration/test/pkg/adminUser.ts @@ -1,46 +1,44 @@ +import assert from "assert"; +import axios from "axios"; import Chance from "chance"; -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); - const chance = new Chance(); export default async function adminUser(Env) { - return new Promise((resolve, reject) => { - chai - .request(Env.Endpoint) - .post("/admin/v1/user/_login") - .set("Authorization", `token=${Env.AdminRootToken}`) - .send({ - claims: { - email: "qa@retraced.io", - }, - }) - .end((err, res) => { - if (err) { - reject(err); - } - const jwt = res.body.token; - const userId = res.body.user.id; - chai - .request(Env.Endpoint) - .post("/admin/v1/project") - .set("Authorization", jwt) - .send({ - name: chance.string(), - }) - .end((err, res) => { - if (err) { - reject(err); - } - // hydrated with environments and tokens - resolve({ - jwt, - userId, - project: res.body.project, - }); - }); - }); - }); + const resp = await axios.post( + `${Env.Endpoint}/admin/v1/user/_login`, + { + claims: { + email: "qa@retraced.io", + }, + }, + { + headers: { + Authorization: `token=${Env.AdminRootToken}`, + }, + } + ); + assert(resp); + + const jwt = resp.data.token; + const userId = resp.data.user.id; + + const resp1 = await axios.post( + `${Env.Endpoint}/admin/v1/project`, + { + name: chance.string(), + }, + { + headers: { + Authorization: jwt, + }, + } + ); + assert(resp1); + + return { + jwt, + userId, + project: resp1.data.project, + }; } From 7aaf0d080898c1aeb66748a9c69f08cb480aae5b Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Sat, 6 Jan 2024 01:44:49 +0000 Subject: [PATCH 16/21] WIP: replace chai-http --- integration/test/publisher/createevent.ts | 66 ++++++-------- integration/test/publisher/createeventbulk.ts | 41 ++++----- integration/test/publisher/deletetokens.ts | 90 +++++++++---------- 3 files changed, 85 insertions(+), 112 deletions(-) diff --git a/integration/test/publisher/createevent.ts b/integration/test/publisher/createevent.ts index 71cac7141..3044ac09e 100644 --- a/integration/test/publisher/createevent.ts +++ b/integration/test/publisher/createevent.ts @@ -1,18 +1,12 @@ import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema, GraphQLQuery, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; -import * as util from "util"; -import picocolors from "picocolors"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date(); @@ -73,27 +67,22 @@ describe("Create Events", function () { }); context("When a call is made to the GraphQL endpoint for the event", function () { - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/publisher/v1/graphql") - .set("Authorization", "token=" + Env.ApiKey) - .send(search("integration" + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - if (err && Env.Debug) { - console.log(picocolors.red(util.inspect(err.response.body, false, 100, false))); - } else if (Env.Debug) { - console.log(util.inspect(res.body, false, 100, true)); - } - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp1 = await axios.post( + `${Env.Endpoint}/publisher/v1/graphql`, + search("integration" + randomNumber.toString()), + { + headers: { + Authorization: "token=" + Env.ApiKey, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 200); + responseBody = resp1.data; }); specify("Then the response should contain the correct information about the event", function () { assert.strictEqual( @@ -152,21 +141,18 @@ describe("Create Events", function () { context("When a call is made to the GraphQL endpoint for the event", function () { const thisQuery = GraphQLQuery; thisQuery.variables.query = "integrationminimum" + randomNumber.toString(); - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/publisher/v1/graphql") - .set("Authorization", "token=" + Env.ApiKey) - .send(thisQuery) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); + await sleep(Env.EsIndexWaitMs); + + const resp2 = await axios.post(`${Env.Endpoint}/publisher/v1/graphql`, thisQuery, { + headers: { + Authorization: "token=" + Env.ApiKey, + }, }); + assert(resp2); + assert.strictEqual(resp2.status, 200); + responseBody = resp2.data; }); specify("Then the response should contain the correct information about the event", function () { assert.strictEqual( diff --git a/integration/test/publisher/createeventbulk.ts b/integration/test/publisher/createeventbulk.ts index 582b54e17..d16fe2b91 100644 --- a/integration/test/publisher/createeventbulk.ts +++ b/integration/test/publisher/createeventbulk.ts @@ -1,17 +1,11 @@ import { Client, CRUD } from "@retracedhq/retraced"; import "mocha"; -import "chai-http"; import { search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; -import * as util from "util"; -import picocolors from "picocolors"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date().valueOf(); @@ -101,27 +95,22 @@ describe("Bulk Create Events", function () { }); context("When a call is made to the GraphQL endpoint for the event", function () { - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/publisher/v1/graphql") - .set("Authorization", "token=" + Env.ApiKey) - .send(search("integrationbulk" + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - if (err && Env.Debug) { - console.log(picocolors.red(util.inspect(err.response.body, false, 100, false))); - } else if (Env.Debug) { - console.log(util.inspect(res.body, false, 100, true)); - } - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); + await sleep(Env.EsIndexWaitMs); - done(); - }); - }); + const resp1 = await axios.post( + `${Env.Endpoint}/publisher/v1/graphql`, + search("integrationbulk" + randomNumber.toString()), + { + headers: { + Authorization: "token=" + Env.ApiKey, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 200); + responseBody = resp1.data; }); specify("Then the response should contain all four events", function () { assert.strictEqual(responseBody.data.search.edges.length, 4); diff --git a/integration/test/publisher/deletetokens.ts b/integration/test/publisher/deletetokens.ts index ff8dde0ba..7379e0371 100644 --- a/integration/test/publisher/deletetokens.ts +++ b/integration/test/publisher/deletetokens.ts @@ -1,15 +1,11 @@ import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import * as Env from "../env"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date(); @@ -71,57 +67,59 @@ describe("Deleting Enterprise Tokens", function () { }); context("And at least one eitapi token exists", function () { - beforeEach((done) => { + beforeEach(async () => { if (token) { - done(); return; } - chai - .request(Env.Endpoint) - .post(`/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`) - .set("Authorization", `token=${Env.ApiKey}`) - .send({ display_name: "QA" + randomNumber.toString() }) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 201); - assert(responseBody.token); - token = responseBody.token; - done(); - }); + + const resp1 = await axios.post( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`, + { display_name: "QA" + randomNumber.toString() }, + { + headers: { + Authorization: `token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 201); + responseBody = resp1.data; + assert(responseBody.token); + token = responseBody.token; }); context("When one of the tokens is deleted", function () { - beforeEach(function (done) { - chai - .request(Env.Endpoint) - .delete(`/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken/${token}`) - .set("Authorization", `token=${Env.ApiKey}`) - .send({ display_name: "QA" + randomNumber.toString() }) - .end(function (err, res) { - assert.strictEqual(err, null); - assert.strictEqual(res.status, 204); - assert(responseBody.token); - token = responseBody.token; - done(); - }); + beforeEach(async function () { + const resp2 = await axios.delete( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken/${token}`, + { + headers: { + Authorization: `token=${Env.ApiKey}`, + }, + } + ); + assert(resp2); + assert.strictEqual(resp2.status, 204); }); context("And that token is used to query the graphql endpoint", function () { - let response; - beforeEach(function (done) { - chai - .request(Env.Endpoint) - .post("/enterprise/v1/graphql") - .set("Authorization", `token=${token}`) - .send(search("integration.test.api." + randomNumber.toString())) - .end(function (err, res) { - response = res; - done(); - }); + let error; + beforeEach(async function () { + try { + await axios.post( + `${Env.Endpoint}/enterprise/v1/graphql`, + search("integration.test.api." + randomNumber.toString()), + { + headers: { + Authorization: `token=${token}`, + }, + } + ); + } catch (err) { + error = err; + } }); - specify("Then the response should be a 401", function () { - assert.strictEqual(response.status, 401); + assert.strictEqual(error.message.includes("Request failed with status code 401"), true); }); }); }); From 26ead40df3d17be1368b8ed93de489360d47dd62 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Sat, 6 Jan 2024 14:27:27 +0000 Subject: [PATCH 17/21] WIP: replace chai-http --- .../test/publisher/groupnameresolution.ts | 76 ++++++------- integration/test/publisher/listtokens.ts | 87 ++++++++------- integration/test/publisher/search.ts | 5 - integration/test/viewer/createsavedexport.ts | 104 +++++++++--------- 4 files changed, 125 insertions(+), 147 deletions(-) diff --git a/integration/test/publisher/groupnameresolution.ts b/integration/test/publisher/groupnameresolution.ts index 8acea709c..ae73b5cfd 100644 --- a/integration/test/publisher/groupnameresolution.ts +++ b/integration/test/publisher/groupnameresolution.ts @@ -1,17 +1,11 @@ import { Event, Client } from "@retracedhq/retraced"; import "mocha"; -import "chai-http"; import { search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep } from "../pkg/util"; import * as Env from "../env"; -import * as util from "util"; -import picocolors from "picocolors"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const FIRST_EVENT = randomNumber.toString(); @@ -66,26 +60,22 @@ describe("Group Name Resolution", function () { }); context("When a call is made to the GraphQL endpoint for the first event", function () { - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/publisher/v1/graphql") - .set("Authorization", "token=" + Env.ApiKey) - .send(search("integration" + FIRST_EVENT)) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - if (err && Env.Debug) { - console.log(picocolors.red(util.inspect(err.response.body, false, 100, false))); - } else if (Env.Debug) { - console.log(util.inspect(res.body, false, 100, true)); - } - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp1 = await axios.post( + `${Env.Endpoint}/publisher/v1/graphql`, + search("integration" + FIRST_EVENT), + { + headers: { + Authorization: "token=" + Env.ApiKey, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 200); + responseBody = resp1.data; }); specify( "Then the response should contain a non-null group.id, and the second event's group.name should be populated", @@ -104,26 +94,22 @@ describe("Group Name Resolution", function () { }); context("When a call is made to the GraphQL endpoint for the second event", function () { - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/publisher/v1/graphql") - .set("Authorization", "token=" + Env.ApiKey) - .send(search("integration" + SECOND_EVENT)) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - if (err && Env.Debug) { - console.log(picocolors.red(util.inspect(err.response.body, false, 100, false))); - } else if (Env.Debug) { - console.log(util.inspect(res.body, false, 100, true)); - } - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp2 = await axios.post( + `${Env.Endpoint}/publisher/v1/graphql`, + search("integration" + SECOND_EVENT), + { + headers: { + Authorization: "token=" + Env.ApiKey, + }, + } + ); + assert(resp2); + assert.strictEqual(resp2.status, 200); + responseBody = resp2.data; }); specify( "Then the response should contain a non-null group.id, and the second event's group.name should be populated", diff --git a/integration/test/publisher/listtokens.ts b/integration/test/publisher/listtokens.ts index 714bf28ed..41f0e9644 100644 --- a/integration/test/publisher/listtokens.ts +++ b/integration/test/publisher/listtokens.ts @@ -1,16 +1,12 @@ import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date(); @@ -72,34 +68,36 @@ describe("Listing Enterprise Tokens", function () { }); context("And at least one eitapi token exists", function () { - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post(`/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`) - .set("Authorization", `token=${Env.ApiKey}`) - .send({ display_name: "QA" + randomNumber.toString() }) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 201); - assert(responseBody.token); - token = responseBody.token; - done(); - }); + beforeEach(async () => { + const resp1 = await axios.post( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`, + { display_name: "QA" + randomNumber.toString() }, + { + headers: { + Authorization: `token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + assert.strictEqual(resp1.status, 201); + responseBody = resp1.data; + assert(responseBody.token); + token = responseBody.token; }); context("When a call is made to list eitapi API tokens", function () { let tokens; - beforeEach((done) => { - chai - .request(Env.Endpoint) - .get(`/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`) - .set("Authorization", `token=${Env.ApiKey}`) - .end(function (err, res) { - tokens = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); + beforeEach(async () => { + const resp2 = await axios.get( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/group/rtrcdqa1234/enterprisetoken`, + { + headers: { + Authorization: `token=${Env.ApiKey}`, + }, + } + ); + assert(resp2); + assert.strictEqual(resp2.status, 200); + tokens = resp2.data; }); specify("Then the response should contain at least one enterprise token ", function () { assert.strictEqual(tokens.length > 0, true); @@ -110,21 +108,22 @@ describe("Listing Enterprise Tokens", function () { "When one of those tokens is used to call the Enterprise API GraphQL endpoint for the event", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/enterprise/v1/graphql") - .set("Authorization", `token=${tokens[0].token}`) - .send(search("integration" + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp3 = await axios.post( + `${Env.Endpoint}/enterprise/v1/graphql`, + search("integration" + randomNumber.toString()), + { + headers: { + Authorization: `token=${tokens[0].token}`, + }, + } + ); + assert(resp3); + assert.strictEqual(resp3.status, 200); + responseBody = resp3.data; }); specify( "Then the response should contain the correct information about the event", diff --git a/integration/test/publisher/search.ts b/integration/test/publisher/search.ts index 3faa543be..8d65bd63d 100644 --- a/integration/test/publisher/search.ts +++ b/integration/test/publisher/search.ts @@ -1,7 +1,6 @@ import { EventsConnection, Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep } from "../pkg/util"; @@ -9,10 +8,6 @@ import * as Env from "../env"; import * as _ from "lodash"; import assert from "assert"; -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); - const randomNumber = Math.floor(Math.random() * 99999) + 1; describe("Publisher Search", function () { diff --git a/integration/test/viewer/createsavedexport.ts b/integration/test/viewer/createsavedexport.ts index de2556799..87f5fa9f8 100644 --- a/integration/test/viewer/createsavedexport.ts +++ b/integration/test/viewer/createsavedexport.ts @@ -1,17 +1,13 @@ import * as querystring from "querystring"; import { Client, CRUD } from "@retracedhq/retraced"; import "mocha"; -import "chai-http"; import { retracedUp } from "../pkg/retracedUp"; import * as Env from "../env"; import * as jwt from "jsonwebtoken"; import { sleep } from "../pkg/util"; import * as _ from "lodash"; import assert from "assert"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; @@ -26,49 +22,49 @@ describe("Viewer API", function () { context("And a call is made to create a viewer description scoped to a group", function () { let token; - beforeEach((done) => { + beforeEach(async () => { const opts = { group_id: groupID, - // TODO why is actorID required? actor_id: actorID, }; const qs = querystring.stringify(opts); - chai - .request(Env.Endpoint) - .get(`/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`) - .set("Authorization", `Token token=${Env.ApiKey}`) - .end((err, res) => { - assert.strictEqual(err, null); - token = res.body.token; - done(); - }); + const resp1 = await axios.get( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`, + { + headers: { + Authorization: `Token token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + token = resp1.data.token; }); context("And the viewer descriptor is exchanged for a session", function () { let viewerSession; - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/viewersession") - .send({ token }) - .end(function (err, res: any) { - viewerSession = JSON.parse(res.text).token; - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - done(); - }); + beforeEach(async () => { + const resp2 = await axios.post( + `${Env.Endpoint}/viewer/v1/viewersession`, + { token }, + { + headers: { + Authorization: `Token token=${Env.ApiKey}`, + }, + } + ); + assert(resp2); + assert.strictEqual(resp2.status, 200); + viewerSession = resp2.data.token; }); context("When a call is made to the Viewer API create saved export endpoint", function () { let responseBody; - beforeEach(function (done) { - chai - .request(Env.Endpoint) - .post(`/viewer/v1/project/${Env.ProjectID}/export`) - .set("Authorization", viewerSession) - .send({ + beforeEach(async function () { + const resp3 = await axios.post( + `${Env.Endpoint}/viewer/v1/project/${Env.ProjectID}/export`, + { name: "Test Name", exportBody: JSON.stringify({ searchQuery: "", @@ -80,13 +76,16 @@ describe("Viewer API", function () { startTime: Date.now() - 60000, endTime: Date.now() + 60000, }), - }) - .end((err, res) => { - responseBody = JSON.parse(res.text); - assert.strictEqual(err, null); - assert.strictEqual(res.status, 201); - done(); - }); + }, + { + headers: { + Authorization: viewerSession, + }, + } + ); + assert(resp3); + assert.strictEqual(resp3.status, 201); + responseBody = resp3.data; }); specify("Then the response should contain the new saved export.", function () { @@ -133,7 +132,7 @@ describe("Viewer API", function () { await sleep(Env.EsIndexWaitMs * 2); }); - specify("Then the response should contain matching events.", function (done) { + specify("Then the response should contain matching events.", async function () { this.timeout(Env.EsIndexWaitMs * 3); const desc = { environmentId: Env.EnvironmentID, @@ -141,18 +140,17 @@ describe("Viewer API", function () { id: token, }; const tkn = jwt.sign(desc, process.env.HMAC_SECRET_VIEWER); - chai - .request(Env.Endpoint) - .get(`/viewer/v1/project/${Env.ProjectID}/export/${responseBody.id}/rendered?jwt=${tkn}`) - .end((err, res) => { - assert.strictEqual(err, null); - assert.strictEqual(res.status, 200); - assert.strictEqual(res.text.split("\n").length, eventCount + 2); - _.each(ids, function (id) { - assert(res.text.match(new RegExp(id))); - }); - done(); - }); + + const resp4 = await axios.get( + `${Env.Endpoint}/viewer/v1/project/${Env.ProjectID}/export/${responseBody.id}/rendered?jwt=${tkn}` + ); + assert(resp4); + + assert.strictEqual(resp4.status, 200); + assert.strictEqual(resp4.data.split("\n").length, eventCount + 2); + _.each(ids, function (id) { + assert(resp4.data.match(new RegExp(id))); + }); }); }); } From 8cc3844cc4b4b62c50eb858ffd416797a1e9d054 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Sat, 6 Jan 2024 15:04:02 +0000 Subject: [PATCH 18/21] WIP: replace chai-http --- integration/test/enterprise/search.ts | 1 + integration/test/enterprise/searchscope.ts | 1 + integration/test/publisher/createevent.ts | 3 + integration/test/publisher/deletetokens.ts | 1 + integration/test/publisher/listtokens.ts | 3 +- integration/test/viewer/createsavedexport.ts | 1 - integration/test/viewer/listsavedexports.ts | 266 ++++++++----------- integration/test/viewer/search.ts | 241 +++++++---------- 8 files changed, 216 insertions(+), 301 deletions(-) diff --git a/integration/test/enterprise/search.ts b/integration/test/enterprise/search.ts index 7cf9c9966..8687954db 100644 --- a/integration/test/enterprise/search.ts +++ b/integration/test/enterprise/search.ts @@ -65,6 +65,7 @@ describe("Enterprise Search", function () { } assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); + assert(resultBody); }); context( diff --git a/integration/test/enterprise/searchscope.ts b/integration/test/enterprise/searchscope.ts index c443fe4c2..6fec1d24e 100644 --- a/integration/test/enterprise/searchscope.ts +++ b/integration/test/enterprise/searchscope.ts @@ -67,6 +67,7 @@ describe("Enterprise Search Group Scoping", function () { } assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); + assert(resultBody); }); context("When a call is made to create an eitapi token for a Replicated group", function () { diff --git a/integration/test/publisher/createevent.ts b/integration/test/publisher/createevent.ts index 3044ac09e..434af119a 100644 --- a/integration/test/publisher/createevent.ts +++ b/integration/test/publisher/createevent.ts @@ -64,6 +64,7 @@ describe("Create Events", function () { } assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); + assert(resultBody); }); context("When a call is made to the GraphQL endpoint for the event", function () { @@ -136,6 +137,7 @@ describe("Create Events", function () { } assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); + assert(resultBody); }); context("When a call is made to the GraphQL endpoint for the event", function () { @@ -199,6 +201,7 @@ describe("Create Events", function () { assert.strictEqual(valid, true); try { resultBody = await retraced.reportEvent(event); + assert(resultBody); } catch (e) { httpResponse = e.message; } diff --git a/integration/test/publisher/deletetokens.ts b/integration/test/publisher/deletetokens.ts index 7379e0371..9fc97d25e 100644 --- a/integration/test/publisher/deletetokens.ts +++ b/integration/test/publisher/deletetokens.ts @@ -64,6 +64,7 @@ describe("Deleting Enterprise Tokens", function () { } assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); + assert(resultBody); }); context("And at least one eitapi token exists", function () { diff --git a/integration/test/publisher/listtokens.ts b/integration/test/publisher/listtokens.ts index 41f0e9644..56250e354 100644 --- a/integration/test/publisher/listtokens.ts +++ b/integration/test/publisher/listtokens.ts @@ -16,7 +16,6 @@ describe("Listing Enterprise Tokens", function () { describe("Given the Retraced API is up and running", function () { let resultBody; let responseBody; - let token; beforeEach(retracedUp(Env)); context("And a call is made into the Retraced API with a standard audit event", function () { @@ -65,6 +64,7 @@ describe("Listing Enterprise Tokens", function () { } assert.strictEqual(valid, true); resultBody = await retraced.reportEvent(event); + assert(resultBody); }); context("And at least one eitapi token exists", function () { @@ -82,7 +82,6 @@ describe("Listing Enterprise Tokens", function () { assert.strictEqual(resp1.status, 201); responseBody = resp1.data; assert(responseBody.token); - token = responseBody.token; }); context("When a call is made to list eitapi API tokens", function () { let tokens; diff --git a/integration/test/viewer/createsavedexport.ts b/integration/test/viewer/createsavedexport.ts index 87f5fa9f8..31f738381 100644 --- a/integration/test/viewer/createsavedexport.ts +++ b/integration/test/viewer/createsavedexport.ts @@ -16,7 +16,6 @@ describe("Viewer API", function () { const groupID = "rtrcdqa" + randomNumber.toString(); const actorID = "qa@retraced.io"; - let resultBody; beforeEach(retracedUp(Env)); context("And a call is made to create a viewer description scoped to a group", function () { diff --git a/integration/test/viewer/listsavedexports.ts b/integration/test/viewer/listsavedexports.ts index e5addce48..cc690a128 100644 --- a/integration/test/viewer/listsavedexports.ts +++ b/integration/test/viewer/listsavedexports.ts @@ -1,13 +1,9 @@ import * as querystring from "querystring"; -import { expect } from "chai"; import "mocha"; -import "chai-http"; import { retracedUp } from "../pkg/retracedUp"; import * as Env from "../env"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; +import assert from "assert"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const randomNumber2 = Math.floor(Math.random() * 99999) + 1; @@ -18,158 +14,132 @@ describe("Viewer API", function () { const groupID2 = "rtrcdqa" + randomNumber2.toString(); const actorID = "qa@retraced.io"; - let resultBody; beforeEach(retracedUp(Env)); - context( - "And a call is made to create two viewer descriptions scoped to different groups", - function () { - let token1; - let token2; - - beforeEach((done) => { - const opts = { - group_id: groupID1, - actor_id: actorID, - }; - const qs = querystring.stringify(opts); - - chai - .request(Env.Endpoint) - .get(`/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`) - .set("Authorization", `Token token=${Env.ApiKey}`) - .end((err, res) => { - expect(err).to.be.null; - token1 = res.body.token; - done(); - }); + context("And a call is made to create two viewer descriptions scoped to different groups", function () { + let token1; + let token2; + + beforeEach(async () => { + const opts = { + group_id: groupID1, + actor_id: actorID, + }; + const qs = querystring.stringify(opts); + + const resp1 = await axios.get( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`, + { + headers: { + Authorization: `Token token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + token1 = resp1.data.token; + }); + + beforeEach(async () => { + const opts = { + group_id: groupID2, + actor_id: actorID, + }; + const qs = querystring.stringify(opts); + + const resp2 = await axios.get( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`, + { + headers: { + Authorization: `Token token=${Env.ApiKey}`, + }, + } + ); + assert(resp2); + token2 = resp2.data.token; + }); + + context("And the viewer descriptors are exchanged for sessions", function () { + let viewerSession1; + let viewerSession2; + + beforeEach(async () => { + const resp3 = await axios.post(`${Env.Endpoint}/viewer/v1/viewersession`, { token: token1 }); + assert(resp3); + assert.strictEqual(resp3.status, 200); + viewerSession1 = resp3.data.token; }); - beforeEach((done) => { - const opts = { - group_id: groupID2, - actor_id: actorID, - }; - const qs = querystring.stringify(opts); - - chai - .request(Env.Endpoint) - .get(`/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`) - .set("Authorization", `Token token=${Env.ApiKey}`) - .end((err, res) => { - expect(err).to.be.null; - token2 = res.body.token; - done(); - }); + beforeEach(async () => { + const resp4 = await axios.post(`${Env.Endpoint}/viewer/v1/viewersession`, { token: token2 }); + assert(resp4); + assert.strictEqual(resp4.status, 200); + viewerSession2 = resp4.data.token; }); - context( - "And the viewer descriptors are exchanged for sessions", - function () { - let viewerSession1; - let viewerSession2; - - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/viewersession") - .send({ token: token1 }) - .end(function (err, res) { - viewerSession1 = JSON.parse(res.text).token; - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); - }); - - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/viewersession") - .send({ token: token2 }) - .end(function (err, res) { - viewerSession2 = JSON.parse(res.text).token; - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); + context("And the sessions are used to create SavedExports", function () { + let savedExport1; + let savedExport2; + + beforeEach(async function () { + const resp5 = await axios.post( + `${Env.Endpoint}/viewer/v1/project/${Env.ProjectID}/export`, + { + name: "Test Name", + exportBody: "Export Test Body", + }, + { + headers: { + Authorization: viewerSession1, + }, + } + ); + assert(resp5); + assert.strictEqual(resp5.status, 201); + savedExport1 = resp5.data; + }); + + beforeEach(async function () { + const resp6 = await axios.post( + `${Env.Endpoint}/viewer/v1/project/${Env.ProjectID}/export`, + { + name: "Test Name", + exportBody: "Export Test Body", + }, + { + headers: { + Authorization: viewerSession2, + }, + } + ); + assert(resp6); + assert.strictEqual(resp6.status, 201); + savedExport2 = resp6.data; + }); + + context("When the first session is used to list saved exports.", function () { + let responseBody; + + beforeEach(async function () { + const resp7 = await axios.get(`${Env.Endpoint}/viewer/v1/project/${Env.ProjectID}/exports`, { + headers: { + Authorization: viewerSession1, + }, + }); + assert(resp7); + assert.strictEqual(resp7.status, 200); + responseBody = resp7.data; }); - context( - "And the sessions are used to create SavedExports", + specify( + "Then the response should contain the one saved export created by the session.", function () { - let savedExport1; - let savedExport2; - - beforeEach(function (done) { - chai - .request(Env.Endpoint) - .post(`/viewer/v1/project/${Env.ProjectID}/export`) - .set("Authorization", viewerSession1) - .send({ - name: "Test Name", - exportBody: "Export Test Body", - }) - .end((err, res) => { - expect(err).to.be.null; - expect(res).to.have.property("status", 201); - savedExport1 = JSON.parse(res.text); - done(); - }); - }); - - beforeEach(function (done) { - chai - .request(Env.Endpoint) - .post(`/viewer/v1/project/${Env.ProjectID}/export`) - .set("Authorization", viewerSession2) - .send({ - name: "Test Name", - exportBody: "Export Test Body", - }) - .end((err, res) => { - expect(err).to.be.null; - expect(res).to.have.property("status", 201); - savedExport2 = JSON.parse(res.text); - done(); - }); - }); - - context( - "When the first session is used to list saved exports.", - function () { - let responseBody; - - beforeEach(function (done) { - chai - .request(Env.Endpoint) - .get(`/viewer/v1/project/${Env.ProjectID}/exports`) - .set("Authorization", viewerSession1) - .end((err, res) => { - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - responseBody = JSON.parse(res.text); - done(); - }); - }); - - specify( - "Then the response should contain the one saved export created by the session.", - function () { - expect(responseBody).to.have.length(1); - expect(responseBody[0]).to.have.property( - "id", - savedExport1.id - ); - } - ); - } - ); + assert.strictEqual(responseBody.length, 1); + assert.strictEqual(responseBody[0].id, savedExport1.id); } ); - } - ); - } - ); + }); + }); + }); + }); }); }); diff --git a/integration/test/viewer/search.ts b/integration/test/viewer/search.ts index e247e9a40..104a738e9 100644 --- a/integration/test/viewer/search.ts +++ b/integration/test/viewer/search.ts @@ -1,17 +1,13 @@ import * as querystring from "querystring"; -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import assert from "assert"; +import axios from "axios"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date(); @@ -69,68 +65,63 @@ describe("Viewer API", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); await retraced.reportEvent(event); }); context("And a call is made to create a viewer description scoped to a target", function () { let token; - beforeEach((done) => { + beforeEach(async () => { const opts = { actor_id: actorID, group_id: groupID, target_id: targetID, }; const qs = querystring.stringify(opts); - - chai - .request(Env.Endpoint) - .get(`/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`) - .set("Authorization", `Token token=${Env.ApiKey}`) - .end((err, res) => { - expect(err).to.be.null; - token = res.body.token; - done(); - }); + const resp1 = await axios.get( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`, + { + headers: { + Authorization: `Token token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + token = resp1.data.token; }); context("And the viewer descriptor is exchanged for a session", function () { let viewerSession; - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/viewersession") - .send({ token }) - .end(function (err, res) { - viewerSession = JSON.parse(res.text).token; - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); + beforeEach(async () => { + const resp2 = await axios.post(`${Env.Endpoint}/viewer/v1/viewersession`, { token }); + assert(resp2); + assert.strictEqual(resp2.status, 200); + viewerSession = resp2.data.token; }); context("When a call is made to the Viewer API GraphQL endpoint for the event", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/graphql") - .set("Authorization", viewerSession) - .send(search("integration.test.api." + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp3 = await axios.post( + `${Env.Endpoint}/viewer/v1/graphql`, + search("integration.test.api." + randomNumber.toString()), + { + headers: { + Authorization: viewerSession, + }, + } + ); + assert(resp3); + assert.strictEqual(resp3.status, 200); + responseBody = resp3.data; }); specify("Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration.test.api." + randomNumber.toString() ); }); @@ -152,137 +143,87 @@ describe("Viewer API", function () { context("And the viewer descriptor is exchanged for a session", function () { let viewerSession; - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/viewersession") - .send({ token }) - .end(function (err, res) { - viewerSession = JSON.parse(res.text).token; - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); + beforeEach(async () => { + const resp4 = await axios.post(`${Env.Endpoint}/viewer/v1/viewersession`, { token }); + assert(resp4); + assert.strictEqual(resp4.status, 200); + viewerSession = resp4.data.token; }); context("When a call is made to the Viewer API GraphQL endpoint for the event", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/graphql") - .set("Authorization", viewerSession) - .send(search("integration.test.api." + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp5 = await axios.post( + `${Env.Endpoint}/viewer/v1/graphql`, + search("integration.test.api." + randomNumber.toString()), + { + headers: { + Authorization: viewerSession, + }, + } + ); + assert(resp5); + assert.strictEqual(resp5.status, 200); + responseBody = resp5.data; }); specify("Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration.test.api." + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.created", - isoDate(currentTime) - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.description", + assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(currentTime)); + assert.strictEqual( + responseBody.data.search.edges[0].node.description, "Automated integration testing..." ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", - "department" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].key, "department"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); + assert.strictEqual( + responseBody.data.search.edges[0].node.group.id, "rtrcdqa" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.name", - "Retraced API" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].key", - "record_count" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].value", - "100" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_failure", false); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.source_ip", - "192.168.0.1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].key", - "quality" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].value", - "excellent" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.target.name, "Retraced API"); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].key, "record_count"); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].value, "100"); + assert.strictEqual(responseBody.data.search.edges[0].node.is_failure, false); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, "192.168.0.1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].key, "quality"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].value, "excellent"); }); }); context("When a second call is made to the Viewer API GraphQL endpoint", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/graphql") - .set("Authorization", viewerSession) - .send(search("audit.log.view")) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); + await sleep(Env.EsIndexWaitMs); + + const resp6 = await axios.post(`${Env.Endpoint}/viewer/v1/graphql`, search("audit.log.view"), { + headers: { + Authorization: viewerSession, + }, }); + assert(resp6); + assert.strictEqual(resp6.status, 200); + responseBody = resp6.data; }); specify( "Then the most recent event should be an audit.log.view event with the actor specified", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", - "audit.log.view" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", + assert.strictEqual(responseBody.data.search.edges[0].node.action, "audit.log.view"); + assert.strictEqual( + responseBody.data.search.edges[0].node.group.id, "rtrcdqa" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "r"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.id", - "qa@retraced.io" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.name", - "RetracedQA Employee" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", - "department" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "r"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.id, "qa@retraced.io"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.name, "RetracedQA Employee"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].key, "department"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); } ); }); From b353426f198fc7c40383b513ca8d7f38febb89f2 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Sat, 6 Jan 2024 15:14:55 +0000 Subject: [PATCH 19/21] fully replaced chai-http --- integration/test/viewer/searchindexes.ts | 170 +++++++++---------- package-lock.json | 198 ----------------------- package.json | 1 - 3 files changed, 78 insertions(+), 291 deletions(-) diff --git a/integration/test/viewer/searchindexes.ts b/integration/test/viewer/searchindexes.ts index a440eac20..aa3497b25 100644 --- a/integration/test/viewer/searchindexes.ts +++ b/integration/test/viewer/searchindexes.ts @@ -3,15 +3,12 @@ import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; -import "chai-http"; import { CreateEventSchema, search } from "../pkg/specs"; import { retracedUp } from "../pkg/retracedUp"; import { sleep, isoDate } from "../pkg/util"; import * as Env from "../env"; - -const chai = require("chai"), - chaiHttp = require("chai-http"); -chai.use(chaiHttp); +import axios from "axios"; +import assert from "assert"; const randomNumber = Math.floor(Math.random() * 99999) + 1; const currentTime = new Date(); @@ -82,7 +79,7 @@ describe("Viewer API", function () { context("And a call is made to create a viewer description scoped to an action", function () { let token; - beforeEach((done) => { + beforeEach(async () => { const opts = { actor_id: actorID, group_id: groupID, @@ -90,49 +87,45 @@ describe("Viewer API", function () { }; const qs = querystring.stringify(opts); - chai - .request(Env.Endpoint) - .get(`/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`) - .set("Authorization", `Token token=${Env.ApiKey}`) - .end((err, res) => { - expect(err).to.be.null; - token = res.body.token; - done(); - }); + const resp1 = await axios.get( + `${Env.Endpoint}/publisher/v1/project/${Env.ProjectID}/viewertoken?${qs}`, + { + headers: { + Authorization: `token=${Env.ApiKey}`, + }, + } + ); + assert(resp1); + token = resp1.data.token; }); context("And the viewer descriptor is exchanged for a session", function () { let viewerSession; - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/viewersession") - .send({ token }) - .end(function (err, res) { - viewerSession = JSON.parse(res.text).token; - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); + beforeEach(async () => { + const resp2 = await axios.post(`${Env.Endpoint}/viewer/v1/viewersession`, { token }); + assert(resp2); + assert.strictEqual(resp2.status, 200); + viewerSession = resp2.data.token; }); context("When a call is made to the Viewer API GraphQL endpoint for the event", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/graphql") - .set("Authorization", viewerSession) - .send(search("integration.test.api." + randomNumber.toString())) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp3 = await axios.post( + `${Env.Endpoint}/viewer/v1/graphql`, + search("integration.test.api." + randomNumber.toString()), + { + headers: { + Authorization: viewerSession, + }, + } + ); + assert(resp3); + assert.strictEqual(resp3.status, 200); + responseBody = resp3.data; }); specify("Then the response should contain the correct information about the event", function () { expect(responseBody).to.have.nested.property( @@ -158,38 +151,33 @@ describe("Viewer API", function () { context("And the viewer descriptor is exchanged for a session", function () { let viewerSession; - beforeEach((done) => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/viewersession") - .send({ token }) - .end(function (err, res) { - viewerSession = JSON.parse(res.text).token; - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); + beforeEach(async () => { + const resp4 = await axios.post(`${Env.Endpoint}/viewer/v1/viewersession`, { token }); + assert(resp4); + assert.strictEqual(resp4.status, 200); + viewerSession = resp4.data.token; }); context( "When a call is made to the Viewer API GraphQL endpoint for the event with external_id", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/graphql") - .set("Authorization", viewerSession) - .send(search("external_id:" + externalID)) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp5 = await axios.post( + `${Env.Endpoint}/viewer/v1/graphql`, + search("external_id:" + externalID), + { + headers: { + Authorization: viewerSession, + }, + } + ); + assert(resp5); + assert.strictEqual(resp5.status, 200); + responseBody = resp5.data; }); specify( @@ -266,21 +254,22 @@ describe("Viewer API", function () { "When a call is made to the Viewer API GraphQL endpoint for the event with field: field1", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/graphql") - .set("Authorization", viewerSession) - .send(search("fields.field1:" + field1)) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); - }); + await sleep(Env.EsIndexWaitMs); + + const resp6 = await axios.post( + `${Env.Endpoint}/viewer/v1/graphql`, + search("fields.field1:" + field1), + { + headers: { + Authorization: viewerSession, + }, + } + ); + assert(resp6); + assert.strictEqual(resp6.status, 200); + responseBody = resp6.data; }); specify( @@ -355,21 +344,18 @@ describe("Viewer API", function () { context("When a second call is made to the Viewer API GraphQL endpoint", function () { let responseBody; - beforeEach(function (done) { + beforeEach(async function () { this.timeout(Env.EsIndexWaitMs * 2); - sleep(Env.EsIndexWaitMs).then(() => { - chai - .request(Env.Endpoint) - .post("/viewer/v1/graphql") - .set("Authorization", viewerSession) - .send(search("audit.log.view")) - .end(function (err, res) { - responseBody = JSON.parse(res.text); - expect(err).to.be.null; - expect(res).to.have.property("status", 200); - done(); - }); + await sleep(Env.EsIndexWaitMs); + + const resp7 = await axios.post(`${Env.Endpoint}/viewer/v1/graphql`, search("audit.log.view"), { + headers: { + Authorization: viewerSession, + }, }); + assert(resp7); + assert.strictEqual(resp7.status, 200); + responseBody = resp7.data; }); specify( "Then the most recent event should be an audit.log.view event with the actor specified", diff --git a/package-lock.json b/package-lock.json index 4137324a5..ec8fdaca1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,7 +73,6 @@ "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", "chai": "4.3.10", - "chai-http": "4.4.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", @@ -2184,11 +2183,6 @@ "@types/node": "*" } }, - "node_modules/@types/chai": { - "version": "4.3.4", - "dev": true, - "license": "MIT" - }, "node_modules/@types/connect": { "version": "3.4.35", "license": "MIT", @@ -2196,12 +2190,6 @@ "@types/node": "*" } }, - "node_modules/@types/cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==", - "dev": true - }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", @@ -2389,16 +2377,6 @@ "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", "dev": true }, - "node_modules/@types/superagent": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.13.tgz", - "integrity": "sha512-YIGelp3ZyMiH0/A09PMAORO0EBGlF5xIKfDpK74wdYvWUs2o96b5CItJcWPdH409b7SAXIIG6p8NdU/4U2Maww==", - "dev": true, - "dependencies": { - "@types/cookiejar": "*", - "@types/node": "*" - } - }, "node_modules/@types/swagger-jsdoc": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/@types/swagger-jsdoc/-/swagger-jsdoc-6.0.4.tgz", @@ -3196,12 +3174,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, "node_modules/assert": { "version": "1.5.0", "license": "MIT", @@ -3801,40 +3773,6 @@ "node": ">=4" } }, - "node_modules/chai-http": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/chai-http/-/chai-http-4.4.0.tgz", - "integrity": "sha512-uswN3rZpawlRaa5NiDUHcDZ3v2dw5QgLyAwnQ2tnVNuP7CwIsOFuYJ0xR1WiR7ymD4roBnJIzOUep7w9jQMFJA==", - "dev": true, - "dependencies": { - "@types/chai": "4", - "@types/superagent": "4.1.13", - "charset": "^1.0.1", - "cookiejar": "^2.1.4", - "is-ip": "^2.0.0", - "methods": "^1.1.2", - "qs": "^6.11.2", - "superagent": "^8.0.9" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/chai-http/node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/chainsaw": { "version": "0.1.0", "license": "MIT/X11", @@ -3869,15 +3807,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/charset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz", - "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/check-error": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", @@ -4063,12 +3992,6 @@ "dev": true, "license": "MIT" }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "license": "MIT" @@ -4142,12 +4065,6 @@ "version": "1.0.6", "license": "MIT" }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true - }, "node_modules/core-util-is": { "version": "1.0.3", "license": "MIT" @@ -4501,16 +4418,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, "node_modules/diff": { "version": "4.0.2", "dev": true, @@ -5485,12 +5392,6 @@ "node": ">=6" } }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -5750,21 +5651,6 @@ "node": ">=12.20.0" } }, - "node_modules/formidable": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", - "dev": true, - "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, "node_modules/forwarded": { "version": "0.2.0", "license": "MIT", @@ -6331,15 +6217,6 @@ "he": "bin/he" } }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/html-escaper": { "version": "2.0.2", "dev": true, @@ -6775,14 +6652,6 @@ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, - "node_modules/ip-regex": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/ip6addr": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/ip6addr/-/ip6addr-0.2.5.tgz", @@ -7042,17 +6911,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-ip": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-regex": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -11382,62 +11240,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/superagent": { - "version": "8.0.9", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", - "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", - "dev": true, - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.1.2", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/superagent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/supports-color": { "version": "7.2.0", "dev": true, diff --git a/package.json b/package.json index 8d0855f74..6fe4bbbab 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,6 @@ "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", "chai": "4.3.10", - "chai-http": "4.4.0", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", From a063fcef1cf83dcb59e9262d85a5e5976ee573e8 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Sat, 6 Jan 2024 16:54:48 +0000 Subject: [PATCH 20/21] WIP: Replace expect with assert --- integration/test/admin/createTemplate.ts | 1 - integration/test/viewer/searchindexes.ts | 186 ++++++------------ .../models/action/test/select_new.ts | 8 +- .../models/action/test/select_stopped.ts | 8 +- .../models/active_actor/test/select_top.ts | 18 +- .../models/environment/test/daily_report.ts | 38 ++-- src/_processor/test/common.ts | 4 +- src/_processor/test/services/EmailerTest.ts | 10 +- .../workers/ElasticsearchIndexRotatorTest.ts | 4 +- .../test/workers/ElasticsearchSaverTest.ts | 14 +- .../test/workers/NormalizeEventTest.ts | 16 +- .../test/workers/NormalizeRepairerTest.ts | 10 +- .../handlers/admin/AdminUserBootstrap.ts | 18 +- .../admin/approveDeletionConfirmation.ts | 46 ++--- .../handlers/admin/cancelEmailReport.ts | 48 ++--- .../handlers/admin/createApiToken.ts | 39 ++-- .../handlers/admin/createDeletionRequest.ts | 125 +++++------- .../handlers/admin/createEnvironment.ts | 55 ++---- src/e2e-tests/handlers/admin/createInvite.ts | 67 +++---- src/e2e-tests/handlers/admin/createProject.ts | 35 ++-- .../handlers/admin/createTemplate.ts | 77 +++----- .../handlers/admin/deleteApiToken.ts | 64 +++--- .../handlers/admin/deleteEnvironment.ts | 6 +- src/e2e-tests/handlers/admin/deleteInvite.ts | 64 +++--- .../handlers/admin/deleteTeamMember.ts | 58 +++--- .../handlers/admin/deleteTemplate.ts | 80 +++----- src/e2e-tests/handlers/admin/getAction.ts | 80 +++----- src/e2e-tests/handlers/admin/getActor.ts | 60 +++--- src/e2e-tests/handlers/admin/getDashboard.ts | 80 ++++---- .../handlers/admin/getDeletionRequest.ts | 78 +++----- src/e2e-tests/handlers/admin/getProject.ts | 79 +++----- src/e2e-tests/handlers/admin/listActions.ts | 72 +++---- src/e2e-tests/handlers/admin/listActors.ts | 68 +++---- src/e2e-tests/handlers/admin/listInvites.ts | 69 +++---- src/e2e-tests/handlers/admin/listProjects.ts | 68 +++---- src/e2e-tests/handlers/admin/listTargets.ts | 68 +++---- .../handlers/admin/listTeamMembers.ts | 68 +++---- .../handlers/admin/publicRenderEvent.ts | 72 +++---- src/e2e-tests/handlers/admin/searchEvents.ts | 72 +++---- src/e2e-tests/handlers/admin/searchGroups.ts | 85 ++++---- .../handlers/admin/searchTemplates.ts | 89 +++------ .../handlers/admin/updateApiToken.ts | 75 +++---- src/e2e-tests/handlers/admin/updateUser.ts | 62 +++--- .../handlers/createViewerDescriptor.ts | 62 +++--- src/e2e-tests/handlers/createViewerSession.ts | 70 +++---- .../handlers/deleteEnterpriseToken.ts | 54 ++--- .../handlers/enterprise/createActiveSearch.ts | 14 +- .../handlers/enterprise/deleteActiveSearch.ts | 10 +- .../handlers/enterprise/pumpActiveSearch.ts | 32 ++- .../handlers/enterprise/searchAdHoc.ts | 14 +- src/e2e-tests/handlers/getEnterpriseToken.ts | 61 +++--- src/e2e-tests/handlers/getInvite.ts | 6 +- src/e2e-tests/handlers/graphql/handler.ts | 12 +- .../handlers/listEnterpriseTokens.ts | 54 +++-- .../handlers/updateEnterpriseToken.ts | 78 +++----- .../handlers/viewer/renderSavedExport.ts | 18 +- src/e2e-tests/handlers/viewer/searchEvents.ts | 17 +- src/test/handlers/graphql.ts | 18 +- src/test/headless.ts | 36 ++-- src/test/models/admin_token/store_test.ts | 6 +- src/test/models/event/canonicalize.ts | 26 ++- src/test/models/event/countBy.ts | 6 +- src/test/models/event/filter.ts | 6 +- src/test/persistence/elasticsearch.ts | 14 +- src/test/security/AuthenticatorTest.ts | 14 +- src/test/security/helpers.ts | 12 +- 66 files changed, 1167 insertions(+), 1817 deletions(-) diff --git a/integration/test/admin/createTemplate.ts b/integration/test/admin/createTemplate.ts index 746ee802c..5e0b61032 100644 --- a/integration/test/admin/createTemplate.ts +++ b/integration/test/admin/createTemplate.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { Client } from "@retracedhq/retraced"; import { retracedUp } from "../pkg/retracedUp"; import adminUser from "../pkg/adminUser"; diff --git a/integration/test/viewer/searchindexes.ts b/integration/test/viewer/searchindexes.ts index aa3497b25..3e33340c0 100644 --- a/integration/test/viewer/searchindexes.ts +++ b/integration/test/viewer/searchindexes.ts @@ -1,5 +1,4 @@ import * as querystring from "querystring"; -import { expect } from "chai"; import { Client, CRUD } from "@retracedhq/retraced"; import tv4 from "tv4"; import "mocha"; @@ -72,7 +71,7 @@ describe("Viewer API", function () { if (!valid) { console.log(tv4.error); } - expect(valid).to.be.true; + assert.strictEqual(valid, true); await retraced.reportEvent(event); }); @@ -128,8 +127,8 @@ describe("Viewer API", function () { responseBody = resp3.data; }); specify("Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration.test.api." + randomNumber.toString() ); }); @@ -183,68 +182,38 @@ describe("Viewer API", function () { specify( "Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration.test.api." + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.created", - isoDate(currentTime) - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.description", + assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(currentTime)); + assert.strictEqual( + responseBody.data.search.edges[0].node.description, "Automated integration testing..." ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", + assert.strictEqual( + responseBody.data.search.edges[0].node.actor.fields[0].key, "department" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); + assert.strictEqual( + responseBody.data.search.edges[0].node.group.id, "rtrcdqa" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.name", - "Retraced API" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].key", + assert.strictEqual(responseBody.data.search.edges[0].node.target.name, "Retraced API"); + assert.strictEqual( + responseBody.data.search.edges[0].node.target.fields[0].key, "record_count" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].value", - "100" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_failure", false); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.source_ip", - "192.168.0.1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].key", - "field1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].value", - field1 - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.external_id", - externalID - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.metadata[0].key", - "metadata1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.metadata[0].value", - "metadata1" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].value, "100"); + assert.strictEqual(responseBody.data.search.edges[0].node.is_failure, false); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, "192.168.0.1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].key, "field1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].value, field1); + assert.strictEqual(responseBody.data.search.edges[0].node.external_id, externalID); + assert.strictEqual(responseBody.data.search.edges[0].node.metadata[0].key, "metadata1"); + assert.strictEqual(responseBody.data.search.edges[0].node.metadata[0].value, "metadata1"); } ); } @@ -275,68 +244,38 @@ describe("Viewer API", function () { specify( "Then the response should contain the correct information about the event", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", + assert.strictEqual( + responseBody.data.search.edges[0].node.action, "integration.test.api." + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.created", - isoDate(currentTime) - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.description", + assert.strictEqual(responseBody.data.search.edges[0].node.created, isoDate(currentTime)); + assert.strictEqual( + responseBody.data.search.edges[0].node.description, "Automated integration testing..." ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", + assert.strictEqual( + responseBody.data.search.edges[0].node.actor.fields[0].key, "department" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); + assert.strictEqual( + responseBody.data.search.edges[0].node.group.id, "rtrcdqa" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.name", - "Retraced API" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].key", + assert.strictEqual(responseBody.data.search.edges[0].node.target.name, "Retraced API"); + assert.strictEqual( + responseBody.data.search.edges[0].node.target.fields[0].key, "record_count" ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.target.fields[0].value", - "100" - ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.is_failure", false); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "c"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.source_ip", - "192.168.0.1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].key", - "field1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.fields[0].value", - field1 - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.external_id", - externalID - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.metadata[0].key", - "metadata1" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.metadata[0].value", - "metadata1" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.target.fields[0].value, "100"); + assert.strictEqual(responseBody.data.search.edges[0].node.is_failure, false); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "c"); + assert.strictEqual(responseBody.data.search.edges[0].node.source_ip, "192.168.0.1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].key, "field1"); + assert.strictEqual(responseBody.data.search.edges[0].node.fields[0].value, field1); + assert.strictEqual(responseBody.data.search.edges[0].node.external_id, externalID); + assert.strictEqual(responseBody.data.search.edges[0].node.metadata[0].key, "metadata1"); + assert.strictEqual(responseBody.data.search.edges[0].node.metadata[0].value, "metadata1"); } ); } @@ -360,31 +299,16 @@ describe("Viewer API", function () { specify( "Then the most recent event should be an audit.log.view event with the actor specified", function () { - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.action", - "audit.log.view" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.group.id", + assert.strictEqual(responseBody.data.search.edges[0].node.action, "audit.log.view"); + assert.strictEqual( + responseBody.data.search.edges[0].node.group.id, "rtrcdqa" + randomNumber.toString() ); - expect(responseBody).to.have.nested.property("data.search.edges[0].node.crud", "r"); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.id", - "qa@retraced.io" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.name", - "RetracedQA Employee" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].key", - "department" - ); - expect(responseBody).to.have.nested.property( - "data.search.edges[0].node.actor.fields[0].value", - "QA" - ); + assert.strictEqual(responseBody.data.search.edges[0].node.crud, "r"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.id, "qa@retraced.io"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.name, "RetracedQA Employee"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].key, "department"); + assert.strictEqual(responseBody.data.search.edges[0].node.actor.fields[0].value, "QA"); } ); }); diff --git a/src/_processor/models/action/test/select_new.ts b/src/_processor/models/action/test/select_new.ts index a6cf71496..0414e75da 100644 --- a/src/_processor/models/action/test/select_new.ts +++ b/src/_processor/models/action/test/select_new.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import moment from "moment"; import getPgPool from "../../../persistence/pg"; import selectNew from "../select_new"; import { randomUUID } from "crypto"; +import assert from "assert"; const pgPool = getPgPool(); @@ -42,9 +42,9 @@ describe("models.action.select_new", () => { environmentId, range: [ref, ref.clone().add(1, "day")], }).then((acts) => { - expect(acts).to.have.length(2); - expect(acts).to.include("a.update"); - expect(acts).to.include("a.get"); + assert.strictEqual(acts.length, 2); + assert.strictEqual(acts.includes("a.update"), true); + assert.strictEqual(acts.includes("a.get"), true); }); }); }); diff --git a/src/_processor/models/action/test/select_stopped.ts b/src/_processor/models/action/test/select_stopped.ts index e86622051..9c4115fe2 100644 --- a/src/_processor/models/action/test/select_stopped.ts +++ b/src/_processor/models/action/test/select_stopped.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import moment from "moment"; import { randomUUID } from "crypto"; import getPgPool from "../../../persistence/pg"; import selectStopped from "../select_stopped"; +import assert from "assert"; const pgPool = getPgPool(); @@ -42,9 +42,9 @@ describe("models.action.select_stopped", () => { environmentId, range: [ref, ref.clone().add(1, "day")], }).then((acts) => { - expect(acts).to.have.length(2); - expect(acts).to.include("a.update"); - expect(acts).to.include("a.get"); + assert.strictEqual(acts.length, 2); + assert.strictEqual(acts.includes("a.update"), true); + assert.strictEqual(acts.includes("a.get"), true); }); }); }); diff --git a/src/_processor/models/active_actor/test/select_top.ts b/src/_processor/models/active_actor/test/select_top.ts index 7e4004c21..c63ea25db 100644 --- a/src/_processor/models/active_actor/test/select_top.ts +++ b/src/_processor/models/active_actor/test/select_top.ts @@ -1,9 +1,9 @@ -import { expect } from "chai"; import moment from "moment"; import { randomUUID } from "crypto"; import getPgPool from "../../../persistence/pg"; import selectTop from "../select_top"; +import assert from "assert"; const pgPool = getPgPool(); @@ -69,7 +69,7 @@ describe("models.active_actor.select_top", () => { environmentId, range: [ref, ref.clone().add(1, "day")], }).then((results) => { - expect(results).to.have.length(5); + assert.strictEqual(results.length, 5); const actor0 = results.find(({ actor_id }) => actor_id === actors[0]); const actor1 = results.find(({ actor_id }) => actor_id === actors[1]); @@ -79,13 +79,13 @@ describe("models.active_actor.select_top", () => { const actor5 = results.find(({ actor_id }) => actor_id === actors[5]); const actor6 = results.find(({ actor_id }) => actor_id === actors[6]); - expect(actor0).to.equal(undefined); - expect(actor6).to.equal(undefined); - expect(actor1).to.have.property("action_count", 2); - expect(actor2).to.have.property("action_count", 2); - expect(actor3).to.have.property("action_count", 2); - expect(actor4).to.have.property("action_count", 2); - expect(actor5).to.have.property("action_count", 2); + assert.strictEqual(actor0, undefined); + assert.strictEqual(actor6, undefined); + assert.strictEqual(actor1!.action_count, 2); + assert.strictEqual(actor2!.action_count, 2); + assert.strictEqual(actor3!.action_count, 2); + assert.strictEqual(actor4!.action_count, 2); + assert.strictEqual(actor5!.action_count, 2); }); }); }); diff --git a/src/_processor/models/environment/test/daily_report.ts b/src/_processor/models/environment/test/daily_report.ts index e28fa7754..5ed81ebf4 100644 --- a/src/_processor/models/environment/test/daily_report.ts +++ b/src/_processor/models/environment/test/daily_report.ts @@ -1,10 +1,10 @@ -import { expect } from "chai"; import moment from "moment-timezone"; import { describe, it } from "mocha"; import { randomUUID } from "crypto"; import dailyReport, { Record } from "../daily_report"; import { fixProject } from "./common"; +import assert from "assert"; describe("models.environment.daily_report", () => { describe(` @@ -88,9 +88,9 @@ describe("models.environment.daily_report", () => { ({ project_name, environment_name }) => project_name === "Beta" && environment_name === "Stage" ) as Record; - expect(alphaProd).not.to.equal(undefined); - expect(alphaProd.recipients).to.have.length(2); - expect(alphaProd.recipients).to.deep.include.members([ + assert(alphaProd); + assert.strictEqual(alphaProd.recipients.length, 2); + assert.deepEqual(alphaProd.recipients, [ { email: bob.email, id: bob.id, @@ -102,24 +102,30 @@ describe("models.environment.daily_report", () => { token: "xyz", }, ]); - expect(alphaStage).not.to.equal(undefined); - expect(alphaStage.recipients).to.deep.equal([ + + assert(alphaStage); + assert.strictEqual(alphaStage.recipients.length, 1); + assert.deepEqual(alphaStage.recipients, [ { email: ann.email, id: ann.id, token: "xyz", }, ]); - expect(betaProd).not.to.equal(undefined); - expect(betaProd.recipients).to.deep.equal([ + + assert(betaProd); + assert.strictEqual(betaProd.recipients.length, 1); + assert.deepEqual(betaProd.recipients, [ { email: charlie.email, id: charlie.id, token: "xyz", }, ]); - expect(betaStage).not.to.equal(undefined); - expect(betaStage.recipients).to.deep.equal([ + + assert(betaStage); + assert.strictEqual(betaStage.recipients.length, 1); + assert.deepEqual(betaStage.recipients, [ { email: charlie.email, id: charlie.id, @@ -190,42 +196,42 @@ describe("models.environment.daily_report", () => { ({ environment_name, utc_offset }) => environment_name === "Stage" && utc_offset === 345 ) as Record; - expect(prod6.recipients).to.deep.equal([ + assert.deepEqual(prod6.recipients, [ { email: dan.email, id: dan.id, token: "xyz", }, ]); - expect(stage6.recipients).to.deep.equal([ + assert.deepEqual(stage6.recipients, [ { email: dan.email, id: dan.id, token: "xyz", }, ]); - expect(prod530.recipients).to.deep.equal([ + assert.deepEqual(prod530.recipients, [ { email: esther.email, id: esther.id, token: "xyz", }, ]); - expect(stage530.recipients).to.deep.equal([ + assert.deepEqual(stage530.recipients, [ { email: esther.email, id: esther.id, token: "xyz", }, ]); - expect(prod545.recipients).to.deep.equal([ + assert.deepEqual(prod545.recipients, [ { email: frank.email, id: frank.id, token: "xyz", }, ]); - expect(stage545.recipients).to.deep.equal([ + assert.deepEqual(stage545.recipients, [ { email: frank.email, id: frank.id, diff --git a/src/_processor/test/common.ts b/src/_processor/test/common.ts index dcfd60a4b..7057e2dab 100644 --- a/src/_processor/test/common.ts +++ b/src/_processor/test/common.ts @@ -1,4 +1,4 @@ -import { expect } from "chai"; +import assert from "assert"; import { offsetsWithLocalTimeDuringUTCHour } from "../common"; describe("common.offsetsWithLocalTimeDuringUTCHour", () => { @@ -22,7 +22,7 @@ describe("common.offsetsWithLocalTimeDuringUTCHour", () => { it(`=> ${JSON.stringify(answer)}`, () => { const output = offsetsWithLocalTimeDuringUTCHour(utcHour, localHour); - expect(output).to.deep.equal(answer); + assert.deepEqual(output, answer); }); }); }); diff --git a/src/_processor/test/services/EmailerTest.ts b/src/_processor/test/services/EmailerTest.ts index 1f4239b69..e2a65d52d 100644 --- a/src/_processor/test/services/EmailerTest.ts +++ b/src/_processor/test/services/EmailerTest.ts @@ -1,10 +1,10 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import nodemailer from "nodemailer"; import Handlebars from "handlebars"; import { Emailer } from "../../services/Emailer"; +import assert from "assert"; @suite class EmailerTest { @@ -30,13 +30,13 @@ class EmailerTest { const result: any = await emailer.send(email); const msg = JSON.parse(result.message); - expect(msg).to.have.property("html", "Hello, Fran"); - expect(msg).to.have.property("subject", "Hello!"); - expect(msg.from).to.deep.equal({ + assert.strictEqual(msg.html, "Hello, Fran"); + assert.strictEqual(msg.subject, "Hello!"); + assert.deepEqual(msg.from, { address: "contact@retraced.io", name: "Retraced", }); - expect(msg.to).to.deep.equal([ + assert.deepEqual(msg.to, [ { address: "user@example.com", name: "", diff --git a/src/_processor/test/workers/ElasticsearchIndexRotatorTest.ts b/src/_processor/test/workers/ElasticsearchIndexRotatorTest.ts index f35ac6308..d97a1ba6b 100644 --- a/src/_processor/test/workers/ElasticsearchIndexRotatorTest.ts +++ b/src/_processor/test/workers/ElasticsearchIndexRotatorTest.ts @@ -1,5 +1,4 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import * as TypeMoq from "typemoq"; @@ -7,6 +6,7 @@ import moment from "moment"; import pg from "pg"; import { ElasticsearchIndexRotator } from "../../workers/ElasticsearchIndexRotator"; import { QueryResult } from "pg"; +import assert from "assert"; @suite class ElasticsearchIndexRotatorTest { @@ -32,7 +32,7 @@ class ElasticsearchIndexRotatorTest { indices .setup((x) => x.create(TypeMoq.It.is(() => true))) .returns((args: any) => { - expect(args).to.deep.equal(expectedIndex); + assert.deepEqual(args, expectedIndex); return Promise.resolve(null); }) .verifiable(TypeMoq.Times.once()); diff --git a/src/_processor/test/workers/ElasticsearchSaverTest.ts b/src/_processor/test/workers/ElasticsearchSaverTest.ts index b41e172e2..89a13c2a1 100644 --- a/src/_processor/test/workers/ElasticsearchSaverTest.ts +++ b/src/_processor/test/workers/ElasticsearchSaverTest.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-unused-expressions */ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import * as TypeMoq from "typemoq"; import sinon from "sinon"; @@ -10,6 +9,7 @@ import { ElasticsearchSaver } from "../../workers/saveEventToElasticsearch"; import { Client } from "@opensearch-project/opensearch"; import * as instrument from "../../../metrics/opentelemetry/instrumentation"; import { ApiResponse, TransportRequestPromise } from "@opensearch-project/opensearch/lib/Transport.js"; +import assert from "assert"; @suite class ElasticsearchSaverTest { @@ -137,14 +137,16 @@ class ElasticsearchSaverTest { const saver = new ElasticsearchSaver(es.object, clock.object); await saver.saveEventToElasticsearch({ body: Buffer.from(jobBody) }); - expect( + assert.strictEqual( recordOtelHistogramStub.calledWithExactly("workers.saveEventToElasticSearch.latencyCreated", 400), - "It should have tracked the time to make an event searchable from the point of creation" - ).to.be.true; - expect( + true, + "It should have tracked the time to make an event searchable from the point of reception" + ); + assert.strictEqual( recordOtelHistogramStub.calledWithExactly("workers.saveEventToElasticSearch.latencyReceived", 300), + true, "It should have tracked the time to make an event searchable from the point of reception" - ).to.be.true; + ); es.verifyAll(); clock.verifyAll(); } diff --git a/src/_processor/test/workers/NormalizeEventTest.ts b/src/_processor/test/workers/NormalizeEventTest.ts index 3318959f0..266d806af 100644 --- a/src/_processor/test/workers/NormalizeEventTest.ts +++ b/src/_processor/test/workers/NormalizeEventTest.ts @@ -4,8 +4,8 @@ import sinon from "sinon"; import normalizeEvent from "../../workers/normalizeEvent"; import { Pool } from "pg"; import { NSQClient } from "../../persistence/nsq"; -import { expect } from "chai"; import { restoreOriginalEvent } from "../../common"; +import assert from "assert"; const LOCALHOST_IP = "127.0.0.1"; const RECEIVED = new Date().getTime(); @@ -257,15 +257,17 @@ class NormalizeEventTest { taskId: "100", }), }); - expect( + assert.strictEqual( this.queryStub.getCall(0).calledWithMatch(ingestionTaskQuery, ["100"]), + true, "Failed to query ingest_task table correctly" - ).to.be.true; - expect( + ); + assert.strictEqual( this.queryStub.getCall(10).calledWithMatch(normalizeQuery, [normalizedEvent, compressedEvent, "100"]), + true, "updation of ingest_task with normalizedEvent, compressedEvent failed" - ).to.be.true; - expect(this.releaseStub.calledOnce, "pg poolclient not released after use").to.be.true; + ); + assert.strictEqual(this.releaseStub.calledOnce, true, "pg poolclient not released after use"); } @test @@ -278,7 +280,7 @@ class NormalizeEventTest { ) public restoreOriginalEvent({ compressedEvent, normalizedEvent }) { const originalEvent = restoreOriginalEvent(compressedEvent, normalizedEvent); - expect(originalEvent).to.deep.equal(ORIGINAL_EVENT); + assert.deepEqual(originalEvent, ORIGINAL_EVENT); } } diff --git a/src/_processor/test/workers/NormalizeRepairerTest.ts b/src/_processor/test/workers/NormalizeRepairerTest.ts index 0555bf1cd..df49ad5ec 100644 --- a/src/_processor/test/workers/NormalizeRepairerTest.ts +++ b/src/_processor/test/workers/NormalizeRepairerTest.ts @@ -1,5 +1,4 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import * as TypeMoq from "typemoq"; @@ -8,6 +7,7 @@ import pg from "pg"; import { NSQClient } from "../../persistence/nsq"; import NormalizeRepairer from "../../workers/NormalizeRepairer"; import { QueryResult } from "pg"; +import assert from "assert"; const isAny = TypeMoq.It.isAny; @@ -22,8 +22,8 @@ class NormalizeRepairerTest { pool .setup((x) => x.query(NormalizeRepairer.selectFromIngestTask, isAny())) .returns((q, v) => { - expect(v[0]).to.equal(minAgeMs); - expect(v[1]).to.equal(maxEvents); + assert.strictEqual(v[0], minAgeMs); + assert.strictEqual(v[1], maxEvents); return Promise.resolve({ command: "", rowCount: 10, @@ -55,8 +55,8 @@ class NormalizeRepairerTest { pool .setup((x) => x.query(NormalizeRepairer.selectFromIngestTask, isAny())) .returns((q, v) => { - expect(v[0]).to.equal(minAgeMs); - expect(v[1]).to.equal(maxEvents); + assert.strictEqual(v[0], minAgeMs); + assert.strictEqual(v[1], maxEvents); return Promise.resolve({ command: "", rowCount: 10, diff --git a/src/e2e-tests/handlers/admin/AdminUserBootstrap.ts b/src/e2e-tests/handlers/admin/AdminUserBootstrap.ts index ec0c87fe4..0431b6c50 100644 --- a/src/e2e-tests/handlers/admin/AdminUserBootstrap.ts +++ b/src/e2e-tests/handlers/admin/AdminUserBootstrap.ts @@ -1,7 +1,7 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import { AdminUserBootstrap } from "../../../handlers/admin/AdminUserBootstrap"; +import assert from "assert"; // const adminUserBootstrap = TypeMoq.Mock.ofType(AdminUserBootstrap); @@ -11,7 +11,7 @@ class AdminUserBootstrapTest { public "AdminUserBootstrap#AdminUserBootstrap() gets initialized"() { try { const adminUserBootstrap = new AdminUserBootstrap("test"); - return expect(adminUserBootstrap).to.not.be.null; + return assert.strictEqual(adminUserBootstrap !== null, true); } catch (err) { console.log(err); } @@ -29,8 +29,8 @@ class AdminUserBootstrapTest { inviteId: "", }); } catch (err) { - expect(err.err.message).to.equal(expected.message); - expect(err.status).to.equal(404); + assert.strictEqual(err.err.message, expected.message); + assert.strictEqual(err.status, 404); } } @@ -46,8 +46,8 @@ class AdminUserBootstrapTest { inviteId: "", }); } catch (err) { - expect(err.err.message).to.equal(expected.message); - expect(err.status).to.equal(404); + assert.strictEqual(err.err.message, expected.message); + assert.strictEqual(err.status, 404); } } @@ -63,8 +63,8 @@ class AdminUserBootstrapTest { inviteId: "", }); } catch (err) { - expect(err.err.message).to.equal(expected.message); - expect(err.status).to.equal(400); + assert.strictEqual(err.err.message, expected.message); + assert.strictEqual(err.status, 400); } } @@ -85,7 +85,7 @@ class AdminUserBootstrapTest { try { const adminUserBootstrap = new AdminUserBootstrap("test"); const handler = adminUserBootstrap.handler(); - return expect(handler).to.not.be.undefined; + return assert.strictEqual(handler !== undefined, true); } catch (err) { console.log(err); } diff --git a/src/e2e-tests/handlers/admin/approveDeletionConfirmation.ts b/src/e2e-tests/handlers/admin/approveDeletionConfirmation.ts index 4646aa156..9a4d451f6 100644 --- a/src/e2e-tests/handlers/admin/approveDeletionConfirmation.ts +++ b/src/e2e-tests/handlers/admin/approveDeletionConfirmation.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import approveDeletionConfirmation from "../../../handlers/admin/approveDeletionConfirmation"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class ApproveDeletionConfirmation { @@ -18,7 +18,7 @@ class ApproveDeletionConfirmation { "test", "test" ); - return expect(result).to.be.undefined; + return assert.strictEqual(result !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -31,45 +31,35 @@ class ApproveDeletionConfirmation { try { await cleanup(pool); const res = await setup(pool); - await approveDeletionConfirmation( - `id=${res.id} token=${res.token}`, - "test", - "test", - "test1" - ); - throw new Error( - `Expected error 'No such confirmation code' to be thrown` - ); + await approveDeletionConfirmation(`id=${res.id} token=${res.token}`, "test", "test", "test1"); + throw new Error(`Expected error 'No such confirmation code' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(404); - expect(ex.err.message).to.equal("No such confirmation code"); + assert.strictEqual(ex.status, 404); + assert.strictEqual(ex.err.message, "No such confirmation code"); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", "test", - "test@test.com", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); await pool.query( "INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"] diff --git a/src/e2e-tests/handlers/admin/cancelEmailReport.ts b/src/e2e-tests/handlers/admin/cancelEmailReport.ts index 577c367cc..6aa4d5b51 100644 --- a/src/e2e-tests/handlers/admin/cancelEmailReport.ts +++ b/src/e2e-tests/handlers/admin/cancelEmailReport.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import cancelEmailReport from "../../../handlers/admin/cancelEmailReport"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class CancelEmailReport { @@ -21,12 +21,11 @@ class CancelEmailReport { token: "dummytoken", }, }); - expect(result.status).to.equal(301); - let res = expect(result.headers !== undefined); - res = expect( - result.headers ? result.headers.Location : undefined !== undefined - ); - expect(result.headers ? result.headers.Location : undefined).to.equal( + assert.strictEqual(result.status, 301); + let res = assert.strictEqual(result.headers !== undefined, true); + res = assert.strictEqual(result.headers ? result.headers.Location : undefined !== undefined, true); + assert.strictEqual( + result.headers ? result.headers.Location : undefined, "https://www.retraced.io/unsubscribed/daily-reports/" ); return res; @@ -51,12 +50,11 @@ class CancelEmailReport { token: "dummytoken", }, }); - expect(result.status).to.equal(301); - let res = expect(result.headers !== undefined); - res = expect( - result.headers ? result.headers.Location : undefined !== undefined - ); - expect(result.headers ? result.headers.Location : undefined).to.equal( + assert.strictEqual(result.status, 301); + let res = assert.strictEqual(result.headers !== undefined, true); + res = assert.strictEqual(result.headers ? result.headers.Location : undefined !== undefined, true); + assert.strictEqual( + result.headers ? result.headers.Location : undefined, "https://www.retraced.io/unsubscribed/anomaly-reports/" ); return res; @@ -82,7 +80,7 @@ class CancelEmailReport { token: "dummytoken", }, }); - expect(result.status).to.equal(404); + assert.strictEqual(result.status, 404); } catch (ex) { console.log(ex); } finally { @@ -105,7 +103,7 @@ class CancelEmailReport { token: "dummytoken1", }, }); - expect(result.status).to.equal(401); + assert.strictEqual(result.status, 401); } catch (ex) { console.log(ex); } finally { @@ -114,27 +112,23 @@ class CancelEmailReport { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); await pool.query( "INSERT INTO environmentuser (user_id, environment_id, email_token, daily_report) VALUES ($1, $2, $3, $4)", ["test", "test", "dummytoken", true] ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); await pool.query( "INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"] diff --git a/src/e2e-tests/handlers/admin/createApiToken.ts b/src/e2e-tests/handlers/admin/createApiToken.ts index 69cc0f803..7fb0b8c3e 100644 --- a/src/e2e-tests/handlers/admin/createApiToken.ts +++ b/src/e2e-tests/handlers/admin/createApiToken.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import createAPIToken from "../../../handlers/admin/createApiToken"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class CreateAPIToken { @@ -11,19 +11,13 @@ class CreateAPIToken { try { await cleanup(pool); const res = await setup(pool); - const result = await createAPIToken( - `id=${res.id} token=${res.token}`, - "test", - "test", - "test", - { - disabled: false, - name: "test", - } - ); - expect(result.token).to.equal("test"); - expect(result.projectId).to.equal("test"); - expect(result.environmentId).to.equal("test"); + const result = await createAPIToken(`id=${res.id} token=${res.token}`, "test", "test", "test", { + disabled: false, + name: "test", + }); + assert.strictEqual(result.token, "test"); + assert.strictEqual(result.projectId, "test"); + assert.strictEqual(result.environmentId, "test"); } catch (ex) { console.log(ex); } finally { @@ -32,19 +26,18 @@ class CreateAPIToken { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); return res; } diff --git a/src/e2e-tests/handlers/admin/createDeletionRequest.ts b/src/e2e-tests/handlers/admin/createDeletionRequest.ts index 53e089f2d..91c5a6b54 100644 --- a/src/e2e-tests/handlers/admin/createDeletionRequest.ts +++ b/src/e2e-tests/handlers/admin/createDeletionRequest.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import handle from "../../../handlers/admin/createDeletionRequest"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class CreateDeletionRequest { @@ -11,16 +11,11 @@ class CreateDeletionRequest { try { await cleanup(pool); const res = await setup(pool); - const result = await handle( - `id=${res.id} token=${res.token}`, - "test", - "test", - { - resourceKind: "environment", - resourceId: "test", - } - ); - return expect(result.id).to.not.be.undefined; + const result = await handle(`id=${res.id} token=${res.token}`, "test", "test", { + resourceKind: "environment", + resourceId: "test", + }); + return assert.strictEqual(result.id !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -37,12 +32,10 @@ class CreateDeletionRequest { resourceKind: "test", resourceId: "test", }); - throw new Error( - `Expected error 'Unhandled resource kind: 'test'' to be thrown` - ); + throw new Error(`Expected error 'Unhandled resource kind: 'test'' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Unhandled resource kind: 'test'"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Unhandled resource kind: 'test'"); } finally { await cleanup(pool); } @@ -57,12 +50,10 @@ class CreateDeletionRequest { resourceKind: "environment", resourceId: "test1", }); - throw new Error( - `Expected error 'Environment not found: id='test1'' to be thrown` - ); + throw new Error(`Expected error 'Environment not found: id='test1'' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Environment not found: id='test1'"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Environment not found: id='test1'"); } finally { await cleanup(pool); } @@ -81,14 +72,10 @@ class CreateDeletionRequest { resourceKind: "environment", resourceId: "test", }); - throw new Error( - `Expected error 'A deletion request already exists for that resource.' to be thrown` - ); + throw new Error(`Expected error 'A deletion request already exists for that resource.' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(409); - expect(ex.err.message).to.equal( - "A deletion request already exists for that resource." - ); + assert.strictEqual(ex.status, 409); + assert.strictEqual(ex.err.message, "A deletion request already exists for that resource."); } finally { await cleanup(pool); } @@ -101,24 +88,13 @@ class CreateDeletionRequest { const res = await setup(pool); await pool.query( "INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", - [ - "test", - new Date(new Date().setMonth(new Date().getMonth() - 2)), - 10000000, - "environment", - "test", - ] + ["test", new Date(new Date().setMonth(new Date().getMonth() - 2)), 10000000, "environment", "test"] ); - const result = await handle( - `id=${res.id} token=${res.token}`, - "test", - "test", - { - resourceKind: "environment", - resourceId: "test", - } - ); - return expect(result.id).to.not.be.undefined; + const result = await handle(`id=${res.id} token=${res.token}`, "test", "test", { + resourceKind: "environment", + resourceId: "test", + }); + return assert.strictEqual(result.id !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -127,60 +103,49 @@ class CreateDeletionRequest { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", "test", - "test@test.com", + "dummytoken", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ "test1", - "test1@test.com", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test1", "test", "dummytoken"] - ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/createEnvironment.ts b/src/e2e-tests/handlers/admin/createEnvironment.ts index 7273edfc1..12ac902fd 100644 --- a/src/e2e-tests/handlers/admin/createEnvironment.ts +++ b/src/e2e-tests/handlers/admin/createEnvironment.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import createEnvironment from "../../../handlers/admin/createEnvironment"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class CreateEnvironment { @@ -11,14 +11,9 @@ class CreateEnvironment { try { await cleanup(pool); const res = await setup(pool); - const result = await createEnvironment( - `id=${res.id} token=${res.token}`, - "test", - "test", - "test" - ); - expect(result.id).to.equal("test"); - expect(result.projectId).to.equal("test"); + const result = await createEnvironment(`id=${res.id} token=${res.token}`, "test", "test", "test"); + assert.strictEqual(result.id, "test"); + assert.strictEqual(result.projectId, "test"); } catch (ex) { console.log(ex); } finally { @@ -27,51 +22,37 @@ class CreateEnvironment { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + // await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", ["test", "test", "test"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test", "test", "dummytoken"]); + // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); + const res = await AdminTokenStore.default().createAdminToken("test"); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - // await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", ["test", "test", "test"]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", "test1", - "test1@test.com", ]); - // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test", "test", "dummytoken"]); - // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); - const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/createInvite.ts b/src/e2e-tests/handlers/admin/createInvite.ts index 3805b2ad4..d3487aff5 100644 --- a/src/e2e-tests/handlers/admin/createInvite.ts +++ b/src/e2e-tests/handlers/admin/createInvite.ts @@ -1,22 +1,17 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import createInvite from "../../../handlers/admin/createInvite"; import { AdminTokenStore } from "../../../models/admin_token/store"; import safeQuery from "../../../test/seederHelper"; +import assert from "assert"; @suite class CreateInvite { @test public async "CreateInvite#createInvite()"() { try { const res = await setup(); - const result = await createInvite( - `id=${res.id} token=${res.token}`, - "test", - "test@test.com", - "test" - ); - expect(result.id).to.equal("test"); - expect(result.project_id).to.equal("test"); + const result = await createInvite(`id=${res.id} token=${res.token}`, "test", "test@test.com", "test"); + assert.strictEqual(result.id, "test"); + assert.strictEqual(result.project_id, "test"); } catch (ex) { console.log(ex); } @@ -24,57 +19,45 @@ class CreateInvite { } async function setup() { await cleanup(); - await safeQuery("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await safeQuery("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await safeQuery("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await safeQuery( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await safeQuery("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await safeQuery("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await safeQuery("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await safeQuery("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await safeQuery("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await safeQuery( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await .query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await safeQuery( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await safeQuery( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await safeQuery("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await safeQuery("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); // await .query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await .query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup() { - await safeQuery(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await safeQuery(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await safeQuery(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await safeQuery(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await safeQuery(`DELETE FROM project WHERE id=$1`, ["test"]); await safeQuery(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await safeQuery(`DELETE FROM environment WHERE name=$1`, ["test"]); - await safeQuery(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await safeQuery(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await safeQuery(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await safeQuery(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await safeQuery(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await safeQuery(`DELETE FROM invite WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/createProject.ts b/src/e2e-tests/handlers/admin/createProject.ts index fd493c931..4395eff33 100644 --- a/src/e2e-tests/handlers/admin/createProject.ts +++ b/src/e2e-tests/handlers/admin/createProject.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import createProject from "../../../handlers/admin/createProject"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class CreateProject { @@ -25,8 +25,8 @@ class CreateProject { name: "test1", }, }); - expect(result.status).to.equal(201); - expect(JSON.parse(result.body).project.name).to.equal("test1"); + assert.strictEqual(result.status, 201); + assert.strictEqual(JSON.parse(result.body).project.name, "test1"); } catch (ex) { console.log(ex); } finally { @@ -36,26 +36,22 @@ class CreateProject { } async function setup(pool) { try { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); await pool.query( "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test", "test", "dummytoken"] ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); const res = await AdminTokenStore.default().createAdminToken("test"); return res; } catch (ex) { @@ -69,15 +65,10 @@ async function cleanup(pool) { await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environmentuser WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, [ - "test", - "test1", - ]); + await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, ["test", "test1"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE email=$1`, [ - "test@test.com", - ]); + await pool.query(`DELETE FROM retraceduser WHERE email=$1`, ["test@test.com"]); } catch (ex) { console.log(ex); } diff --git a/src/e2e-tests/handlers/admin/createTemplate.ts b/src/e2e-tests/handlers/admin/createTemplate.ts index e9c3ab0c2..52c7952cb 100644 --- a/src/e2e-tests/handlers/admin/createTemplate.ts +++ b/src/e2e-tests/handlers/admin/createTemplate.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import createTemplate from "../../../handlers/admin/createTemplate"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class CreateTemplate { @@ -11,19 +11,14 @@ class CreateTemplate { try { await cleanup(pool); const res = await setup(pool); - const result = await createTemplate( - `id=${res.id} token=${res.token}`, - "test", - "test", - { - id: "test", - name: "test", - rule: "test", - template: "test", - } - ); - expect(result.id).to.equal("test"); - expect(result.project_id).to.equal("test"); + const result = await createTemplate(`id=${res.id} token=${res.token}`, "test", "test", { + id: "test", + name: "test", + rule: "test", + template: "test", + }); + assert.strictEqual(result.id, "test"); + assert.strictEqual(result.project_id, "test"); } catch (ex) { console.log(ex); } finally { @@ -32,57 +27,45 @@ class CreateTemplate { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/deleteApiToken.ts b/src/e2e-tests/handlers/admin/deleteApiToken.ts index 78b90ee2c..92bd5e2e9 100644 --- a/src/e2e-tests/handlers/admin/deleteApiToken.ts +++ b/src/e2e-tests/handlers/admin/deleteApiToken.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import deleteApiToken from "../../../handlers/admin/deleteApiToken"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class DeleteApiToken { @@ -11,12 +11,8 @@ class DeleteApiToken { try { await cleanup(pool); const res = await setup(pool); - const result = await deleteApiToken( - `id=${res.id} token=${res.token}`, - "test", - "test" - ); - return expect(result).to.be.undefined; + const result = await deleteApiToken(`id=${res.id} token=${res.token}`, "test", "test"); + return assert(result); } catch (ex) { console.log(ex); } finally { @@ -26,60 +22,48 @@ class DeleteApiToken { } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); await pool.query( "INSERT INTO token (token, created, disabled, environment_id, name, project_id, read_access, write_access) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)", ["test", new Date(), false, "test", "test", "test", true, true] ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/deleteEnvironment.ts b/src/e2e-tests/handlers/admin/deleteEnvironment.ts index e0252141b..10a85cffa 100644 --- a/src/e2e-tests/handlers/admin/deleteEnvironment.ts +++ b/src/e2e-tests/handlers/admin/deleteEnvironment.ts @@ -1,10 +1,10 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import deleteEnvironment from "../../../handlers/admin/deleteEnvironment"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; import { getESWithoutRetry } from "../../../persistence/elasticsearch"; import { Client } from "@opensearch-project/opensearch"; +import assert from "assert"; @suite class DeleteEnvironment { @@ -15,7 +15,7 @@ class DeleteEnvironment { await cleanup(pool, es); const res = await setup(pool, es); const result = await deleteEnvironment(`id=${res.id} token=${res.token}`, "tests", "tests"); - return expect(result).to.be.undefined; + return assert.strictEqual(result, undefined); } catch (ex) { console.log(ex); } finally { @@ -38,7 +38,7 @@ class DeleteEnvironment { console.log("Running PreDeleteHook!"); } ); - return expect(result).to.be.undefined; + return assert.strictEqual(result, undefined); } catch (ex) { console.log(ex); } finally { diff --git a/src/e2e-tests/handlers/admin/deleteInvite.ts b/src/e2e-tests/handlers/admin/deleteInvite.ts index 35d4c5d37..29ec1ebb6 100644 --- a/src/e2e-tests/handlers/admin/deleteInvite.ts +++ b/src/e2e-tests/handlers/admin/deleteInvite.ts @@ -1,9 +1,9 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import deleteInvite from "../../../handlers/admin/deleteInvite"; import createInvite from "../../../handlers/admin/createInvite"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class DeleteInvite { @@ -12,12 +12,8 @@ class DeleteInvite { try { await cleanup(pool); const res = await setup(pool); - const result = await deleteInvite( - `id=${res.id} token=${res.token}`, - "test", - "test" - ); - return expect(result).to.be.undefined; + const result = await deleteInvite(`id=${res.id} token=${res.token}`, "test", "test"); + return assert.strictEqual(result, undefined); } catch (ex) { console.log(ex); } finally { @@ -26,39 +22,34 @@ class DeleteInvite { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); await pool.query( "INSERT INTO token (token, created, disabled, environment_id, name, project_id, read_access, write_access) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)", ["test", new Date(), false, "test", "test", "test", true, true] ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await createInvite(`id=${res.id} token=${res.token}`, "test", "test"); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); @@ -66,21 +57,14 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/deleteTeamMember.ts b/src/e2e-tests/handlers/admin/deleteTeamMember.ts index f3369b310..926c2b636 100644 --- a/src/e2e-tests/handlers/admin/deleteTeamMember.ts +++ b/src/e2e-tests/handlers/admin/deleteTeamMember.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import deleteTeamMember from "../../../handlers/admin/deleteTeamMember"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class DeleteTeamMember { @@ -20,7 +20,7 @@ class DeleteTeamMember { userId: "test", }, }); - expect(result.status).to.equal(204); + assert.strictEqual(result.status, 204); } catch (ex) { console.log(ex); } finally { @@ -29,60 +29,48 @@ class DeleteTeamMember { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); await pool.query( "INSERT INTO token (token, created, disabled, environment_id, name, project_id, read_access, write_access) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)", ["test", new Date(), false, "test", "test", "test", true, true] ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/deleteTemplate.ts b/src/e2e-tests/handlers/admin/deleteTemplate.ts index 10a0b4c52..924b5be77 100644 --- a/src/e2e-tests/handlers/admin/deleteTemplate.ts +++ b/src/e2e-tests/handlers/admin/deleteTemplate.ts @@ -1,9 +1,9 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import deleteTemplate from "../../../handlers/admin/deleteTemplate"; import createTemplate from "../../../handlers/admin/createTemplate"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class DeleteTemplate { @@ -12,13 +12,8 @@ class DeleteTemplate { try { await cleanup(pool); const res = await setup(pool); - const result = await deleteTemplate( - `id=${res.id} token=${res.token}`, - "test", - "test", - "test" - ); - return expect(result).to.be.undefined; + const result = await deleteTemplate(`id=${res.id} token=${res.token}`, "test", "test", "test"); + return assert.strictEqual(result, undefined); } catch (ex) { console.log(ex); } finally { @@ -30,55 +25,45 @@ class DeleteTemplate { try { await cleanup(pool); const res = await setup(pool); - await deleteTemplate( - `id=${res.id} token=${res.token}`, - "test", - "test1", - "test" - ); + await deleteTemplate(`id=${res.id} token=${res.token}`, "test", "test1", "test"); throw new Error(`Expected error 'Not found' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(404); - expect(ex.err.message).to.equal("Not found"); + assert.strictEqual(ex.status, 404); + assert.strictEqual(ex.err.message, "Not found"); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); await pool.query( "INSERT INTO token (token, created, disabled, environment_id, name, project_id, read_access, write_access) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)", ["test", new Date(), false, "test", "test", "test", true, true] ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await createTemplate(`id=${res.id} token=${res.token}`, "test", "test", { id: "test", name: "test", @@ -91,26 +76,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); - await pool.query(`DELETE FROM display_template WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM display_template WHERE environment_id=$1`, ["test"]); } export default DeleteTemplate; diff --git a/src/e2e-tests/handlers/admin/getAction.ts b/src/e2e-tests/handlers/admin/getAction.ts index 7eb24fa42..76b15a973 100644 --- a/src/e2e-tests/handlers/admin/getAction.ts +++ b/src/e2e-tests/handlers/admin/getAction.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import getAction from "../../../handlers/admin/getAction"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class GetAction { @@ -19,8 +19,8 @@ class GetAction { actionId: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -29,49 +29,34 @@ class GetAction { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO action (id, created, environment_id, event_count, first_active, action, last_active, project_id, display_template) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)", - [ - "test", - new Date(), - "test", - 100, - new Date(), - "test", - new Date(), - "test", - "test", - ] + ["test", new Date(), "test", 100, new Date(), "test", new Date(), "test", "test"] ); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); @@ -79,28 +64,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); } export default GetAction; diff --git a/src/e2e-tests/handlers/admin/getActor.ts b/src/e2e-tests/handlers/admin/getActor.ts index ba027856b..0ef51702a 100644 --- a/src/e2e-tests/handlers/admin/getActor.ts +++ b/src/e2e-tests/handlers/admin/getActor.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import getActor from "../../../handlers/admin/getActor"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class GetActor { @@ -19,8 +19,8 @@ class GetActor { actorId: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -29,36 +29,31 @@ class GetActor { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO actor (id, created, environment_id, event_count, first_active, foreign_id, last_active, name, project_id, url, fields) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)", [ @@ -81,21 +76,14 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM action WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM actor WHERE id=$1`, ["test"]); diff --git a/src/e2e-tests/handlers/admin/getDashboard.ts b/src/e2e-tests/handlers/admin/getDashboard.ts index c155974dd..044385543 100644 --- a/src/e2e-tests/handlers/admin/getDashboard.ts +++ b/src/e2e-tests/handlers/admin/getDashboard.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import getDashboard from "../../../handlers/admin/getDashboard"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class GetDashboard { @@ -28,8 +28,8 @@ class GetDashboard { name: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -57,8 +57,8 @@ class GetDashboard { name: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -87,8 +87,9 @@ class GetDashboard { name: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); + process.env.PG_SEARCH = undefined; } catch (ex) { console.log(ex); @@ -118,9 +119,10 @@ class GetDashboard { name: "test", }, }); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); + process.env.PG_SEARCH = undefined; - expect(result.status).to.equal(200); - expect(result.body !== undefined); } catch (ex) { console.log(ex); } finally { @@ -150,9 +152,11 @@ class GetDashboard { name: "test", }, }); + + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); + process.env.PG_SEARCH = undefined; - expect(result.status).to.equal(200); - expect(result.body !== undefined); } catch (ex) { console.log(ex); } finally { @@ -161,57 +165,45 @@ class GetDashboard { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/getDeletionRequest.ts b/src/e2e-tests/handlers/admin/getDeletionRequest.ts index bd136727f..ab5b7d723 100644 --- a/src/e2e-tests/handlers/admin/getDeletionRequest.ts +++ b/src/e2e-tests/handlers/admin/getDeletionRequest.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import getDeletionRequest from "../../../handlers/admin/getDeletionRequest"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class GetDeletionRequest { @@ -11,15 +11,10 @@ class GetDeletionRequest { try { await cleanup(pool); const res = await setup(pool); - const result = await getDeletionRequest( - `id=${res.id} token=${res.token}`, - "test", - "test", - "test" - ); - expect(result.expired).to.equal(false); - expect(result.backoffRemaining).to.equal(9999999); - expect(result.outstandingConfirmations.length).to.equal(0); + const result = await getDeletionRequest(`id=${res.id} token=${res.token}`, "test", "test", "test"); + assert.strictEqual(result.expired, false); + assert.strictEqual(result.backoffRemaining, 9999999); + assert.strictEqual(result.outstandingConfirmations.length, 0); } catch (ex) { console.log(ex); } finally { @@ -31,52 +26,42 @@ class GetDeletionRequest { try { await cleanup(pool); const res = await setup(pool); - const result = await getDeletionRequest( - `id=${res.id} token=${res.token}`, - "test", - "test", - "test1" - ); + const result = await getDeletionRequest(`id=${res.id} token=${res.token}`, "test", "test", "test1"); console.log(result); throw new Error("Exprected to throw '{ status: 404 }'"); } catch (ex) { - expect(ex.status).to.equal(404); + assert.strictEqual(ex.status, 404); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"] @@ -86,21 +71,14 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/getProject.ts b/src/e2e-tests/handlers/admin/getProject.ts index 8036bab8b..d4e63d5a0 100644 --- a/src/e2e-tests/handlers/admin/getProject.ts +++ b/src/e2e-tests/handlers/admin/getProject.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import getProject from "../../../handlers/admin/getProject"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class GetProject { @@ -19,9 +19,8 @@ class GetProject { projectId: "test", }, }); - console.log(result); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -43,56 +42,41 @@ class GetProject { }); throw new Error("Expected to throw 404 status"); } catch (ex) { - expect(ex.status).to.equal(404); + assert.strictEqual(ex.status, 404); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO action (id, created, environment_id, event_count, first_active, action, last_active, project_id, display_template) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)", - [ - "test", - new Date(), - "test", - 100, - new Date(), - "test", - new Date(), - "test", - "test", - ] + ["test", new Date(), "test", 100, new Date(), "test", new Date(), "test", "test"] ); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); @@ -100,25 +84,16 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); } export default GetProject; diff --git a/src/e2e-tests/handlers/admin/listActions.ts b/src/e2e-tests/handlers/admin/listActions.ts index 673444158..922823434 100644 --- a/src/e2e-tests/handlers/admin/listActions.ts +++ b/src/e2e-tests/handlers/admin/listActions.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import listActions from "../../../handlers/admin/listActions"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class ListActions { @@ -22,8 +22,8 @@ class ListActions { environmentId: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -32,49 +32,34 @@ class ListActions { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO action (id, created, environment_id, event_count, first_active, action, last_active, project_id, display_template) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)", - [ - "test", - new Date(), - "test", - 100, - new Date(), - "test", - new Date(), - "test", - "test", - ] + ["test", new Date(), "test", 100, new Date(), "test", new Date(), "test", "test"] ); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); @@ -82,21 +67,14 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM action WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/listActors.ts b/src/e2e-tests/handlers/admin/listActors.ts index e82cf1ec2..f92a07d39 100644 --- a/src/e2e-tests/handlers/admin/listActors.ts +++ b/src/e2e-tests/handlers/admin/listActors.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import listActors from "../../../handlers/admin/listActors"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class ListActors { @@ -22,8 +22,8 @@ class ListActors { environmentId: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -32,36 +32,31 @@ class ListActors { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO actor (id, created, environment_id, event_count, first_active, foreign_id, last_active, name, project_id, url, fields) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)", [ @@ -84,28 +79,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); } export default ListActors; diff --git a/src/e2e-tests/handlers/admin/listInvites.ts b/src/e2e-tests/handlers/admin/listInvites.ts index c9d281615..958011958 100644 --- a/src/e2e-tests/handlers/admin/listInvites.ts +++ b/src/e2e-tests/handlers/admin/listInvites.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import listInvites from "../../../handlers/admin/listInvites"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class ListInvites { @@ -11,11 +11,8 @@ class ListInvites { try { await cleanup(pool); const res = await setup(pool); - const result = await listInvites( - `id=${res.id} token=${res.token}`, - "test" - ); - expect(result.length).to.not.equal(0); + const result = await listInvites(`id=${res.id} token=${res.token}`, "test"); + assert.strictEqual(result.length !== 0, true); } catch (ex) { console.log(ex); } finally { @@ -24,61 +21,51 @@ class ListInvites { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", "test", + "dummytoken", + ]); + await pool.query("INSERT INTO invite (id, created, email, project_id) VALUES ($1, $2, $3, $4)", [ + "test", + new Date(), "test@test.com", + "test", + ]); + const res = await AdminTokenStore.default().createAdminToken("test"); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", "test1", - "test1@test.com", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO invite (id, created, email, project_id) VALUES ($1, $2, $3, $4)", - ["test", new Date(), "test@test.com", "test"] - ); - const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/listProjects.ts b/src/e2e-tests/handlers/admin/listProjects.ts index 53b58077b..7d486ffda 100644 --- a/src/e2e-tests/handlers/admin/listProjects.ts +++ b/src/e2e-tests/handlers/admin/listProjects.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import listProjects from "../../../handlers/admin/listProjects"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class ListProjects { @@ -22,8 +22,8 @@ class ListProjects { environmentId: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -32,36 +32,31 @@ class ListProjects { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO actor (id, created, environment_id, event_count, first_active, foreign_id, last_active, name, project_id, url, fields) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)", [ @@ -84,28 +79,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); } export default ListProjects; diff --git a/src/e2e-tests/handlers/admin/listTargets.ts b/src/e2e-tests/handlers/admin/listTargets.ts index 70b6fbc63..331b4b17e 100644 --- a/src/e2e-tests/handlers/admin/listTargets.ts +++ b/src/e2e-tests/handlers/admin/listTargets.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import listTargets from "../../../handlers/admin/listTargets"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class ListTargets { @@ -22,8 +22,8 @@ class ListTargets { environmentId: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -32,36 +32,31 @@ class ListTargets { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO actor (id, created, environment_id, event_count, first_active, foreign_id, last_active, name, project_id, url, fields) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)", [ @@ -84,28 +79,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); } export default ListTargets; diff --git a/src/e2e-tests/handlers/admin/listTeamMembers.ts b/src/e2e-tests/handlers/admin/listTeamMembers.ts index 9d463f883..dae0e000f 100644 --- a/src/e2e-tests/handlers/admin/listTeamMembers.ts +++ b/src/e2e-tests/handlers/admin/listTeamMembers.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import listTeamMembers from "../../../handlers/admin/listTeamMembers"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class ListTeamMembers { @@ -19,8 +19,8 @@ class ListTeamMembers { projectId: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -29,36 +29,31 @@ class ListTeamMembers { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO actor (id, created, environment_id, event_count, first_active, foreign_id, last_active, name, project_id, url, fields) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)", [ @@ -81,28 +76,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); } export default ListTeamMembers; diff --git a/src/e2e-tests/handlers/admin/publicRenderEvent.ts b/src/e2e-tests/handlers/admin/publicRenderEvent.ts index e45d86b9f..69ad477b3 100644 --- a/src/e2e-tests/handlers/admin/publicRenderEvent.ts +++ b/src/e2e-tests/handlers/admin/publicRenderEvent.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import publicRenderEvent from "../../../handlers/admin/publicRenderEvent"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class PublicRenderEvent { @@ -19,8 +19,8 @@ class PublicRenderEvent { source: "test", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -36,8 +36,8 @@ class PublicRenderEvent { const result = publicRenderEvent({ body: {}, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -46,36 +46,31 @@ class PublicRenderEvent { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO actor (id, created, environment_id, event_count, first_active, foreign_id, last_active, name, project_id, url, fields) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)", [ @@ -98,28 +93,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); } export default PublicRenderEvent; diff --git a/src/e2e-tests/handlers/admin/searchEvents.ts b/src/e2e-tests/handlers/admin/searchEvents.ts index f53816bc5..fd19990c9 100644 --- a/src/e2e-tests/handlers/admin/searchEvents.ts +++ b/src/e2e-tests/handlers/admin/searchEvents.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import searchEvents from "../../../handlers/admin/searchEvents"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class SearchEvents { @@ -39,8 +39,8 @@ class SearchEvents { }, }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert.strictEqual(result.body !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -69,8 +69,8 @@ class SearchEvents { }); throw new Error(`Expected an error 'Unauthorized'`); } catch (ex) { - expect(ex.status).to.equal(401); - expect(ex.err.message).to.equal("Unauthorized"); + assert.strictEqual(ex.status, 401); + assert.strictEqual(ex.err.message, "Unauthorized"); } finally { await cleanup(pool); } @@ -95,44 +95,39 @@ class SearchEvents { }); throw new Error(`Expected an error 'Missing environment_id'`); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Missing environment_id"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Missing environment_id"); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO actor (id, created, environment_id, event_count, first_active, foreign_id, last_active, name, project_id, url, fields) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)", [ @@ -155,26 +150,17 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM action WHERE id=$1`, ["test"]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); } export default SearchEvents; diff --git a/src/e2e-tests/handlers/admin/searchGroups.ts b/src/e2e-tests/handlers/admin/searchGroups.ts index f2263bc83..70b98148e 100644 --- a/src/e2e-tests/handlers/admin/searchGroups.ts +++ b/src/e2e-tests/handlers/admin/searchGroups.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import searchGroups from "../../../handlers/admin/searchGroups"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class SearchGroups { @@ -25,9 +25,9 @@ class SearchGroups { query: {}, }, }); - expect(result.status).to.equal(200); - expect(JSON.parse(result.body).groups.length).to.equal(0); - expect(JSON.parse(result.body).total_hits).to.equal(0); + assert.strictEqual(result.status, 200); + assert.strictEqual(JSON.parse(result.body).groups.length, 0); + assert.strictEqual(JSON.parse(result.body).total_hits, 0); } catch (ex) { console.log(ex); } finally { @@ -53,9 +53,9 @@ class SearchGroups { query: {}, }, }); - expect(result.status).to.equal(200); - expect(JSON.parse(result.body).groups.length).to.equal(0); - expect(JSON.parse(result.body).total_hits).to.equal(0); + assert.strictEqual(result.status, 200); + assert.strictEqual(JSON.parse(result.body).groups.length, 0); + assert.strictEqual(JSON.parse(result.body).total_hits, 0); } catch (ex) { console.log(ex); } finally { @@ -82,80 +82,61 @@ class SearchGroups { }); throw new Error('Expected error "Missing environment_id"'); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Missing environment_id"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Missing environment_id"); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); await pool.query( "INSERT INTO token (token, created, disabled, environment_id, name, project_id, read_access, write_access) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)", ["test", new Date(), false, "test", "test", "test", true, true] ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); // await pool.query("INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"]); // await pool.query("INSERT INTO deletion_confirmation (id, deletion_request_id, retraceduser_id, visible_code) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"]); return res; } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); - await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, [ - "test", - ]); - await pool.query( - `DELETE FROM group_detail WHERE project_id=$1 OR environment_id=$1`, - ["test"] - ); + await pool.query(`DELETE FROM action WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM actor WHERE id=$1 OR environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM group_detail WHERE project_id=$1 OR environment_id=$1`, ["test"]); } export default SearchGroups; diff --git a/src/e2e-tests/handlers/admin/searchTemplates.ts b/src/e2e-tests/handlers/admin/searchTemplates.ts index 6a36ddb09..3b25a1d78 100644 --- a/src/e2e-tests/handlers/admin/searchTemplates.ts +++ b/src/e2e-tests/handlers/admin/searchTemplates.ts @@ -1,9 +1,10 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import searchTemplates from "../../../handlers/admin/searchTemplates"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; import createTemplate from "../../../handlers/admin/createTemplate"; +import assert from "assert"; + @suite class SearchTemplates { @test public async "SearchTemplates#searchTemplates()"() { @@ -11,15 +12,9 @@ class SearchTemplates { try { await cleanup(pool); const res = await setup(pool); - const result = await searchTemplates( - `id=${res.id} token=${res.token}`, - "test", - "test", - 10, - 0 - ); - expect(result.templates.length).to.equal(1); - expect(result.total_hits).to.equal(1); + const result = await searchTemplates(`id=${res.id} token=${res.token}`, "test", "test", 10, 0); + assert.strictEqual(result.templates.length, 1); + assert.strictEqual(result.total_hits, 1); } catch (ex) { console.log(ex); } finally { @@ -31,15 +26,9 @@ class SearchTemplates { try { await cleanup(pool); const res = await setup(pool, false); - const result = await searchTemplates( - `id=${res.id} token=${res.token}`, - "test", - "test", - 10, - 0 - ); - expect(result.templates.length).to.equal(0); - expect(result.total_hits).to.equal(0); + const result = await searchTemplates(`id=${res.id} token=${res.token}`, "test", "test", 10, 0); + assert.strictEqual(result.templates.length, 0); + assert.strictEqual(result.total_hits, 0); } catch (ex) { console.log(ex); } finally { @@ -55,47 +44,42 @@ class SearchTemplates { await searchTemplates(``, "test", "test", 10, 0); throw new Error('Expected error "Missing Authorization header"'); } catch (ex) { - expect(ex.status).to.equal(401); - expect(ex.err.message).to.equal("Missing Authorization header"); + assert.strictEqual(ex.status, 401); + assert.strictEqual(ex.err.message, "Missing Authorization header"); } finally { await cleanup(pool); } } } async function setup(pool, initiateTemplates = true) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); await pool.query( "INSERT INTO token (token, created, disabled, environment_id, name, project_id, read_access, write_access) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)", ["test", new Date(), false, "test", "test", "test", true, true] ); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); if (initiateTemplates) { await createTemplate(`id=${res.id} token=${res.token}`, "test", "test", { id: "test", @@ -110,26 +94,17 @@ async function setup(pool, initiateTemplates = true) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); - await pool.query(`DELETE FROM display_template WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM display_template WHERE environment_id=$1`, ["test"]); } export default SearchTemplates; diff --git a/src/e2e-tests/handlers/admin/updateApiToken.ts b/src/e2e-tests/handlers/admin/updateApiToken.ts index cad49019a..21dd27f72 100644 --- a/src/e2e-tests/handlers/admin/updateApiToken.ts +++ b/src/e2e-tests/handlers/admin/updateApiToken.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import updateApiToken from "../../../handlers/admin/updateApiToken"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class UpdateApiToken { @@ -11,17 +11,12 @@ class UpdateApiToken { try { await cleanup(pool); const res = await setup(pool); - const result = await updateApiToken( - `id=${res.id} token=${res.token}`, - "test", - "test", - { - disabled: true, - } - ); - expect(result.disabled).to.equal(true); - expect(result.name).to.equal("test"); - return expect(result !== undefined); + const result = await updateApiToken(`id=${res.id} token=${res.token}`, "test", "test", { + disabled: true, + }); + assert.strictEqual(result.disabled, true); + assert.strictEqual(result.name, "test"); + return assert.strictEqual(result !== undefined, true); } catch (ex) { console.log(ex); } finally { @@ -37,43 +32,38 @@ class UpdateApiToken { // console.log(result); // throw new Error("Exprected to throw '{ status: 404 }'"); // } catch (ex) { - // expect(ex.status).to.equal(404); + // assert.strictEqual(ex.status, 404); // } finally { // await cleanup(pool); // } // } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"] @@ -87,21 +77,14 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/admin/updateUser.ts b/src/e2e-tests/handlers/admin/updateUser.ts index 951af9998..6c8bf6c0b 100644 --- a/src/e2e-tests/handlers/admin/updateUser.ts +++ b/src/e2e-tests/handlers/admin/updateUser.ts @@ -1,8 +1,8 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import updateUser from "../../../handlers/admin/updateUser"; import getPgPool from "../../../persistence/pg"; import { AdminTokenStore } from "../../../models/admin_token/store"; +import assert from "assert"; @suite class UpdateUser { @@ -22,8 +22,8 @@ class UpdateUser { timezone: "Asia/Kolkata", }, }); - expect(result.status).to.equal(200); - expect(result.body !== undefined); + assert.strictEqual(result.status, 200); + assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -46,7 +46,7 @@ class UpdateUser { timezone: "Asia/Kolkata", }, }); - expect(result.status).to.equal(403); + assert.strictEqual(result.status, 403); } catch (ex) { console.log(ex); } finally { @@ -55,36 +55,31 @@ class UpdateUser { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ "test", "test", - ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ "test", - "test@test.com", ]); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ - "test1", - "test1@test.com", + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test1", "test1@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); // await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", ["test1", "test", "dummytoken"]); const res = await AdminTokenStore.default().createAdminToken("test"); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test1", "test", "test1"] - ); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", + "test", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test1", + "test", + "test1", + ]); await pool.query( "INSERT INTO deletion_request (id, created, backoff_interval, resource_kind, resource_id) VALUES ($1, $2, $3, $4, $5)", ["test", new Date(), 10000000, "test", "test"] @@ -98,21 +93,14 @@ async function setup(pool) { } async function cleanup(pool) { - await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM environmentuser WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM project WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, [ - "test", - "test1", - ]); - await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE id=$1 OR id=$2`, ["test", "test1"]); + await pool.query(`DELETE FROM deletion_request WHERE resource_id=$1`, ["test"]); await pool.query(`DELETE FROM deletion_confirmation WHERE id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/createViewerDescriptor.ts b/src/e2e-tests/handlers/createViewerDescriptor.ts index cf374e61d..695027526 100644 --- a/src/e2e-tests/handlers/createViewerDescriptor.ts +++ b/src/e2e-tests/handlers/createViewerDescriptor.ts @@ -1,9 +1,9 @@ import { suite, test } from "@testdeck/mocha"; import handlerRaw from "../../handlers/createViewerDescriptor"; import getPgPool from "../../persistence/pg"; -import { expect } from "chai"; import { AdminTokenStore } from "../../models/admin_token/store"; import create from "../../models/api_token/create"; +import assert from "assert"; @suite class CreateViewerDescriptor { @@ -30,8 +30,8 @@ class CreateViewerDescriptor { actor_id: "test", }, }); - expect(result.status).to.equal(201); - return expect(result.body).to.not.be.undefined; + assert.strictEqual(result.status, 201); + return assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -60,38 +60,33 @@ class CreateViewerDescriptor { actor_id: "test", }, }); - throw new Error( - `Expected error 'Either group_id or team_id is required' to be thrown` - ); + throw new Error(`Expected error 'Either group_id or team_id is required' to be thrown`); } catch (ex) { - expect(ex.err.message).to.equal("Either group_id or team_id is required"); - expect(ex.status).to.equal(400); + assert.strictEqual(ex.err.message, "Either group_id or team_id is required"); + assert.strictEqual(ex.status, 400); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", "test", - "test@test.com", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); await pool.query( "INSERT INTO group_detail (environment_id, project_id, name, group_id) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"] @@ -114,24 +109,13 @@ async function cleanup(pool) { await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environmentuser WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, [ - "test", - "test1", - ]); + await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, ["test", "test1"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE email=$1`, [ - "test@test.com", - ]); - await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM group_detail WHERE environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM viewer_descriptors WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE email=$1`, ["test@test.com"]); + await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM group_detail WHERE environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM viewer_descriptors WHERE environment_id=$1`, ["test"]); } export default CreateViewerDescriptor; diff --git a/src/e2e-tests/handlers/createViewerSession.ts b/src/e2e-tests/handlers/createViewerSession.ts index 5b1fcb2db..944ccd506 100644 --- a/src/e2e-tests/handlers/createViewerSession.ts +++ b/src/e2e-tests/handlers/createViewerSession.ts @@ -1,9 +1,9 @@ import { suite, test } from "@testdeck/mocha"; import handler from "../../handlers/createViewerSession"; import getPgPool from "../../persistence/pg"; -import { expect } from "chai"; import { AdminTokenStore } from "../../models/admin_token/store"; import create from "../../models/api_token/create"; +import assert from "assert"; @suite class CreateViewerSession { @@ -26,8 +26,8 @@ class CreateViewerSession { }, ip: "127.0.0.1", }); - expect(result.status).to.equal(200); - return expect(result.body).to.not.be.undefined; + assert.strictEqual(result.status, 200); + return assert(result.body); } catch (ex) { console.log(ex); } finally { @@ -56,51 +56,38 @@ class CreateViewerSession { }); throw new Error(`Expected error 'Unauthorized' to be thrown`); } catch (ex) { - expect(ex.err.message).to.equal("Unauthorized"); - expect(ex.status).to.equal(401); + assert.strictEqual(ex.err.message, "Unauthorized"); + assert.strictEqual(ex.status, 401); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", "test", - "test@test.com", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); await pool.query( "INSERT INTO group_detail (environment_id, project_id, name, group_id) VALUES ($1, $2, $3, $4)", ["test", "test", "test", "test"] ); await pool.query( "INSERT INTO viewer_descriptors (id, project_id, environment_id, group_id, actor_id, created, is_admin, view_log_action, scope) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)", - [ - "test", - "test", - "test", - "test", - "test", - new Date(), - false, - "", - "target_id=test", - ] + ["test", "test", "test", "test", "test", new Date(), false, "", "target_id=test"] ); const res = await AdminTokenStore.default().createAdminToken("test"); await create( @@ -120,24 +107,13 @@ async function cleanup(pool) { await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environmentuser WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, [ - "test", - "test1", - ]); + await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, ["test", "test1"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE email=$1`, [ - "test@test.com", - ]); - await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM group_detail WHERE environment_id=$1`, [ - "test", - ]); - await pool.query(`DELETE FROM viewer_descriptors WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE email=$1`, ["test@test.com"]); + await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM group_detail WHERE environment_id=$1`, ["test"]); + await pool.query(`DELETE FROM viewer_descriptors WHERE environment_id=$1`, ["test"]); } export default CreateViewerSession; diff --git a/src/e2e-tests/handlers/deleteEnterpriseToken.ts b/src/e2e-tests/handlers/deleteEnterpriseToken.ts index a8be5ab22..4d880993c 100644 --- a/src/e2e-tests/handlers/deleteEnterpriseToken.ts +++ b/src/e2e-tests/handlers/deleteEnterpriseToken.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import { deleteEnterpriseToken } from "../../handlers/deleteEnterpriseToken"; import getPgPool from "../../persistence/pg"; import { createEnterpriseToken } from "../../handlers/createEnterpriseToken"; -import { expect } from "chai"; import { AdminTokenStore } from "../../models/admin_token/store"; import create from "../../models/api_token/create"; +import assert from "assert"; @suite class DeleteEnterpriseToken { @@ -17,7 +17,6 @@ class DeleteEnterpriseToken { display_name: "test", }); await deleteEnterpriseToken("token=test", "test", "test", result.token); - expect(1).to.equal(1); } catch (ex) { console.log(ex); } finally { @@ -33,42 +32,34 @@ class DeleteEnterpriseToken { const result = await createEnterpriseToken(`token=test`, "test", "test", { display_name: "test", }); - await deleteEnterpriseToken( - "token=test", - "test", - "test", - result.token + "1" - ); + await deleteEnterpriseToken("token=test", "test", "test", result.token + "1"); throw new Error(`Expected error 'Not Found' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(404); - expect(ex.err.message).to.equal("Not Found"); + assert.strictEqual(ex.status, 404); + assert.strictEqual(ex.err.message, "Not Found"); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", "test", - "test@test.com", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); const res = await AdminTokenStore.default().createAdminToken("test"); await create( "test", @@ -87,18 +78,11 @@ async function cleanup(pool) { await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environmentuser WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, [ - "test", - "test1", - ]); + await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, ["test", "test1"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE email=$1`, [ - "test@test.com", - ]); - await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE email=$1`, ["test@test.com"]); + await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, ["test"]); } export default DeleteEnterpriseToken; diff --git a/src/e2e-tests/handlers/enterprise/createActiveSearch.ts b/src/e2e-tests/handlers/enterprise/createActiveSearch.ts index 6812f6d34..4d1ed9db2 100644 --- a/src/e2e-tests/handlers/enterprise/createActiveSearch.ts +++ b/src/e2e-tests/handlers/enterprise/createActiveSearch.ts @@ -1,9 +1,9 @@ import { suite, test } from "@testdeck/mocha"; import createActiveSearch from "../../../handlers/enterprise/createActiveSearch"; import getPgPool from "../../../persistence/pg"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import create from "../../../models/api_token/create"; +import assert from "assert"; @suite class CreateActiveSearch { @@ -20,8 +20,8 @@ class CreateActiveSearch { saved_search_id: "test", }, }); - let op = expect(res).to.not.be.undefined; - op = expect(res.body !== undefined); + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.body !== undefined, true); return op; } catch (ex) { console.log(ex); @@ -43,8 +43,8 @@ class CreateActiveSearch { }); throw new Error(`Expected error "Missing required 'saved_search_id' field" to be thrown`); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Missing required 'saved_search_id' field"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Missing required 'saved_search_id' field"); } finally { await cleanup(pool); } @@ -66,8 +66,8 @@ class CreateActiveSearch { }); throw new Error(`Expected error "Saved search not found (id=${savedSearchId})' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(404); - expect(ex.err.message).to.equal(`Saved search not found (id=${savedSearchId})`); + assert.strictEqual(ex.status, 404); + assert.strictEqual(ex.err.message, `Saved search not found (id=${savedSearchId})`); } finally { await cleanup(pool); } diff --git a/src/e2e-tests/handlers/enterprise/deleteActiveSearch.ts b/src/e2e-tests/handlers/enterprise/deleteActiveSearch.ts index 288f9f764..817913692 100644 --- a/src/e2e-tests/handlers/enterprise/deleteActiveSearch.ts +++ b/src/e2e-tests/handlers/enterprise/deleteActiveSearch.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import deleteActiveSearch from "../../../handlers/enterprise/deleteActiveSearch"; import safeQuery from "../../../test/seederHelper"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import create from "../../../models/api_token/create"; +import assert from "assert"; @suite class DeleteActiveSearch { @@ -20,8 +20,8 @@ class DeleteActiveSearch { }, body: {}, }); - expect(res.status).to.equal(204); - return expect(res).to.not.be.undefined; + assert.strictEqual(res.status, 204); + return assert.strictEqual(res !== undefined, true); } catch (ex) { console.log(ex); } @@ -41,8 +41,8 @@ class DeleteActiveSearch { }); throw new Error(`Expected error "Missing required 'id' parameter" to be thrown`); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Missing required 'id' parameter"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Missing required 'id' parameter"); } } } diff --git a/src/e2e-tests/handlers/enterprise/pumpActiveSearch.ts b/src/e2e-tests/handlers/enterprise/pumpActiveSearch.ts index 62c706d42..ddbccc79d 100644 --- a/src/e2e-tests/handlers/enterprise/pumpActiveSearch.ts +++ b/src/e2e-tests/handlers/enterprise/pumpActiveSearch.ts @@ -1,10 +1,10 @@ import { suite, test } from "@testdeck/mocha"; import pumpActiveSearch from "../../../handlers/enterprise/pumpActiveSearch"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import create from "../../../models/api_token/create"; import safeQuery from "../../../test/seederHelper"; +import assert from "assert"; @suite class PumpActiveSearch { @@ -24,9 +24,9 @@ class PumpActiveSearch { }, body: {}, }); - let op = expect(res).to.not.be.undefined; - op = expect(res.body).to.not.be.undefined; - expect(res.status).to.equal(200); + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.body !== undefined, true); + assert.strictEqual(res.status, 200); return op; } catch (ex) { console.log(ex); @@ -50,9 +50,9 @@ class PumpActiveSearch { }, body: {}, }); - let op = expect(res).to.not.be.undefined; - op = expect(res.body).to.not.be.undefined; - expect(res.status).to.equal(200); + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.body !== undefined, true); + assert.strictEqual(res.status, 200); return op; } catch (ex) { console.log(ex); @@ -77,8 +77,8 @@ class PumpActiveSearch { }); throw new Error(`Expected error "Missing required 'id' parameter" to be thrown`); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Missing required 'id' parameter"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Missing required 'id' parameter"); } } @test @@ -104,8 +104,8 @@ class PumpActiveSearch { console.log(res); throw new Error(`Expected error "Active search not found (id=${activeSearchId})" to be thrown`); } catch (ex) { - expect(ex.status).to.equal(404); - expect(ex.err.message).to.equal(`Active search not found (id=${activeSearchId})`); + assert.strictEqual(ex.status, 404); + assert.strictEqual(ex.err.message, `Active search not found (id=${activeSearchId})`); } } @test @@ -129,11 +129,9 @@ class PumpActiveSearch { }, body: {}, }); - console.log(res); throw new Error(`Expected error "Unknown query descriptor version: ${version}" to be thrown`); } catch (ex) { - console.log(ex); - expect(ex.message).to.equal(`Unknown query descriptor version: ${version}`); + assert.strictEqual(ex.message, `Unknown query descriptor version: ${version}`); } } @test @@ -163,9 +161,9 @@ class PumpActiveSearch { `Expected error "Active search (id=${activeSearchId}) refers to a non-existent saved search (id=${savedSearchId})" to be thrown` ); } catch (ex) { - console.log(ex); - expect(ex.status).to.equal(404); - expect(ex.err.message).to.equal( + assert.strictEqual(ex.status, 404); + assert.strictEqual( + ex.err.message, `Active search (id=${activeSearchId}) refers to a non-existent saved search (id=${savedSearchId})` ); } diff --git a/src/e2e-tests/handlers/enterprise/searchAdHoc.ts b/src/e2e-tests/handlers/enterprise/searchAdHoc.ts index 3e35d5bb0..fc5d3e98c 100644 --- a/src/e2e-tests/handlers/enterprise/searchAdHoc.ts +++ b/src/e2e-tests/handlers/enterprise/searchAdHoc.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import searchAdHoc from "../../../handlers/enterprise/searchAdHoc"; import safeQuery from "../../../test/seederHelper"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import create from "../../../models/api_token/create"; +import assert from "assert"; @suite class SearchAdHoc { @@ -32,9 +32,9 @@ class SearchAdHoc { }, body: {}, }); - let op = expect(res).to.not.be.undefined; - op = expect(res.body).to.not.be.undefined; - expect(res.status).to.equal(200); + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res !== undefined, true); + assert.strictEqual(res.status, 200); return op; } catch (ex) { console.log(ex); @@ -64,9 +64,9 @@ class SearchAdHoc { }, body: {}, }); - let op = expect(res).to.not.be.undefined; - op = expect(res.body).to.not.be.undefined; - expect(res.status).to.equal(200); + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res !== undefined, true); + assert.strictEqual(res.status, 200); return op; } catch (ex) { console.log(ex); diff --git a/src/e2e-tests/handlers/getEnterpriseToken.ts b/src/e2e-tests/handlers/getEnterpriseToken.ts index 35ba9710a..f929d8f02 100644 --- a/src/e2e-tests/handlers/getEnterpriseToken.ts +++ b/src/e2e-tests/handlers/getEnterpriseToken.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import { getEnterpriseToken } from "../../handlers/getEnterpriseToken"; import getPgPool from "../../persistence/pg"; import { createEnterpriseToken } from "../../handlers/createEnterpriseToken"; -import { expect } from "chai"; import { AdminTokenStore } from "../../models/admin_token/store"; import create from "../../models/api_token/create"; +import assert from "assert"; @suite class GetEnterpriseToken { @@ -16,14 +16,9 @@ class GetEnterpriseToken { const result = await createEnterpriseToken(`token=test`, "test", "test", { display_name: "test", }); - const res = await getEnterpriseToken( - "token=test", - "test", - "test", - result.token - ); - expect(res.token).to.equal(result.token); - expect(res.display_name).to.equal(result.display_name); + const res = await getEnterpriseToken("token=test", "test", "test", result.token); + assert.strictEqual(res.token, result.token); + assert.strictEqual(res.display_name, result.display_name); } catch (ex) { console.log(ex); } finally { @@ -39,8 +34,8 @@ class GetEnterpriseToken { await getEnterpriseToken("token=test", "test", "test", "random"); throw new Error(`Expected error 'Not Found' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(404); - expect(ex.err.message).to.equal("Not Found"); + assert.strictEqual(ex.status, 404); + assert.strictEqual(ex.err.message, "Not Found"); } finally { await cleanup(pool); } @@ -57,34 +52,31 @@ class GetEnterpriseToken { await getEnterpriseToken("token=dev", "dev_read", "test", result.token); throw new Error(`Expected error 'Unauthorized' to be thrown`); } catch (ex) { - expect(ex.status).to.equal(401); - expect(ex.err.message).to.equal("Unauthorized"); + assert.strictEqual(ex.status, 401); + assert.strictEqual(ex.err.message, "Unauthorized"); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ + "test", + "test", "test", - "test@test.com", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); const res = await AdminTokenStore.default().createAdminToken("test"); await create( "test", @@ -103,18 +95,11 @@ async function cleanup(pool) { await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environmentuser WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, [ - "test", - "test1", - ]); + await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, ["test", "test1"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE email=$1`, [ - "test@test.com", - ]); - await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE email=$1`, ["test@test.com"]); + await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, ["test"]); } export default GetEnterpriseToken; diff --git a/src/e2e-tests/handlers/getInvite.ts b/src/e2e-tests/handlers/getInvite.ts index 350ea86e3..dd7a3a7d7 100644 --- a/src/e2e-tests/handlers/getInvite.ts +++ b/src/e2e-tests/handlers/getInvite.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import getInvite from "../../handlers/getInvite"; import getPgPool from "../../persistence/pg"; import { createEnterpriseToken } from "../../handlers/createEnterpriseToken"; -import { expect } from "chai"; import { AdminTokenStore } from "../../models/admin_token/store"; import create from "../../models/api_token/create"; +import assert from "assert"; @suite class GetInvite { @@ -21,8 +21,8 @@ class GetInvite { id: "test", }, }); - expect(res.status).to.equal(200); - return expect(res.body).to.not.be.undefined; + assert.strictEqual(res.status, 200); + return assert(res.body); } catch (ex) { console.log(ex); } finally { diff --git a/src/e2e-tests/handlers/graphql/handler.ts b/src/e2e-tests/handlers/graphql/handler.ts index a1a56e3d2..db8022c58 100644 --- a/src/e2e-tests/handlers/graphql/handler.ts +++ b/src/e2e-tests/handlers/graphql/handler.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import handler from "../../../handlers/graphql/handler"; import safeQuery from "../../../test/seederHelper"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import create from "../../../models/api_token/create"; +import assert from "assert"; @suite class GraphQLHandler { @@ -31,10 +31,10 @@ class GraphQLHandler { targetId: "test", } ); - console.log(res); - expect(res.status).to.equal(200); + // console.log(res); + assert.strictEqual(res.status, 200); } catch (ex) { - // console.log(ex); + console.log(ex); } } @test public async "GraphQL handler#handler() with query"() { @@ -62,7 +62,7 @@ class GraphQLHandler { } ); console.log(res); - expect(res.status).to.equal(200); + assert.strictEqual(res.status, 200); } catch (ex) { // console.log(ex); } @@ -90,7 +90,7 @@ class GraphQLHandler { targetId: "test", } ); - expect(res.status).to.equal(400); + assert.strictEqual(res.status, 400); } catch (ex) { console.log(ex); } diff --git a/src/e2e-tests/handlers/listEnterpriseTokens.ts b/src/e2e-tests/handlers/listEnterpriseTokens.ts index fafb8e9d3..70d6be692 100644 --- a/src/e2e-tests/handlers/listEnterpriseTokens.ts +++ b/src/e2e-tests/handlers/listEnterpriseTokens.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import { listEnterpriseTokens } from "../../handlers/listEnterpriseTokens"; import getPgPool from "../../persistence/pg"; import { createEnterpriseToken } from "../../handlers/createEnterpriseToken"; -import { expect } from "chai"; import { AdminTokenStore } from "../../models/admin_token/store"; import create from "../../models/api_token/create"; +import assert from "assert"; @suite class ListEnterpriseTokens { @@ -17,8 +17,8 @@ class ListEnterpriseTokens { display_name: "test", }); const res = await listEnterpriseTokens("token=test", "test", "test"); - expect(res.length).to.gt(0); - return expect(res).to.not.be.undefined; + assert.strictEqual(res.length > 0, true); + return assert(res); } catch (ex) { console.log(ex); } finally { @@ -27,30 +27,29 @@ class ListEnterpriseTokens { } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ "test", + "test", + "test", + ]); + await pool.query("INSERT INTO invite (id, created, email, project_id) VALUES ($1, $2, $3, $4)", [ + "test", + new Date(), "test@test.com", + "test", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO invite (id, created, email, project_id) VALUES ($1, $2, $3, $4)", - ["test", new Date(), "test@test.com", "test"] - ); const res = await AdminTokenStore.default().createAdminToken("test"); await create( "test", @@ -69,18 +68,11 @@ async function cleanup(pool) { await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environmentuser WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, [ - "test", - "test1", - ]); + await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, ["test", "test1"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE email=$1`, [ - "test@test.com", - ]); - await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE email=$1`, ["test@test.com"]); + await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/updateEnterpriseToken.ts b/src/e2e-tests/handlers/updateEnterpriseToken.ts index 08299e198..98e971511 100644 --- a/src/e2e-tests/handlers/updateEnterpriseToken.ts +++ b/src/e2e-tests/handlers/updateEnterpriseToken.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import { updateEnterpriseToken } from "../../handlers/updateEnterpriseToken"; import getPgPool from "../../persistence/pg"; import { createEnterpriseToken } from "../../handlers/createEnterpriseToken"; -import { expect } from "chai"; import { AdminTokenStore } from "../../models/admin_token/store"; import create from "../../models/api_token/create"; +import assert from "assert"; @suite class UpdateEnterpriseToken { @@ -16,16 +16,9 @@ class UpdateEnterpriseToken { const result = await createEnterpriseToken(`token=test`, "test", "test", { display_name: "test", }); - const res = await updateEnterpriseToken( - "token=test", - "test", - "test", - result.token, - "test1", - "" - ); - expect(res.display_name).to.eq("test1"); - return expect(res).to.not.be.undefined; + const res = await updateEnterpriseToken("token=test", "test", "test", result.token, "test1", ""); + assert.strictEqual(res.display_name, "test1"); + return assert(res); } catch (ex) { console.log(ex); } finally { @@ -41,49 +34,39 @@ class UpdateEnterpriseToken { const result = await createEnterpriseToken(`token=test`, "test", "test", { display_name: "test", }); - await updateEnterpriseToken( - "token=test", - "test", - "test1", - result.token, - "test", - "" - ); - throw new Error( - `Expected error 'Expected updated row count of 1, got 0' to be thrown` - ); + await updateEnterpriseToken("token=test", "test", "test1", result.token, "test", ""); + throw new Error(`Expected error 'Expected updated row count of 1, got 0' to be thrown`); } catch (ex) { - expect(ex.message).to.equal("Expected updated row count of 1, got 0"); + assert.strictEqual(ex.message, "Expected updated row count of 1, got 0"); } finally { await cleanup(pool); } } } async function setup(pool) { - await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", [ + await pool.query("INSERT INTO project (id, name) VALUES ($1, $2)", ["test", "test"]); + await pool.query("INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", [ + "test", "test", "test", ]); - await pool.query( - "INSERT INTO environment (id, name, project_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", [ + await pool.query("INSERT INTO retraceduser (id, email) VALUES ($1, $2)", ["test", "test@test.com"]); + await pool.query("INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", [ + "test", + "test", + "dummytoken", + ]); + await pool.query("INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", [ "test", + "test", + "test", + ]); + await pool.query("INSERT INTO invite (id, created, email, project_id) VALUES ($1, $2, $3, $4)", [ + "test", + new Date(), "test@test.com", + "test", ]); - await pool.query( - "INSERT INTO environmentuser (user_id, environment_id, email_token) VALUES ($1, $2, $3)", - ["test", "test", "dummytoken"] - ); - await pool.query( - "INSERT INTO projectuser (id, project_id, user_id) VALUES ($1, $2, $3)", - ["test", "test", "test"] - ); - await pool.query( - "INSERT INTO invite (id, created, email, project_id) VALUES ($1, $2, $3, $4)", - ["test", new Date(), "test@test.com", "test"] - ); const res = await AdminTokenStore.default().createAdminToken("test"); await create( "test", @@ -102,18 +85,11 @@ async function cleanup(pool) { await pool.query(`DELETE FROM admin_token WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environmentuser WHERE user_id=$1`, ["test"]); await pool.query(`DELETE FROM environment WHERE name=$1`, ["test"]); - await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, [ - "test", - "test1", - ]); + await pool.query(`DELETE FROM project WHERE name=$1 OR name=$2`, ["test", "test1"]); await pool.query(`DELETE FROM projectuser WHERE project_id=$1`, ["test"]); await pool.query(`DELETE FROM token WHERE environment_id=$1`, ["test"]); - await pool.query(`DELETE FROM retraceduser WHERE email=$1`, [ - "test@test.com", - ]); - await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, [ - "test", - ]); + await pool.query(`DELETE FROM retraceduser WHERE email=$1`, ["test@test.com"]); + await pool.query(`DELETE FROM eitapi_token WHERE environment_id=$1`, ["test"]); await pool.query(`DELETE FROM invite WHERE project_id=$1`, ["test"]); } diff --git a/src/e2e-tests/handlers/viewer/renderSavedExport.ts b/src/e2e-tests/handlers/viewer/renderSavedExport.ts index 37b4acaf4..815fb015c 100644 --- a/src/e2e-tests/handlers/viewer/renderSavedExport.ts +++ b/src/e2e-tests/handlers/viewer/renderSavedExport.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import renderSavedExport from "../../../handlers/viewer/renderSavedExport"; import getPgPool from "../../../persistence/pg"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import createSession from "../../../handlers/createViewerSession"; +import assert from "assert"; @suite class RenderSavedExport { @@ -40,7 +40,7 @@ class RenderSavedExport { }, }); console.log("RES", res); - return expect(res !== undefined); + return assert.strictEqual(res !== undefined, true); } catch (ex) { console.log("Exception", ex); } finally { @@ -80,7 +80,7 @@ class RenderSavedExport { }, }); console.log("RES", res); - return expect(res !== undefined); + return assert.strictEqual(res !== undefined, true); } catch (ex) { console.log("Exception", ex); } finally { @@ -118,7 +118,7 @@ class RenderSavedExport { }, }); console.log("RES", res); - return expect(res !== undefined); + return assert.strictEqual(res !== undefined, true); } catch (ex) { console.log("Exception", ex); } finally { @@ -161,7 +161,7 @@ class RenderSavedExport { // }, // }); // console.log(res); - // expect(res.status).to.equal(200); + // assert.strictEqual(res.status, 200); // } catch (ex) { // console.log(ex); // } finally { @@ -204,7 +204,7 @@ class RenderSavedExport { // }, // }); // console.log(res); - // expect(res.status).to.equal(200); + // assert.strictEqual(res.status, 200); // } catch (ex) { // console.log(ex); // } finally { @@ -246,8 +246,7 @@ class RenderSavedExport { // } // }, // }); - // console.log(res); - // expect(res.status).to.equal(200); + // assert.strictEqual(res.status, 200); // } catch (ex) { // console.log(ex); // } finally { @@ -286,8 +285,7 @@ class RenderSavedExport { // } // }, // }); - // console.log(res); - // expect(res.status).to.equal(200); + // assert.strictEqual(res.status, 200); // } catch (ex) { // console.log(ex); // } finally { diff --git a/src/e2e-tests/handlers/viewer/searchEvents.ts b/src/e2e-tests/handlers/viewer/searchEvents.ts index 4bb610e32..433acbf7b 100644 --- a/src/e2e-tests/handlers/viewer/searchEvents.ts +++ b/src/e2e-tests/handlers/viewer/searchEvents.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import searchEvents from "../../../handlers/viewer/searchEvents"; import getPgPool from "../../../persistence/pg"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import createSession from "../../../handlers/createViewerSession"; +import assert from "assert"; @suite class SearchEvents { @@ -44,8 +44,7 @@ class SearchEvents { }, }, }); - console.log(res); - expect(res.status).to.equal(200); + assert.strictEqual(res.status, 200); } catch (ex) { console.log(ex); } finally { @@ -88,8 +87,7 @@ class SearchEvents { }, }, }); - console.log(res); - expect(res.status).to.equal(200); + assert.strictEqual(res.status, 200); } catch (ex) { console.log(ex); } finally { @@ -134,8 +132,7 @@ class SearchEvents { }, }, }); - console.log(res); - expect(res.status).to.equal(200); + assert.strictEqual(res.status, 200); } catch (ex) { console.log(ex); } finally { @@ -178,8 +175,7 @@ class SearchEvents { }, }, }); - console.log(res); - expect(res.status).to.equal(200); + assert.strictEqual(res.status, 200); } catch (ex) { console.log(ex); } finally { @@ -219,8 +215,7 @@ class SearchEvents { }, }, }); - console.log(res); - expect(res.status).to.equal(200); + assert.strictEqual(res.status, 200); } catch (ex) { console.log(ex); } finally { diff --git a/src/test/handlers/graphql.ts b/src/test/handlers/graphql.ts index d29532ae9..830d95c9d 100644 --- a/src/test/handlers/graphql.ts +++ b/src/test/handlers/graphql.ts @@ -1,7 +1,7 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import { validateQuery } from "../../handlers/graphql/handler"; import schema from "../../handlers/graphql/schema"; +import assert from "assert"; // (specifiedRules as Array).push(NoDuplicateFields); @@ -54,7 +54,7 @@ export class GraphqlTest { } }`; const errors = validateQuery(query, schema); - return expect(errors).to.be.empty; + return assert.deepEqual(errors, []); } @test public "Graphql#validateDupFields()"() { @@ -63,8 +63,11 @@ export class GraphqlTest { search(query: $query, last: $last, before: $before) { totalCount totalCount } }`; const errors = validateQuery(query, schema); - let r = expect(errors).to.not.be.empty; - r = expect(String(errors[0])).to.have.string("Error: Duplicate field EventsConnection:totalCount."); + let r = assert(errors); + r = assert.strictEqual( + String(errors[0]).includes("Error: Duplicate field EventsConnection:totalCount."), + true + ); return r; } @@ -74,8 +77,11 @@ export class GraphqlTest { search(query: $query, last: $last, before: $before) { a1:totalCount a2:totalCount } }`; const errors = validateQuery(query, schema); - let r = expect(errors).to.not.be.empty; - r = expect(String(errors[0])).to.have.string("Error: Duplicate field EventsConnection:totalCount."); + let r = assert(errors); + r = assert.strictEqual( + String(errors[0]).includes("Error: Duplicate field EventsConnection:totalCount."), + true + ); return r; } } diff --git a/src/test/headless.ts b/src/test/headless.ts index cfd6a8673..17909d914 100644 --- a/src/test/headless.ts +++ b/src/test/headless.ts @@ -1,24 +1,24 @@ import { describe, it } from "mocha"; -import { expect } from "chai"; import { stringifyFields } from "../headless"; +import assert from "assert"; describe("stringifyFields", () => { - it("should stringify non-null, defined fields.", () => { - const input = { - key: "value", - missing: undefined, - gone: null, - count: 0, - active: false, - dev: true, - }; - const answer = { - key: "value", - count: "0", - active: "false", - dev: "true", - }; + it("should stringify non-null, defined fields.", () => { + const input = { + key: "value", + missing: undefined, + gone: null, + count: 0, + active: false, + dev: true, + }; + const answer = { + key: "value", + count: "0", + active: "false", + dev: "true", + }; - expect(stringifyFields(input)).to.deep.equal(answer); - }); + assert.deepEqual(stringifyFields(input), answer); + }); }); diff --git a/src/test/models/admin_token/store_test.ts b/src/test/models/admin_token/store_test.ts index 18457ccfd..d26d1316f 100644 --- a/src/test/models/admin_token/store_test.ts +++ b/src/test/models/admin_token/store_test.ts @@ -1,6 +1,6 @@ import bcrypt from "bcryptjs"; import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; +import assert from "assert"; @suite class BcryptLearning { @@ -9,7 +9,7 @@ class BcryptLearning { const token = "100"; const hash = await bcrypt.hash(token, 12); const valid = await bcrypt.compare(token, hash); - return expect(valid).to.be.true; + assert.strictEqual(valid, true); } @test @@ -17,7 +17,7 @@ class BcryptLearning { const token = "100"; const hash = await bcrypt.hash(token, 12); const valid = await bcrypt.compare(token + token, hash); - return expect(valid).to.be.false; + assert.strictEqual(valid, false); } } diff --git a/src/test/models/event/canonicalize.ts b/src/test/models/event/canonicalize.ts index 33ac3080c..8fa07a825 100644 --- a/src/test/models/event/canonicalize.ts +++ b/src/test/models/event/canonicalize.ts @@ -1,16 +1,15 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import Event from "../../../models/event/"; import computeCanonicalHash from "../../../models/event/canonicalize"; +import assert from "assert"; @suite class CanonicalizeTest { @test public "Anonymous Event Without Group"() { const event: Event = { id: "kfbr392", action: "largeTazoTea.purchase" }; - const expected = - "a60b49fcbbe8569139b97997eaf8fc0b871d2bb88757ef94eae0056fd9326302"; - expect(computeCanonicalHash(event)).to.equal(expected); + const expected = "a60b49fcbbe8569139b97997eaf8fc0b871d2bb88757ef94eae0056fd9326302"; + assert.strictEqual(computeCanonicalHash(event), expected); } @test public "Anonymous Event With Group"() { @@ -20,16 +19,19 @@ class CanonicalizeTest { action: "largeTazoTea.purchase", group, }; - const expected = - "f17fe3079e5fe34668629f0254a0cabe7ad37ec51d97f034ec8b732e158247d6"; - expect(computeCanonicalHash(event)).to.equal(expected); + const expected = "f17fe3079e5fe34668629f0254a0cabe7ad37ec51d97f034ec8b732e158247d6"; + assert.strictEqual(computeCanonicalHash(event), expected); } @test public "Fails without event.id "() { const event: any = { action: "largeTazoTea.purchase" }; // no id const error = `Canonicalization failed: missing required event attribute 'id'`; - expect(() => computeCanonicalHash(event)).to.throw(error); + try { + computeCanonicalHash(event); + } catch (err) { + assert.strictEqual(err.message, error); + } } @test public "Fails with event.group and not event.group.id "() { @@ -39,9 +41,13 @@ class CanonicalizeTest { action: "largeTazoTea.purchase", group, }; - const error = `Canonicalization failed: missing attribute 'group.id' which is required when 'group' is present`; + const error = `Canonicalization failed: missing attribute 'group.id' which is required when 'group' is present.`; - expect(() => computeCanonicalHash(event)).to.throw(error); + try { + computeCanonicalHash(event); + } catch (err) { + assert.strictEqual(err.message, error); + } } } diff --git a/src/test/models/event/countBy.ts b/src/test/models/event/countBy.ts index f6653cbb2..11649e49d 100644 --- a/src/test/models/event/countBy.ts +++ b/src/test/models/event/countBy.ts @@ -1,9 +1,9 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import * as TypeMoq from "typemoq"; import { countBy } from "../../../models/event/countBy"; import { Client, ApiResponse } from "@opensearch-project/opensearch"; +import assert from "assert"; @suite class EventsCountByTest { @@ -23,7 +23,7 @@ class EventsCountByTest { } as ApiResponse; es.setup((x) => x.search(TypeMoq.It.isAny())).returns((params): any => { - expect(params.body.query.bool.filter).to.deep.include.members([ + assert.deepEqual(params.body.query.bool.filter, [ { range: { canonical_time: { gte: 1490000000000, lte: 1500000000000 } }, }, @@ -47,7 +47,7 @@ class EventsCountByTest { crud: ["c", "u", "d"], }); - expect(counts).to.deep.equal([ + assert.deepEqual(counts, [ { value: "user.login", count: 100 }, { value: "user.logout", count: 95 }, ]); diff --git a/src/test/models/event/filter.ts b/src/test/models/event/filter.ts index c357a2d85..b339c8e32 100644 --- a/src/test/models/event/filter.ts +++ b/src/test/models/event/filter.ts @@ -1,9 +1,9 @@ import util from "util"; import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import { parseQuery } from "../../../models/event"; import { getFilters } from "../../../models/event/filter"; +import assert from "assert"; const minScope = { projectId: "proj1", @@ -228,7 +228,7 @@ class FilterEventsTest { const parsed = parseQuery(testObj.query); try { - expect(parsed).to.deep.equal(testObj.parsed); + assert.deepEqual(parsed, testObj.parsed); } catch (err) { throw new Error(`"${testObj.query}" parseQuery() => ${util.inspect(parsed, { depth: 10 })} @@ -239,7 +239,7 @@ ${util.inspect(testObj.parsed, { depth: 10 })}`); const filters = getFilters(parsed, testObj.scope); try { - expect(filters).to.deep.equal(testObj.filters); + assert.deepEqual(filters, testObj.filters); } catch (err) { throw new Error(`"${testObj.query}" getFilters() => ${util.inspect(filters, { depth: 10 })} diff --git a/src/test/persistence/elasticsearch.ts b/src/test/persistence/elasticsearch.ts index b1004d99c..4113c3205 100644 --- a/src/test/persistence/elasticsearch.ts +++ b/src/test/persistence/elasticsearch.ts @@ -1,7 +1,7 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import { scope } from "../../persistence/elasticsearch"; +import assert from "assert"; @suite class ElasticsearchTest { @@ -13,9 +13,9 @@ class ElasticsearchTest { groupId: "g1", targetId: "t1", }); - expect(index).to.equal("retraced.p1.e1.current"); - expect(filters).to.have.length(2); - expect(filters[0]).to.deep.equal({ + assert.strictEqual(index, "retraced.p1.e1.current"); + assert.strictEqual(filters.length, 2); + assert.deepEqual(filters[0], { bool: { should: [ { match: { "group.id": { query: "g1", operator: "and" } } }, @@ -23,7 +23,7 @@ class ElasticsearchTest { ], }, }); - expect(filters[1]).to.deep.equal({ + assert.deepEqual(filters[1], { match: { "target.id": { query: "t1", operator: "and" } }, }); } @@ -34,8 +34,8 @@ class ElasticsearchTest { environmentId: "e1", }); - expect(index).to.equal("retraced.p1.e1.current"); - expect(filters).to.deep.equal([]); + assert.strictEqual(index, "retraced.p1.e1.current"); + assert.deepEqual(filters, []); } } diff --git a/src/test/security/AuthenticatorTest.ts b/src/test/security/AuthenticatorTest.ts index b7e4695b5..34c87385a 100644 --- a/src/test/security/AuthenticatorTest.ts +++ b/src/test/security/AuthenticatorTest.ts @@ -1,4 +1,3 @@ -import { expect } from "chai"; import { suite, test } from "@testdeck/mocha"; import * as TypeMoq from "typemoq"; @@ -6,6 +5,7 @@ import pg from "pg"; import Authenticator from "../../security/Authenticator"; import { getApiTokenQuery } from "../../models/api_token/get"; import { QueryResult } from "pg"; +import assert from "assert"; @suite class AuthenticatorTest { @@ -33,8 +33,8 @@ class AuthenticatorTest { const token = await authenticator.getApiTokenOr401("token=some-token", "a-project"); - expect(token.projectId).to.equal("a-project"); - expect(token.environmentId).to.equal("an-environment"); + assert.strictEqual(token.projectId, "a-project"); + assert.strictEqual(token.environmentId, "an-environment"); } @test public async "Authenticator#getApiTokenOr401() with invalid token"() { const pool = TypeMoq.Mock.ofType(pg.Pool); @@ -54,8 +54,8 @@ class AuthenticatorTest { await authenticator.getApiTokenOr401("token=bad-token", "a-project"); throw new Error(`Expected error ${JSON.stringify(expected)} to be thrown`); } catch (err) { - expect(err.status).to.deep.equal(expected.status); - expect(err.err.message).to.deep.equal(expected.err.message); + assert.deepEqual(err.status, expected.status); + assert.deepEqual(err.err.message, expected.err.message); } } @@ -86,8 +86,8 @@ class AuthenticatorTest { await authenticator.getApiTokenOr401("token=bad-token", "another-project"); throw new Error(`Expected error ${JSON.stringify(expected)} to be thrown`); } catch (err) { - expect(err.status).to.deep.equal(expected.status); - expect(err.err.message).to.deep.equal(expected.err.message); + assert.deepEqual(err.status, expected.status); + assert.deepEqual(err.err.message, expected.err.message); } } } diff --git a/src/test/security/helpers.ts b/src/test/security/helpers.ts index 22e282cc2..36f8fedd9 100644 --- a/src/test/security/helpers.ts +++ b/src/test/security/helpers.ts @@ -1,7 +1,7 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import { apiTokenFromAuthHeader, checkAdminAccessUnwrapped } from "../../security/helpers"; +import assert from "assert"; @suite class SecurityHelpersTest { @@ -9,21 +9,21 @@ class SecurityHelpersTest { try { apiTokenFromAuthHeader(undefined); } catch (err) { - expect(err.status).to.deep.equal(401); - expect(err.err.message).to.deep.equal("Missing Authorization header"); + assert.strictEqual(err.status, 401); + assert.strictEqual(err.err.message, "Missing Authorization header"); } } @test public "helpers.apiTokenFromAuthHeader(token=abcdef)"() { const token = apiTokenFromAuthHeader("token=abcdef"); - expect(token).to.equal("abcdef"); + assert.strictEqual(token, "abcdef"); } @test public async "helpers.checkAdminAccessUnwrapped(undefined)"() { try { await checkAdminAccessUnwrapped(undefined as any); throw new Error("Error not thrown"); } catch (err) { - expect(err.status).to.deep.equal(401); - expect(err.err.message).to.deep.equal("Missing Authorization header"); + assert.strictEqual(err.status, 401); + assert.strictEqual(err.err.message, "Missing Authorization header"); } } } From 6e9e0bd3e3f14d53762a2cdf785e5a6490f20643 Mon Sep 17 00:00:00 2001 From: Deepak Prabhakara Date: Sat, 6 Jan 2024 19:36:37 +0000 Subject: [PATCH 21/21] Replaced chai.expect with assert --- integration/test/publisher/search.ts | 2 +- package-lock.json | 79 ------------------------ package.json | 1 - src/e2e-tests/handlers/graphql/counts.ts | 44 ++++++------- src/e2e-tests/handlers/graphql/search.ts | 35 +++++------ src/test/handlers/createEvent.ts | 69 +++++++++++---------- src/test/models/event/query.ts | 26 ++++---- src/test/swagger.ts | 36 ++++------- 8 files changed, 101 insertions(+), 191 deletions(-) diff --git a/integration/test/publisher/search.ts b/integration/test/publisher/search.ts index 8d65bd63d..9efa2880e 100644 --- a/integration/test/publisher/search.ts +++ b/integration/test/publisher/search.ts @@ -51,7 +51,7 @@ describe("Publisher Search", function () { }, description: "Automated integration testing...", is_failure: false, - component: "chai", + component: "mocha", version: "v1", fields: { quality: "excellent", diff --git a/package-lock.json b/package-lock.json index ec8fdaca1..23cda9194 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,7 +72,6 @@ "@types/yargs": "17.0.32", "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", - "chai": "4.3.10", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", @@ -3190,15 +3189,6 @@ "node": ">=0.8" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", @@ -3755,24 +3745,6 @@ ], "license": "CC-BY-4.0" }, - "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/chainsaw": { "version": "0.1.0", "license": "MIT/X11", @@ -3807,18 +3779,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -4236,18 +4196,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -5795,15 +5743,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -7719,15 +7658,6 @@ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } - }, "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -9378,15 +9308,6 @@ "node": ">=8" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/pg": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", diff --git a/package.json b/package.json index 6fe4bbbab..32163516c 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,6 @@ "@types/yargs": "17.0.32", "@typescript-eslint/eslint-plugin": "6.16.0", "@typescript-eslint/parser": "6.17.0", - "chai": "4.3.10", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-import": "2.29.1", diff --git a/src/e2e-tests/handlers/graphql/counts.ts b/src/e2e-tests/handlers/graphql/counts.ts index 7ce6d9f32..42f06e608 100644 --- a/src/e2e-tests/handlers/graphql/counts.ts +++ b/src/e2e-tests/handlers/graphql/counts.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import counts from "../../../handlers/graphql/counts"; import safeQuery from "../../../test/seederHelper"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import create from "../../../models/api_token/create"; +import assert from "assert"; @suite class GraphQLCounts { @@ -30,9 +30,9 @@ class GraphQLCounts { targetId: "test", } ); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { // console.log(ex); @@ -62,8 +62,8 @@ class GraphQLCounts { ); throw new Error("Expected 'Invalid cursor' exception"); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Invalid cursor"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Invalid cursor"); } } @test public async "GraphQL counts#counts() without endTime"() { @@ -87,9 +87,9 @@ class GraphQLCounts { targetId: "test", } ); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { // console.log(ex); @@ -118,8 +118,8 @@ class GraphQLCounts { ); throw new Error("Expected 'Invalid endTime' exception"); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Invalid endTime"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Invalid endTime"); } } @test public async "GraphQL counts#counts() without crud"() { @@ -143,9 +143,9 @@ class GraphQLCounts { targetId: "test", } ); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { // console.log(ex); @@ -172,9 +172,9 @@ class GraphQLCounts { targetId: "test", } ); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { // console.log(ex); @@ -203,8 +203,8 @@ class GraphQLCounts { ); throw new Error("Expected 'Invalid startTime' exception"); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Invalid startTime"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Invalid startTime"); } } @test public async "GraphQL counts#counts() with type group.id"() { @@ -228,9 +228,9 @@ class GraphQLCounts { targetId: "test", } ); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { // console.log(ex); diff --git a/src/e2e-tests/handlers/graphql/search.ts b/src/e2e-tests/handlers/graphql/search.ts index 6fed75940..8d4ed1654 100644 --- a/src/e2e-tests/handlers/graphql/search.ts +++ b/src/e2e-tests/handlers/graphql/search.ts @@ -2,9 +2,9 @@ import { suite, test } from "@testdeck/mocha"; import search from "../../../handlers/graphql/search"; import safeQuery from "../../../test/seederHelper"; import { defaultEventCreater } from "../../../handlers/createEvent"; -import { expect } from "chai"; import { AdminTokenStore } from "../../../models/admin_token/store"; import create from "../../../models/api_token/create"; +import assert from "assert"; @suite class GraphQLCounts { @@ -27,10 +27,9 @@ class GraphQLCounts { targetId: "test", } ); - console.log(res); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { console.log(ex); @@ -55,10 +54,9 @@ class GraphQLCounts { targetId: "test", } ); - console.log(res); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { console.log(ex); @@ -83,10 +81,9 @@ class GraphQLCounts { targetId: "test", } ); - console.log(res); - let op = expect(res).to.not.be.undefined; - op = expect(res.totalCount).to.not.be.undefined; - op = expect(res.pageInfo).to.not.be.undefined; + let op = assert.strictEqual(res !== undefined, true); + op = assert.strictEqual(res.totalCount !== undefined, true); + op = assert.strictEqual(res.pageInfo !== undefined, true); return op; } catch (ex) { console.log(ex); @@ -116,8 +113,8 @@ class GraphQLCounts { console.log(res); throw new Error("Expected 'Arguments 'before' and 'after' are exclusive' exception"); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Arguments 'before' and 'after' are exclusive"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Arguments 'before' and 'after' are exclusive"); } } @test @@ -144,8 +141,8 @@ class GraphQLCounts { console.log(res); throw new Error("Expected 'Arguments 'first' and 'last' are exclusive' exception"); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Arguments 'first' and 'last' are exclusive"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Arguments 'first' and 'last' are exclusive"); } } @test public async "GraphQL search#search() throws invalid cursor"() { @@ -171,8 +168,8 @@ class GraphQLCounts { console.log(res); throw new Error("Expected 'Invalid cursor' exception"); } catch (ex) { - expect(ex.status).to.equal(400); - expect(ex.err.message).to.equal("Invalid cursor"); + assert.strictEqual(ex.status, 400); + assert.strictEqual(ex.err.message, "Invalid cursor"); } } } diff --git a/src/test/handlers/createEvent.ts b/src/test/handlers/createEvent.ts index d743535d8..03aa4b97a 100644 --- a/src/test/handlers/createEvent.ts +++ b/src/test/handlers/createEvent.ts @@ -1,5 +1,4 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import * as TypeMoq from "typemoq"; import moment from "moment"; @@ -9,6 +8,7 @@ import { NSQClient } from "../../persistence/nsq"; import { EventCreater, CreateEventRequest, CreateEventResponse } from "../../handlers/createEvent"; import Authenticator from "../../security/Authenticator"; import { Connection } from "./Connection"; +import assert from "assert"; @suite class EventCreaterTest { @@ -76,8 +76,8 @@ class EventCreaterTest { await creater.createEventBulk("token=some-token", "a-project", body); throw new Error(`Expected error ${expected} to be thrown`); } catch (err) { - expect(err.err.message).to.equal(expected.message); - expect(err.status).to.equal(400); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message.includes(expected.message), true); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); @@ -147,16 +147,19 @@ class EventCreaterTest { await creater.createEventBulk("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`One or more invalid inputs, no events were logged: + assert.strictEqual(err.status, 400); + assert.deepEqual( + err.err.message, + `One or more invalid inputs, no events were logged: - Invalid event input at index 0: -- Field 'actor.id' is required if 'actor' is present - Invalid event input at index 1: -- Field 'group.id' is required if 'group' is present -- Event is not marked anonymous, and missing required field 'actor' --- Unable to parse 'source_ip' field as valid IPV4 or IPV6 address: lol`); +-- Unable to parse 'source_ip' field as valid IPV4 or IPV6 address: lol` + ); - expect(err.invalid).to.deep.equal([ + assert.deepEqual(err.invalid, [ { index: 0, message: "Invalid event input at index 0:\n-- Field 'actor.id' is required if 'actor' is present", @@ -257,8 +260,8 @@ class EventCreaterTest { const created: any = await creater.createEvent("token=some-token", "a-project", body); - expect(created.id).to.equal("kfbr392"); - expect(created.hash).to.equal("fake-hash"); + assert.strictEqual(created.id, "kfbr392"); + assert.strictEqual(created.hash, "fake-hash"); } @test public async "EventCreater#createEvent() ipv6"() { @@ -318,8 +321,8 @@ class EventCreaterTest { const created: any = await creater.createEvent("token=some-token", "a-project", body); - expect(created.id).to.equal("kfbr392"); - expect(created.hash).to.equal("fake-hash"); + assert.strictEqual(created.id, "kfbr392"); + assert.strictEqual(created.hash, "fake-hash"); } @test public async "EventCreater#createEventsBulk()"() { @@ -399,14 +402,14 @@ class EventCreaterTest { body ); - expect(created.length).to.equal(3); + assert.strictEqual(created.length, 3); - expect(created[0].id).to.equal("kfbr392"); - expect(created[0].hash).to.equal("fake-hash"); - expect(created[1].id).to.equal("kfbr392"); - expect(created[1].hash).to.equal("fake-hash"); - expect(created[2].id).to.equal("kfbr392"); - expect(created[2].hash).to.equal("fake-hash"); + assert.strictEqual(created[0].id, "kfbr392"); + assert.strictEqual(created[0].hash, "fake-hash"); + assert.strictEqual(created[1].id, "kfbr392"); + assert.strictEqual(created[1].hash, "fake-hash"); + assert.strictEqual(created[2].id, "kfbr392"); + assert.strictEqual(created[2].hash, "fake-hash"); } @test public async "EventCreater#createEventsBulk() with postgres error"() { @@ -474,7 +477,7 @@ class EventCreaterTest { await creater.createEventBulk("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown: ${expected}`); } catch (err) { - expect(err.message).to.equal(expected.message); + assert.strictEqual(err.message, expected.message); } // make sure we didn't send any nsq messages if the txn is ROLLBACK'd @@ -671,8 +674,8 @@ class EventCreaterTest { await creater.createEvent("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`"fields.data" must be a string`); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message, `"fields.data" must be a string`); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); @@ -755,8 +758,8 @@ class EventCreaterTest { await creater.createEvent("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`Missing required field 'action'`); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message, `Missing required field 'action'`); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); @@ -838,8 +841,8 @@ class EventCreaterTest { await creater.createEvent("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`Invalid value for 'crud' field: b`); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message, `Invalid value for 'crud' field: b`); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); @@ -921,8 +924,8 @@ class EventCreaterTest { await creater.createEvent("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`"group.fields" is not allowed`); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message, `"group.fields" is not allowed`); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); @@ -1002,8 +1005,8 @@ class EventCreaterTest { await creater.createEvent("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`"actor.phone" is not allowed`); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message, `"actor.phone" is not allowed`); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); @@ -1083,8 +1086,8 @@ class EventCreaterTest { await creater.createEvent("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`"target.meta" is not allowed`); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message, `"target.meta" is not allowed`); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); @@ -1166,8 +1169,8 @@ class EventCreaterTest { await creater.createEvent("token=some-token", "a-project", body); throw new Error(`Expected error to be thrown`); } catch (err) { - expect(err.status).to.equal(400); - expect(err.err.message).to.deep.equal(`"external_id" must be a string`); + assert.strictEqual(err.status, 400); + assert.strictEqual(err.err.message, `"external_id" must be a string`); } conn.verify((x: pg.Client) => x.query("BEGIN"), TypeMoq.Times.never()); diff --git a/src/test/models/event/query.ts b/src/test/models/event/query.ts index ba73f8bb6..f6191aa92 100644 --- a/src/test/models/event/query.ts +++ b/src/test/models/event/query.ts @@ -1,13 +1,13 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import { parse, searchParams, Options } from "../../../models/event/query"; import { RequestParams } from "@opensearch-project/opensearch"; +import assert from "assert"; @suite class QueryEventsTest { @test public "parse(action:user.get)"() { - expect(parse("action:user.get")).to.deep.equal({ + assert.deepEqual(parse("action:user.get"), { bool: { filter: [{ match: { action: { query: "user.get", operator: "and" } } }], }, @@ -15,7 +15,7 @@ class QueryEventsTest { } @test public "parse(action:user.* crud:c,d)"() { - expect(parse("action:user.* crud:c,d")).to.deep.equal({ + assert.deepEqual(parse("action:user.* crud:c,d"), { bool: { filter: [ { prefix: { action: "user." } }, @@ -30,7 +30,7 @@ class QueryEventsTest { } @test public "parse(crud:r)"() { - expect(parse("crud:r")).to.deep.equal({ + assert.deepEqual(parse("crud:r"), { bool: { filter: [{ match: { crud: "r" } }], }, @@ -38,7 +38,7 @@ class QueryEventsTest { } @test public "parse(received:2017-01-01,2018-01-01)"() { - expect(parse("received:2017-01-01,2018-01-01")).to.deep.equal({ + assert.deepEqual(parse("received:2017-01-01,2018-01-01"), { bool: { filter: [ { @@ -55,7 +55,7 @@ class QueryEventsTest { } @test public "parse(created:2017-01-01,2018-01-01)"() { - expect(parse("created:2017-01-01,2018-01-01")).to.deep.equal({ + assert.deepEqual(parse("created:2017-01-01,2018-01-01"), { bool: { filter: [ { @@ -72,7 +72,7 @@ class QueryEventsTest { } @test public "parse(actor.id:b82c4cfa428342ac822c42c1f6b89200)"() { - expect(parse("actor.id:b82c4cfa428342ac822c42c1f6b89200")).to.deep.equal({ + assert.deepEqual(parse("actor.id:b82c4cfa428342ac822c42c1f6b89200"), { bool: { filter: [ { @@ -89,7 +89,7 @@ class QueryEventsTest { } @test public 'parse(actor.name:"Mario Nguyen")'() { - expect(parse(`actor.name:"Mario Nguyen"`)).to.deep.equal({ + assert.deepEqual(parse(`actor.name:"Mario Nguyen"`), { bool: { filter: [{ match: { "actor.name": "Mario Nguyen" } }], }, @@ -97,7 +97,7 @@ class QueryEventsTest { } @test public 'parse(description:"debit credit")'() { - expect(parse(`description:"debit credit"`)).to.deep.equal({ + assert.deepEqual(parse(`description:"debit credit"`), { bool: { filter: [{ match: { description: "debit credit" } }], }, @@ -105,7 +105,7 @@ class QueryEventsTest { } @test public 'parse(location:"Los Angeles")'() { - expect(parse(`location:"Los Angeles"`)).to.deep.equal({ + assert.deepEqual(parse(`location:"Los Angeles"`), { bool: { filter: [ { @@ -120,7 +120,7 @@ class QueryEventsTest { } @test public "parse(some free text)"() { - expect(parse("some free text")).to.deep.equal({ + assert.deepEqual(parse("some free text"), { bool: { filter: [ { @@ -135,7 +135,7 @@ class QueryEventsTest { } @test public "parse(action:login plus some free text)"() { - expect(parse("action:login plus some free text")).to.deep.equal({ + assert.deepEqual(parse("action:login plus some free text"), { bool: { filter: [ { match: { action: { query: "login", operator: "and" } } }, @@ -224,7 +224,7 @@ class QueryEventsTest { sort: [{ canonical_time: "asc" }], }, }; - expect(output).to.deep.equal(answer); + assert.deepEqual(output, answer); } } diff --git a/src/test/swagger.ts b/src/test/swagger.ts index 17ccae091..d15f0399c 100644 --- a/src/test/swagger.ts +++ b/src/test/swagger.ts @@ -1,6 +1,6 @@ import { suite, test } from "@testdeck/mocha"; -import { expect } from "chai"; import { ApiSpec, removeRoutesNotMatching, filterAndAssign } from "../swagger"; +import assert from "assert"; @suite class SwaggerTest { @@ -18,10 +18,8 @@ class SwaggerTest { removeRoutesNotMatching(swagger, /^\/publisher\/v1/); - let res = expect(swagger.paths["/admin/v1/project/{projectId}/apitoken"]) - .not.to.exist; - res = expect(swagger.paths["/publisher/v1/project/{projectId}/event"]).to - .exist; + let res = assert.strictEqual(swagger.paths["/admin/v1/project/{projectId}/apitoken"], undefined); + res = assert(swagger.paths["/publisher/v1/project/{projectId}/event"]); return res; } @@ -54,25 +52,17 @@ class SwaggerTest { filterAndAssign(swagger, specs); - let res = expect(specs[0].swagger.paths["/project/{projectId}/event"]).to - .exist; - res = expect(specs[0].swagger.paths["/project/{projectId}/apitoken"]).not.to - .exist; - res = expect(specs[0].swagger.basePath).to.equal("/publisher/v1"); - res = expect(specs[0].swagger.info.description).to.equal( - specs[0].description - ); - res = expect(specs[0].swagger.info.title).to.equal(specs[0].title); + let res = assert(specs[0].swagger.paths["/project/{projectId}/event"]); + res = assert.strictEqual(specs[0].swagger.paths["/project/{projectId}/apitoken"], undefined); + res = assert.strictEqual(specs[0].swagger.basePath, "/publisher/v1"); + res = assert.strictEqual(specs[0].swagger.info.description, specs[0].description); + res = assert.strictEqual(specs[0].swagger.info.title, specs[0].title); - res = expect(specs[1].swagger.paths["/project/{projectId}/event"]).not.to - .exist; - res = expect(specs[1].swagger.paths["/project/{projectId}/apitoken"]).to - .exist; - res = expect(specs[1].swagger.basePath).to.equal("/admin/v1"); - res = expect(specs[1].swagger.info.description).to.equal( - specs[1].description - ); - res = expect(specs[1].swagger.info.title).to.equal(specs[1].title); + res = assert.strictEqual(specs[1].swagger.paths["/project/{projectId}/event"], undefined); + res = assert(specs[1].swagger.paths["/project/{projectId}/apitoken"]); + res = assert.strictEqual(specs[1].swagger.basePath, "/admin/v1"); + res = assert.strictEqual(specs[1].swagger.info.description, specs[1].description); + res = assert.strictEqual(specs[1].swagger.info.title, specs[1].title); return res; } }