diff --git a/packages/bruno-app/src/components/RequestPane/GrpcBody/index.js b/packages/bruno-app/src/components/RequestPane/GrpcBody/index.js index 690bc32e8..499c235ac 100644 --- a/packages/bruno-app/src/components/RequestPane/GrpcBody/index.js +++ b/packages/bruno-app/src/components/RequestPane/GrpcBody/index.js @@ -41,8 +41,8 @@ const SingleGrpcMessage = ({ message, item, collection, index, methodType, isCol dispatch(updateRequestBody({ content: currentMessages, - itemUid: item.uid, - collectionUid: collection.uid + itemUid: item.uid, + collectionUid: collection.uid })); }; diff --git a/packages/bruno-lang/v2/src/bruToJson.js b/packages/bruno-lang/v2/src/bruToJson.js index b97d9068c..35018a910 100644 --- a/packages/bruno-lang/v2/src/bruToJson.js +++ b/packages/bruno-lang/v2/src/bruToJson.js @@ -1043,22 +1043,6 @@ const sem = grammar.createSemantics().addAttribute('ast', { const messageName = namePair ? namePair.value : ''; const messageContent = contentPair ? contentPair.value : ''; - try { - // Validate JSON by parsing (but don't modify the original string) - JSON.parse(messageContent); - } catch (error) { - console.error("Error validating gRPC message JSON:", error); - return { - body: { - mode: 'grpc', - grpc: [{ - name: messageName, - content: '{}' - }] - } - }; - } - return { body: { mode: 'grpc', diff --git a/packages/bruno-lang/v2/tests/bruToJson.spec.js b/packages/bruno-lang/v2/tests/bruToJson.spec.js index 6ad965771..718ce6e1b 100644 --- a/packages/bruno-lang/v2/tests/bruToJson.spec.js +++ b/packages/bruno-lang/v2/tests/bruToJson.spec.js @@ -39,6 +39,60 @@ settings { }); }); + describe('body:grpc', () => { + it('parses message content with name and content', () => { + const input = ` +body:grpc { + name: message 1 + content: ''' + {"foo":"bar"} + ''' +} +`; + + const expected = { + body: { + mode: 'grpc', + grpc: [ + { + content: '{"foo":"bar"}', + name: 'message 1' + } + ] + } + }; + + const output = parser(input); + expect(output).toEqual(expected); + }); + + it('parses message with variables in content', () => { + const input = ` +body:grpc { + name: message 1 + content: ''' + {"id":{{userId}},"name":"{{userName}}"} + ''' +} +`; + + const expected = { + body: { + mode: 'grpc', + grpc: [ + { + content: '{"id":{{userId}},"name":"{{userName}}"}', + name: 'message 1' + } + ] + } + }; + + const output = parser(input); + expect(output).toEqual(expected); + }); + }); + describe('multi-line values', () => { it('parses multi-line values in URL, headers, params, and vars', () => { const input = `