diff --git a/lib/temporal/connection/converter/payload/proto_json.rb b/lib/temporal/connection/converter/payload/proto_json.rb index 6d952a60..cdbc36f9 100644 --- a/lib/temporal/connection/converter/payload/proto_json.rb +++ b/lib/temporal/connection/converter/payload/proto_json.rb @@ -25,7 +25,7 @@ def to_payload(data) 'encoding' => ENCODING, 'messageType' => data.class.descriptor.name, }, - data: data.to_json, + data: data.to_json.b, ) end end diff --git a/spec/unit/lib/temporal/connection/converter/payload/proto_json_spec.rb b/spec/unit/lib/temporal/connection/converter/payload/proto_json_spec.rb index 21111d5f..589c921f 100644 --- a/spec/unit/lib/temporal/connection/converter/payload/proto_json_spec.rb +++ b/spec/unit/lib/temporal/connection/converter/payload/proto_json_spec.rb @@ -15,6 +15,13 @@ expect(subject.from_payload(subject.to_payload(input))).to eq(input) end + + it 'encodes special characters' do + input = Temporalio::Api::Common::V1::Payload.new( + metadata: { 'it’ll work!' => 'bytebytebyte' }, + ) + expect(subject.from_payload(subject.to_payload(input))).to eq(input) + end end it 'skips if not proto message' do