|
132 | 132 | expect(subject.get_dynamic_sampling_context).to eq(subject.get_baggage.dynamic_sampling_context) |
133 | 133 | end |
134 | 134 | end |
| 135 | + |
| 136 | + describe ".extract_sentry_trace" do |
| 137 | + it "extracts valid sentry-trace without whitespace" do |
| 138 | + sentry_trace = "771a43a4192642f0b136d5159a501700-7c51afd529da4a2a-1" |
| 139 | + result = described_class.extract_sentry_trace(sentry_trace) |
| 140 | + |
| 141 | + expect(result).to eq(["771a43a4192642f0b136d5159a501700", "7c51afd529da4a2a", true]) |
| 142 | + end |
| 143 | + |
| 144 | + it "extracts valid sentry-trace with leading and trailing whitespace" do |
| 145 | + sentry_trace = " \t771a43a4192642f0b136d5159a501700-7c51afd529da4a2a-1\t " |
| 146 | + result = described_class.extract_sentry_trace(sentry_trace) |
| 147 | + |
| 148 | + expect(result).to eq(["771a43a4192642f0b136d5159a501700", "7c51afd529da4a2a", true]) |
| 149 | + end |
| 150 | + |
| 151 | + it "extracts sentry-trace without sampled flag" do |
| 152 | + sentry_trace = "771a43a4192642f0b136d5159a501700-7c51afd529da4a2a" |
| 153 | + result = described_class.extract_sentry_trace(sentry_trace) |
| 154 | + |
| 155 | + expect(result).to eq(["771a43a4192642f0b136d5159a501700", "7c51afd529da4a2a", nil]) |
| 156 | + end |
| 157 | + |
| 158 | + it "returns nil for invalid sentry-trace" do |
| 159 | + expect(described_class.extract_sentry_trace("invalid")).to be_nil |
| 160 | + expect(described_class.extract_sentry_trace("000-000-0")).to be_nil |
| 161 | + expect(described_class.extract_sentry_trace("")).to be_nil |
| 162 | + end |
| 163 | + |
| 164 | + it "allows whitespace" do |
| 165 | + whitespace = " \t \t \t \t " |
| 166 | + sentry_trace = "#{whitespace}771a43a4192642f0b136d5159a501700-7c51afd529da4a2a-1#{whitespace}" |
| 167 | + result = described_class.extract_sentry_trace(sentry_trace) |
| 168 | + |
| 169 | + expect(result).to eq(["771a43a4192642f0b136d5159a501700", "7c51afd529da4a2a", true]) |
| 170 | + end |
| 171 | + end |
135 | 172 | end |
0 commit comments