diff --git a/providers/openfeature-flagd-provider/lib/openfeature/flagd/provider/client.rb b/providers/openfeature-flagd-provider/lib/openfeature/flagd/provider/client.rb index 47db1a6..56fa3cd 100644 --- a/providers/openfeature-flagd-provider/lib/openfeature/flagd/provider/client.rb +++ b/providers/openfeature-flagd-provider/lib/openfeature/flagd/provider/client.rb @@ -98,7 +98,7 @@ def prepare_evaluation_context(evaluation_context) return nil unless evaluation_context fields = evaluation_context.fields - fields["targetingKey"] = fields.delete(:targeting_key) + fields["targetingKey"] = fields.delete("targeting_key") Google::Protobuf::Struct.from_hash(fields) end diff --git a/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider/client_spec.rb b/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider/client_spec.rb index 258f6a2..2d2687d 100644 --- a/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider/client_spec.rb +++ b/providers/openfeature-flagd-provider/spec/openfeature/flagd/provider/client_spec.rb @@ -92,4 +92,26 @@ ) end end + + context "EvaluationContext transformation" do + subject { client.send(:prepare_evaluation_context, evaluation_context) } + let(:evaluation_context) { OpenFeature::SDK::EvaluationContext.new(**fields) } + + context "No context" do + let(:evaluation_context) { nil } + + it do + expect(subject).to be nil + end + end + + context "targeting_key transformation to targetingKey" do + let(:fields) { {targeting_key: "example"} } + let(:expected) { Google::Protobuf::Struct.from_hash({targetingKey: "example"}.transform_keys(&:to_s)) } + + it do + expect(subject).to eq(expected) + end + end + end end