Path: blob/main/components/gitpod-db/src/blocked-repository-db.spec.db.ts
2497 views
/**1* Copyright (c) 2022 Gitpod GmbH. All rights reserved.2* Licensed under the GNU Affero General Public License (AGPL).3* See License.AGPL.txt in the project root for license information.4*/56import * as chai from "chai";7const expect = chai.expect;8import { suite, test, timeout } from "@testdeck/mocha";910import { testContainer } from "./test-container";11import { TypeORMBlockedRepositoryDBImpl } from "./typeorm/blocked-repository-db-impl";12import { TypeORM } from "./typeorm/typeorm";13import { resetDB } from "./test/reset-db";1415@suite16class BlockedRepositoryDBSpec {17blockedRepositoryDb = testContainer.get<TypeORMBlockedRepositoryDBImpl>(TypeORMBlockedRepositoryDBImpl);1819async before() {20await this.wipeRepo();21}2223async after() {24await this.wipeRepo();25}2627@test(timeout(10000))28public async canCreateABlockedRepository() {29const blockedRepository = await this.blockedRepositoryDb.createBlockedRepository(30"github.com/bob/some-repo",31true,32false,33);34expect(blockedRepository.urlRegexp).eq("github.com/bob/some-repo");35expect(blockedRepository.blockUser).eq(true);36}3738@test(timeout(10000))39public async checkRepositoryIsBlocked() {40await this.blockedRepositoryDb.createBlockedRepository("github.com/bob/.*", true, false);4142const blockedRepository = await this.blockedRepositoryDb.findBlockedRepositoryByURL("github.com/bob/some-repo");4344expect(blockedRepository).not.undefined;45expect(blockedRepository?.urlRegexp).to.eq("github.com/bob/.*");46expect(blockedRepository?.blockUser).to.eq(true);47}4849@test(timeout(10000))50public async checkRepositoryIsNotBlocked() {51await this.blockedRepositoryDb.createBlockedRepository("github.com/bob/.*", true, false);5253const blockedRepository = await this.blockedRepositoryDb.findBlockedRepositoryByURL(54"github.com/alice/some-repo",55);5657expect(blockedRepository).undefined;58}5960@test(timeout(10000))61public async canFindAllRepositoriesWithoutSearchTerm() {62await this.blockedRepositoryDb.createBlockedRepository("github.com/bob/.*", true, false);63await this.blockedRepositoryDb.createBlockedRepository("github.com/alice/.*", true, false);6465const blockedRepositories = await this.blockedRepositoryDb.findAllBlockedRepositories(0, 1, "id", "ASC");6667expect(blockedRepositories.total).eq(2);68}6970@test(timeout(10000))71public async canFindAllRepositoriesWithSearchTerm() {72await this.blockedRepositoryDb.createBlockedRepository("github.com/bob/.*", true, false);73await this.blockedRepositoryDb.createBlockedRepository("github.com/alice/.*", true, false);7475const blockedRepositories = await this.blockedRepositoryDb.findAllBlockedRepositories(0, 1, "id", "ASC", "bob");7677expect(blockedRepositories.total).eq(1);78}7980async wipeRepo() {81const typeorm = testContainer.get<TypeORM>(TypeORM);82await resetDB(typeorm);83}84}8586module.exports = new BlockedRepositoryDBSpec();878889