/** * Copyright (c) 2020 TypeFox 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); viewsdb = testContainer.get(UserMessageViewsDB); protected async getUserMessageViewsRepo(): Promise> { 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()