Skip to content

Commit 5e513f9

Browse files
committed
fix
1 parent aa9d7d1 commit 5e513f9

File tree

2 files changed

+46
-17
lines changed

2 files changed

+46
-17
lines changed

components/server/src/api/teams.spec.db.ts

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,66 @@ import { suite, test } from "mocha-typescript";
77
import { APIUserService } from "./user";
88
import { Container } from "inversify";
99
import { testContainer } from "@gitpod/gitpod-db/lib";
10+
import { API } from "./server";
11+
import * as http from "http";
12+
import { createConnectTransport } from "@bufbuild/connect-node";
13+
import { Code, ConnectError, PromiseClient, createPromiseClient } from "@bufbuild/connect";
14+
import { AddressInfo } from "net";
15+
import { TeamsService as TeamsServiceDefinition } from "@gitpod/public-api/lib/gitpod/experimental/v1/teams_connectweb";
1016
import { WorkspaceStarter } from "../workspace/workspace-starter";
1117
import { UserService } from "../user/user-service";
12-
import { BlockUserRequest, BlockUserResponse } from "@gitpod/public-api/lib/gitpod/experimental/v1/user_pb";
13-
import { User } from "@gitpod/gitpod-protocol";
14-
import { StopWorkspacePolicy } from "@gitpod/ws-manager/lib";
15-
import { Workspace } from "@gitpod/gitpod-protocol/lib/protocol";
16-
import { TraceContext } from "@gitpod/gitpod-protocol/lib/util/tracing";
17-
import { v4 as uuidv4 } from "uuid";
18-
import { ConnectError, Code } from "@bufbuild/connect";
18+
import { APITeamsService } from "./teams";
1919
import * as chai from "chai";
2020

2121
const expect = chai.expect;
2222

2323
@suite()
2424
export class APITeamsServiceSpec {
2525
private container: Container;
26+
private server: http.Server;
27+
28+
private client: PromiseClient<typeof TeamsServiceDefinition>;
2629

2730
async before() {
2831
this.container = testContainer.createChild();
32+
this.container.bind(API).toSelf().inSingletonScope();
2933
this.container.bind(APIUserService).toSelf().inSingletonScope();
34+
this.container.bind(APITeamsService).toSelf().inSingletonScope();
35+
36+
this.container.bind(WorkspaceStarter).toConstantValue({} as WorkspaceStarter);
37+
this.container.bind(UserService).toConstantValue({} as UserService);
38+
39+
this.server = this.container.get<API>(API).listen(0);
40+
41+
const address = this.server.address() as AddressInfo;
42+
const transport = createConnectTransport({
43+
baseUrl: `http://localhost:${address.port}`,
44+
httpVersion: "1.1",
45+
});
46+
47+
this.client = createPromiseClient(TeamsServiceDefinition, transport);
3048
}
3149

32-
@test async getTeam_respondsWithTeamMembersAndInvite() {
33-
const sut = this.container.get<APIUserService>(APIUserService);
50+
async after() {
51+
await new Promise((resolve, reject) => {
52+
this.server.close((err) => {
53+
if (err) {
54+
return reject(err);
55+
}
56+
resolve(null);
57+
});
58+
});
59+
}
3460

35-
const;
61+
@test async getTeam_rejectsMissingTeamID() {
62+
try {
63+
await this.client.getTeam({
64+
teamId: "",
65+
});
66+
expect.fail("getteam did not throw an exception");
67+
} catch (err) {
68+
expect(err).to.be.an.instanceof(ConnectError);
69+
expect(err.code).to.equal(Code.InvalidArgument);
70+
}
3671
}
3772
}

components/server/src/server.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,7 @@ import { WebhookEventGarbageCollector } from "./projects/webhook-event-garbage-c
5252
import { LivenessController } from "./liveness/liveness-controller";
5353
import { IamSessionApp } from "./iam/iam-session-app";
5454
import { LongRunningMigrationService } from "@gitpod/gitpod-db/lib/long-running-migration/long-running-migration";
55-
import { expressConnectMiddleware } from "@bufbuild/connect-express";
56-
import { UserService as UserServiceDefinition } from "@gitpod/public-api/lib/gitpod/experimental/v1/user_connectweb";
57-
import { TeamsService as TeamsServiceDefinition } from "@gitpod/public-api/lib/gitpod/experimental/v1/teams_connectweb";
58-
import { APIUserService } from "./api/user";
59-
import { ConnectRouter } from "@bufbuild/connect";
60-
import { APITeamsService } from "./api/teams";
61-
import { API, APIServer } from "./api/server";
55+
import { API } from "./api/server";
6256

6357
@injectable()
6458
export class Server<C extends GitpodClient, S extends GitpodServer> {

0 commit comments

Comments
 (0)