Skip to content

Commit 59dd1d4

Browse files
committed
Handle absent trace in API Security sampling
1 parent 7e1f7f7 commit 59dd1d4

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

lib/datadog/appsec/api_security.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def self.sample?(request, response)
1616

1717
def self.sample_trace?(trace)
1818
# NOTE: Reads as "if trace is priority sampled or if in standalone mode"
19-
trace.priority_sampled? || !Datadog.configuration.apm.tracing.enabled
19+
trace&.priority_sampled? || !Datadog.configuration.apm.tracing.enabled
2020
end
2121
end
2222
end

spec/datadog/appsec/api_security_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@
5656
before { allow(trace).to receive(:priority_sampled?).and_return(false) }
5757

5858
it { expect(described_class.sample_trace?(trace)).to be(true) }
59+
60+
context 'when trace is not present' do
61+
it { expect(described_class.sample_trace?(nil)).to be(true) }
62+
end
5963
end
6064

6165
context 'when running in normal mode' do
@@ -77,6 +81,10 @@
7781

7882
it { expect(described_class.sample_trace?(trace)).to be(false) }
7983
end
84+
85+
context 'when trace is not present' do
86+
it { expect(described_class.sample_trace?(nil)).to be(false) }
87+
end
8088
end
8189
end
8290
end

0 commit comments

Comments
 (0)