From 31d22f5ae1f3427b01a904c8c66d9576d92d1783 Mon Sep 17 00:00:00 2001 From: Trevor Lund Date: Fri, 9 Feb 2024 15:06:28 -0600 Subject: [PATCH] Fix Configuration GRPC calls not sending metadata Signed-off-by: Trevor Lund --- src/implementation/Client/GRPCClient/configuration.ts | 4 +++- test/e2e/grpc/client.test.ts | 7 ++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/implementation/Client/GRPCClient/configuration.ts b/src/implementation/Client/GRPCClient/configuration.ts index 932b9fb0..7cc0d527 100644 --- a/src/implementation/Client/GRPCClient/configuration.ts +++ b/src/implementation/Client/GRPCClient/configuration.ts @@ -28,7 +28,7 @@ import { SubscribeConfigurationResponse as SubscribeConfigurationResponseResult import { SubscribeConfigurationCallback } from "../../../types/configuration/SubscribeConfigurationCallback"; import { SubscribeConfigurationStream } from "../../../types/configuration/SubscribeConfigurationStream"; import { ConfigurationItem } from "../../../types/configuration/ConfigurationItem"; -import { createConfigurationType } from "../../../utils/Client.util"; +import { addMetadataToMap, createConfigurationType } from "../../../utils/Client.util"; export default class GRPCClientConfiguration implements IClientConfiguration { client: GRPCClient; @@ -51,6 +51,7 @@ export default class GRPCClientConfiguration implements IClientConfiguration { for (const [key, value] of Object.entries(metadataObj)) { metadata.add(key, value); } + addMetadataToMap(msg.getMetadataMap(), metadataObj); } const client = await this.client.getClient(); @@ -114,6 +115,7 @@ export default class GRPCClientConfiguration implements IClientConfiguration { for (const [key, value] of Object.entries(metadataObj)) { metadata.add(key, value); } + addMetadataToMap(msg.getMetadataMap(), metadataObj); } const client = await this.client.getClient(); diff --git a/test/e2e/grpc/client.test.ts b/test/e2e/grpc/client.test.ts index 501a4519..c5eb7ae7 100644 --- a/test/e2e/grpc/client.test.ts +++ b/test/e2e/grpc/client.test.ts @@ -363,14 +363,11 @@ describe("grpc/client", () => { }); it("should be able to get the configuration items with metadata", async () => { - await client.configuration.get("config-redis", ["myconfigkey1"], { + const conf = await client.configuration.get("config-redis", ["myconfigkey1"], { hello: "world", }); - // Disabled for now as I am unsure if Dapr returns the metadata items - // Java SDK: https://github.com/dapr/java-sdk/blob/06d92dafca62a6b48e74ccf939feeac7189e360f/sdk/src/test/java/io/dapr/client/DaprPreviewClientGrpcTest.java#L119 - // ^ shows that it is not being tested, it tries but doesn't assert - // expect(conf.items.filter(i => i.key == "myconfigkey1")[0].metadata).toHaveProperty("hello"); + expect(conf.items["myconfigkey1"].metadata).toHaveProperty("hello"); }); it("should be able to subscribe to configuration item changes on all keys", async () => {