Skip to content

Commit

Permalink
perf: plug leaks in server/routes
Browse files Browse the repository at this point in the history
  • Loading branch information
apoorv-mishra committed Aug 10, 2022
1 parent d28ea65 commit dd590ff
Show file tree
Hide file tree
Showing 23 changed files with 161 additions and 85 deletions.
9 changes: 6 additions & 3 deletions server/routes/api/attachments.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@ import {
buildAttachment,
buildDocument,
} from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

jest.mock("@server/utils/s3");

const db = getTestDatabase();
const server = getTestServer();

jest.mock("@server/utils/s3");
afterAll(server.disconnect);

beforeEach(() => flushdb());
beforeEach(db.flush);

describe("#attachments.create", () => {
it("should require authentication", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/auth.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import sharedEnv from "@shared/env";
import env from "@server/env";
import { buildUser, buildTeam } from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#auth.info", () => {
it("should return current authentication", async () => {
Expand Down
7 changes: 5 additions & 2 deletions server/routes/api/authenticationProviders.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import { v4 as uuidv4 } from "uuid";
import { buildUser, buildAdmin, buildTeam } from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();

beforeEach(() => flushdb());
afterAll(server.disconnect);

beforeEach(db.flush);

describe("#authenticationProviders.info", () => {
it("should return auth provider", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/collections.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@ import {
buildCollection,
buildDocument,
} from "@server/test/factories";
import { flushdb, seed, getTestServer } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#collections.list", () => {
it("should require authentication", async () => {
Expand Down
7 changes: 5 additions & 2 deletions server/routes/api/cron.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();

beforeEach(() => flushdb());
afterAll(server.disconnect);

beforeEach(db.flush);

describe("#cron.daily", () => {
it("should require authentication", async () => {
Expand Down
14 changes: 6 additions & 8 deletions server/routes/api/documents.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,14 @@ import {
buildDocument,
buildViewer,
} from "@server/test/factories";
import {
flushdb,
seed,
getTestServer,
disconnectdb,
} from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
afterAll(() => disconnectdb().then(() => server.close()));
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#documents.info", () => {
it("should return published document", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/events.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { buildEvent, buildUser } from "@server/test/factories";
import { flushdb, seed, getTestServer } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#events.list", () => {
it("should only return activity events", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/fileOperations.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,17 @@ import {
buildTeam,
buildUser,
} from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";

import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();

jest.mock("@server/utils/s3");

beforeEach(() => flushdb());
afterAll(server.disconnect);

beforeEach(db.flush);

describe("#fileOperations.info", () => {
it("should return fileOperation", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/groups.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import { Event } from "@server/models";
import { buildUser, buildAdmin, buildGroup } from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#groups.create", () => {
it("should create a group", async () => {
Expand Down
12 changes: 8 additions & 4 deletions server/routes/api/hooks.test.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
import env from "@server/env";
import { IntegrationAuthentication, SearchQuery } from "@server/models";
import { buildDocument, buildIntegration } from "@server/test/factories";
import { flushdb, seed, getTestServer } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";
import * as Slack from "@server/utils/slack";

const server = getTestServer();
beforeEach(() => flushdb());

jest.mock("../../utils/slack", () => ({
post: jest.fn(),
}));

const db = getTestDatabase();
const server = getTestServer();

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#hooks.unfurl", () => {
it("should return documents", async () => {
const { user, document } = await seed();
Expand Down
7 changes: 5 additions & 2 deletions server/routes/api/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();

beforeEach(() => flushdb());
afterAll(server.disconnect);

beforeEach(db.flush);

describe("POST unknown endpoint", () => {
it("should be not found", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/integrations.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ import {
buildUser,
buildIntegration,
} from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";

import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();

beforeEach(() => flushdb());
afterAll(server.disconnect);

beforeEach(db.flush);

describe("#integrations.update", () => {
it("should allow updating integration events", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/middlewares/pagination.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { flushdb, seed, getTestServer } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#pagination", () => {
it("should allow offset and limit", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/revisions.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import { Revision } from "@server/models";
import { buildDocument, buildUser } from "@server/test/factories";
import { flushdb, seed, getTestServer } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#revisions.info", () => {
it("should return a document revision", async () => {
Expand Down
9 changes: 7 additions & 2 deletions server/routes/api/shares.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@ import {
buildAdmin,
buildCollection,
} from "@server/test/factories";
import { flushdb, seed, getTestServer } from "@server/test/support";

import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#shares.list", () => {
it("should only return shares created by user", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/stars.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { buildUser, buildStar, buildDocument } from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#stars.create", () => {
it("should create a star", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/team.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import { TeamDomain } from "@server/models";
import { buildAdmin, buildCollection, buildTeam } from "@server/test/factories";
import { flushdb, seed, getTestServer } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#team.update", () => {
it("should update team details", async () => {
Expand Down
13 changes: 6 additions & 7 deletions server/routes/api/users.test.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
import TestServer from "fetch-test-server";
import webService from "@server/services/web";
import { buildTeam, buildAdmin, buildUser } from "@server/test/factories";
import { flushdb, seed } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const app = webService();
const server = new TestServer(app.callback());
beforeEach(() => flushdb());
const db = getTestDatabase();
const server = getTestServer();

beforeAll(() => {
jest.useFakeTimers().setSystemTime(new Date("2018-01-02T00:00:00.000Z"));
});
afterAll(() => {
jest.useRealTimers();
return server.close();
server.disconnect();
});

beforeEach(db.flush);

describe("#users.list", () => {
it("should allow filtering by user name", async () => {
const user = await buildUser({
Expand Down
8 changes: 6 additions & 2 deletions server/routes/api/views.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import { View, CollectionUser } from "@server/models";
import { buildUser } from "@server/test/factories";
import { flushdb, seed, getTestServer } from "@server/test/support";
import { seed, getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("#views.list", () => {
it("should return views for a document", async () => {
Expand Down
7 changes: 5 additions & 2 deletions server/routes/auth/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import { buildUser, buildCollection } from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();

beforeEach(() => flushdb());
afterAll(server.disconnect);

beforeEach(db.flush);

describe("auth/redirect", () => {
it("should redirect to home", async () => {
Expand Down
7 changes: 5 additions & 2 deletions server/routes/auth/providers/email.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@ import SigninEmail from "@server/emails/templates/SigninEmail";
import WelcomeEmail from "@server/emails/templates/WelcomeEmail";
import env from "@server/env";
import { buildUser, buildGuestUser, buildTeam } from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();

beforeEach(() => flushdb());
afterAll(server.disconnect);

beforeEach(db.flush);

describe("email", () => {
it("should require email param", async () => {
Expand Down
8 changes: 6 additions & 2 deletions server/routes/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { buildShare, buildDocument } from "@server/test/factories";
import { flushdb, getTestServer } from "@server/test/support";
import { getTestDatabase, getTestServer } from "@server/test/support";

const db = getTestDatabase();
const server = getTestServer();
beforeEach(() => flushdb());

afterAll(server.disconnect);

beforeEach(db.flush);

describe("/share/:id", () => {
it("should return standard title in html when loading unpublished share", async () => {
Expand Down

0 comments on commit dd590ff

Please sign in to comment.