gitpod/components/gitpod-db/src/user-message-views-db.spec.db.ts
2022-12-08 13:05:19 -03:00

54 lines
1.7 KiB
TypeScript

/**
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
* Licensed under the GNU Affero General Public License (AGPL).
* See License.AGPL.txt in the project root for license information.
*/
import * as chai from "chai";
const expect = chai.expect;
import { suite, test, timeout } from "mocha-typescript";
import { testContainer } from "./test-container";
import { TypeORM } from "./typeorm/typeorm";
import { DBUserMessageViewEntry } from "./typeorm/entity/db-user-message-view-entry";
import { Repository } from "typeorm";
import { UserMessageViewsDB } from "./user-message-views-db";
@suite
class UserMessageViewsDBSpec {
typeORM = testContainer.get<TypeORM>(TypeORM);
viewsdb = testContainer.get<UserMessageViewsDB>(UserMessageViewsDB);
protected async getUserMessageViewsRepo(): Promise<Repository<DBUserMessageViewEntry>> {
return (await (await this.typeORM.getConnection()).manager).getRepository(DBUserMessageViewEntry);
}
async before() {
await this.wipeRepo();
}
async after() {
await this.wipeRepo();
}
async wipeRepo() {
const repo = await this.getUserMessageViewsRepo();
await repo.createQueryBuilder("view").delete().execute();
}
@test(timeout(10000))
public async testSimple11() {
const viewed = await this.viewsdb.didViewMessage("user1", "message1");
expect(viewed).to.be.false;
}
@test(timeout(10000))
public async testSimple2() {
await this.viewsdb.markAsViewed("user1", ["message1"]);
const viewed = await this.viewsdb.didViewMessage("user1", "message1");
expect(viewed).to.be.true;
}
}
module.exports = new UserMessageViewsDBSpec();