Skip to content

Commit e45b2d2

Browse files
Fixes tests
Signed-off-by: Elena Kolevska <[email protected]>
1 parent 0446f76 commit e45b2d2

File tree

5 files changed

+245
-147
lines changed

5 files changed

+245
-147
lines changed

src/implementation/Client/DaprClient.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ export default class DaprClient {
103103
switch (options.communicationProtocol) {
104104
case CommunicationProtocolEnum.GRPC: {
105105
const client = new GRPCClient(this.options);
106+
this.options.daprHost = client.options.daprHost;
107+
this.options.daprPort = client.options.daprPort;
106108
this.daprClient = client;
107109

108110
this.state = new GRPCClientState(client);
@@ -124,6 +126,8 @@ export default class DaprClient {
124126
case CommunicationProtocolEnum.HTTP:
125127
default: {
126128
const client = new HTTPClient(this.options);
129+
this.options.daprHost = client.options.daprHost;
130+
this.options.daprPort = client.options.daprPort;
127131
this.daprClient = client;
128132

129133
this.actor = new HTTPClientActor(client); // we use an abstractor here since we interface through a builder with the Actor Runtime

src/implementation/Client/HTTPClient/HTTPClient.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ export default class HTTPClient implements IClient {
8383
host = options?.daprHost ?? Settings.getDefaultHost();
8484
port = options?.daprPort ?? Settings.getDefaultPort(communicationProtocolEnum.HTTP);
8585
uri = `${host}:${port}`;
86-
} else if (Settings.getDefaultGrpcEndpoint() != "") {
87-
uri = Settings.getDefaultGrpcEndpoint();
86+
} else if (Settings.getDefaultHttpEndpoint() != "") {
87+
uri = Settings.getDefaultHttpEndpoint();
8888
}
8989

9090
return new HttpEndpoint(uri);

src/implementation/Server/DaprServer.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,38 @@ export default class DaprServer {
4848
constructor(serverOptions: Partial<DaprServerOptions> = {}) {
4949
const communicationProtocol = serverOptions.communicationProtocol ?? Settings.getDefaultCommunicationProtocol();
5050
const clientOptions = getClientOptions(serverOptions.clientOptions, communicationProtocol, serverOptions?.logger);
51+
52+
// Legacy validation on port
53+
// URI validation is done later, when we instantiate the HttpEndpoint or GrpcEndpoint
54+
// object in the HttpClient or GrpcClient constructor, but we need to
55+
// keep this additional check for backward compatibility
56+
// TODO: Remove this validation in the next major version
57+
if (clientOptions?.daprPort && !/^[0-9]+$/.test(clientOptions?.daprPort)) {
58+
throw new Error("DAPR_INCORRECT_SIDECAR_PORT");
59+
}
60+
61+
this.client = new DaprClient(clientOptions);
62+
5163
this.serverOptions = {
5264
serverHost: serverOptions.serverHost ?? Settings.getDefaultHost(),
5365
serverPort: serverOptions.serverPort ?? Settings.getDefaultAppPort(communicationProtocol),
5466
communicationProtocol: communicationProtocol,
5567
maxBodySizeMb: serverOptions.maxBodySizeMb,
5668
serverHttp: serverOptions.serverHttp,
57-
clientOptions: clientOptions,
69+
clientOptions: this.client.options,
5870
logger: serverOptions.logger,
5971
};
6072
// Create a client to interface with the sidecar from the server side
61-
this.client = new DaprClient(clientOptions);
6273

6374
// If DAPR_SERVER_PORT was not set, we set it
6475
process.env.DAPR_SERVER_PORT = this.serverOptions.serverPort;
65-
process.env.DAPR_CLIENT_PORT = clientOptions.daprPort;
76+
process.env.DAPR_CLIENT_PORT = this.client.options.daprPort;
6677

6778
// Validation on port
6879
if (!/^[0-9]+$/.test(this.serverOptions.serverPort)) {
6980
throw new Error("DAPR_INCORRECT_SERVER_PORT");
7081
}
7182

72-
if (clientOptions?.daprPort && !/^[0-9]+$/.test(clientOptions?.daprPort)) {
73-
throw new Error("DAPR_INCORRECT_SIDECAR_PORT");
74-
}
75-
7683
// Builder
7784
switch (serverOptions.communicationProtocol) {
7885
case CommunicationProtocolEnum.GRPC: {

test/e2e/common/client.test.ts

Lines changed: 0 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import {
2121
} from "../../../src";
2222
import { sleep } from "../../../src/utils/NodeJS.util";
2323
import { LockStatus } from "../../../src/types/lock/UnlockResponse";
24-
import { Settings } from "../../../src/utils/Settings.util";
2524

2625
const daprHost = "127.0.0.1";
2726
const daprGrpcPort = "50000";
@@ -558,128 +557,3 @@ describe("common/client", () => {
558557
});
559558
});
560559
});
561-
562-
describe("http/client with environment variables", () => {
563-
let client: DaprClient;
564-
565-
// We need to start listening on some endpoints already
566-
// this because Dapr is not dynamic and registers endpoints on boot
567-
// we put a timeout of 10s since it takes around 4s for Dapr to boot up
568-
569-
afterAll(async () => {
570-
await client.stop();
571-
});
572-
573-
it("should give preference to host and port in constructor arguments over endpoint environment variables ", async () => {
574-
process.env.DAPR_HTTP_ENDPOINT = "https://httpdomain.com";
575-
process.env.DAPR_GRPC_ENDPOINT = "https://grpcdomain.com";
576-
577-
client = new DaprClient({
578-
daprHost,
579-
daprPort: daprHttpPort,
580-
communicationProtocol: CommunicationProtocolEnum.HTTP,
581-
isKeepAlive: false,
582-
});
583-
584-
expect(client.options.daprHost).toEqual(daprHost);
585-
expect(client.options.daprPort).toEqual(daprHttpPort);
586-
587-
client = new DaprClient({
588-
daprHost,
589-
daprPort: daprGrpcPort,
590-
communicationProtocol: CommunicationProtocolEnum.GRPC,
591-
isKeepAlive: false,
592-
});
593-
594-
expect(client.options.daprHost).toEqual(daprHost);
595-
expect(client.options.daprPort).toEqual(daprGrpcPort);
596-
});
597-
598-
it("should give preference to port with no host in constructor arguments over environment variables ", async () => {
599-
process.env.DAPR_HTTP_ENDPOINT = "https://httpdomain.com";
600-
process.env.DAPR_GRPC_ENDPOINT = "https://grpcdomain.com";
601-
602-
client = new DaprClient({
603-
daprPort: daprHttpPort,
604-
communicationProtocol: CommunicationProtocolEnum.HTTP,
605-
isKeepAlive: false,
606-
});
607-
608-
expect(client.options.daprHost).toEqual(Settings.getDefaultHost());
609-
expect(client.options.daprPort).toEqual(daprHttpPort);
610-
611-
client = new DaprClient({
612-
daprPort: daprGrpcPort,
613-
communicationProtocol: CommunicationProtocolEnum.GRPC,
614-
isKeepAlive: false,
615-
});
616-
617-
expect(client.options.daprHost).toEqual(Settings.getDefaultHost());
618-
expect(client.options.daprPort).toEqual(daprGrpcPort);
619-
});
620-
621-
it("should give preference to host with no port in constructor arguments over environment variables ", async () => {
622-
process.env.DAPR_HTTP_ENDPOINT = "https://httpdomain.com";
623-
process.env.DAPR_GRPC_ENDPOINT = "https://grpcdomain.com";
624-
625-
client = new DaprClient({
626-
daprHost: daprHost,
627-
communicationProtocol: CommunicationProtocolEnum.HTTP,
628-
isKeepAlive: false,
629-
});
630-
631-
expect(client.options.daprHost).toEqual(daprHost);
632-
expect(client.options.daprPort).toEqual(Settings.getDefaultPort(CommunicationProtocolEnum.HTTP));
633-
634-
client = new DaprClient({
635-
daprHost: daprHost,
636-
communicationProtocol: CommunicationProtocolEnum.GRPC,
637-
isKeepAlive: false,
638-
});
639-
640-
expect(client.options.daprHost).toEqual(daprHost);
641-
expect(client.options.daprPort).toEqual(Settings.getDefaultPort(CommunicationProtocolEnum.GRPC));
642-
});
643-
644-
it("should use environment variable endpoint for HTTP", async () => {
645-
process.env.DAPR_HTTP_ENDPOINT = "https://httpdomain.com";
646-
client = new DaprClient({
647-
communicationProtocol: CommunicationProtocolEnum.HTTP,
648-
isKeepAlive: false,
649-
});
650-
651-
expect(client.options.daprHost).toEqual("https://httpdomain.com");
652-
expect(client.options.daprPort).toEqual("443");
653-
});
654-
655-
it("should use environment variable endpoint for GRPC", async () => {
656-
process.env.DAPR_GRPC_ENDPOINT = "https://grpcdomain.com";
657-
client = new DaprClient({
658-
communicationProtocol: CommunicationProtocolEnum.GRPC,
659-
isKeepAlive: false,
660-
});
661-
662-
expect(client.options.daprHost).toEqual("https://grpcdomain.com");
663-
expect(client.options.daprPort).toEqual("443");
664-
});
665-
666-
it("should use default host and port when no other parameters provided", async () => {
667-
process.env.DAPR_HTTP_ENDPOINT = "";
668-
process.env.DAPR_GRPC_ENDPOINT = "";
669-
client = new DaprClient({
670-
communicationProtocol: CommunicationProtocolEnum.HTTP,
671-
isKeepAlive: false,
672-
});
673-
674-
expect(client.options.daprHost).toEqual(Settings.getDefaultHost());
675-
expect(client.options.daprPort).toEqual(Settings.getDefaultPort(CommunicationProtocolEnum.HTTP));
676-
677-
client = new DaprClient({
678-
communicationProtocol: CommunicationProtocolEnum.GRPC,
679-
isKeepAlive: false,
680-
});
681-
682-
expect(client.options.daprHost).toEqual(Settings.getDefaultHost());
683-
expect(client.options.daprPort).toEqual(Settings.getDefaultPort(CommunicationProtocolEnum.GRPC));
684-
});
685-
});

0 commit comments

Comments
 (0)