Skip to content

Commit bfcd007

Browse files
feat(emulation): sync emulation targets with wreq-util 3.0.0-rc.10
Add 9 net-new variants (Chrome144/145, Edge143-145, Firefox147, Safari17_6, OkHttp3_9/3_11) and fix 16 missing const_set registrations (Chrome143, Edge135-142, Firefox144-146, Safari26_1/26_2, SafariIos26_2, SafariIpad26_2) that caused silent nil fallback. Add smoke test to prevent future drift between macro and const_set.
1 parent 91066de commit bfcd007

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

lib/wreq_ruby/emulation.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ class EmulationDevice
4848
Chrome141 = nil
4949
Chrome142 = nil
5050
Chrome143 = nil
51+
Chrome144 = nil
52+
Chrome145 = nil
5153
Edge101 = nil
5254
Edge122 = nil
5355
Edge127 = nil
@@ -61,6 +63,9 @@ class EmulationDevice
6163
Edge140 = nil
6264
Edge141 = nil
6365
Edge142 = nil
66+
Edge143 = nil
67+
Edge144 = nil
68+
Edge145 = nil
6469
Firefox109 = nil
6570
Firefox117 = nil
6671
Firefox128 = nil
@@ -76,6 +81,7 @@ class EmulationDevice
7681
Firefox144 = nil
7782
Firefox145 = nil
7883
Firefox146 = nil
84+
Firefox147 = nil
7985
SafariIos17_2 = nil
8086
SafariIos17_4_1 = nil
8187
SafariIos16_5 = nil
@@ -88,6 +94,7 @@ class EmulationDevice
8894
Safari17_2_1 = nil
8995
Safari17_4_1 = nil
9096
Safari17_5 = nil
97+
Safari17_6 = nil
9198
Safari18 = nil
9299
SafariIPad18 = nil
93100
Safari18_2 = nil
@@ -102,6 +109,8 @@ class EmulationDevice
102109
SafariIos26_2 = nil
103110
SafariIPad26 = nil
104111
SafariIpad26_2 = nil
112+
OkHttp3_9 = nil
113+
OkHttp3_11 = nil
105114
OkHttp3_13 = nil
106115
OkHttp3_14 = nil
107116
OkHttp4_9 = nil

src/emulation.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ define_ruby_enum!(
4444
Chrome141,
4545
Chrome142,
4646
Chrome143,
47+
Chrome144,
48+
Chrome145,
4749
Edge101,
4850
Edge122,
4951
Edge127,
@@ -57,6 +59,9 @@ define_ruby_enum!(
5759
Edge140,
5860
Edge141,
5961
Edge142,
62+
Edge143,
63+
Edge144,
64+
Edge145,
6065
Firefox109,
6166
Firefox117,
6267
Firefox128,
@@ -72,6 +77,7 @@ define_ruby_enum!(
7277
Firefox144,
7378
Firefox145,
7479
Firefox146,
80+
Firefox147,
7581
SafariIos17_2,
7682
SafariIos17_4_1,
7783
SafariIos16_5,
@@ -84,6 +90,7 @@ define_ruby_enum!(
8490
Safari17_2_1,
8591
Safari17_4_1,
8692
Safari17_5,
93+
Safari17_6,
8794
Safari18,
8895
SafariIPad18,
8996
Safari18_2,
@@ -98,6 +105,8 @@ define_ruby_enum!(
98105
SafariIos26_2,
99106
SafariIPad26,
100107
SafariIpad26_2,
108+
OkHttp3_9,
109+
OkHttp3_11,
101110
OkHttp3_13,
102111
OkHttp3_14,
103112
OkHttp4_9,
@@ -217,11 +226,25 @@ pub fn include(ruby: &Ruby, gem_module: &RModule) -> Result<(), Error> {
217226
emulation_class.const_set("Chrome140", EmulationDevice::Chrome140)?;
218227
emulation_class.const_set("Chrome141", EmulationDevice::Chrome141)?;
219228
emulation_class.const_set("Chrome142", EmulationDevice::Chrome142)?;
229+
emulation_class.const_set("Chrome143", EmulationDevice::Chrome143)?;
230+
emulation_class.const_set("Chrome144", EmulationDevice::Chrome144)?;
231+
emulation_class.const_set("Chrome145", EmulationDevice::Chrome145)?;
220232
emulation_class.const_set("Edge101", EmulationDevice::Edge101)?;
221233
emulation_class.const_set("Edge122", EmulationDevice::Edge122)?;
222234
emulation_class.const_set("Edge127", EmulationDevice::Edge127)?;
223235
emulation_class.const_set("Edge131", EmulationDevice::Edge131)?;
224236
emulation_class.const_set("Edge134", EmulationDevice::Edge134)?;
237+
emulation_class.const_set("Edge135", EmulationDevice::Edge135)?;
238+
emulation_class.const_set("Edge136", EmulationDevice::Edge136)?;
239+
emulation_class.const_set("Edge137", EmulationDevice::Edge137)?;
240+
emulation_class.const_set("Edge138", EmulationDevice::Edge138)?;
241+
emulation_class.const_set("Edge139", EmulationDevice::Edge139)?;
242+
emulation_class.const_set("Edge140", EmulationDevice::Edge140)?;
243+
emulation_class.const_set("Edge141", EmulationDevice::Edge141)?;
244+
emulation_class.const_set("Edge142", EmulationDevice::Edge142)?;
245+
emulation_class.const_set("Edge143", EmulationDevice::Edge143)?;
246+
emulation_class.const_set("Edge144", EmulationDevice::Edge144)?;
247+
emulation_class.const_set("Edge145", EmulationDevice::Edge145)?;
225248
emulation_class.const_set("Firefox109", EmulationDevice::Firefox109)?;
226249
emulation_class.const_set("Firefox117", EmulationDevice::Firefox117)?;
227250
emulation_class.const_set("Firefox128", EmulationDevice::Firefox128)?;
@@ -234,6 +257,10 @@ pub fn include(ruby: &Ruby, gem_module: &RModule) -> Result<(), Error> {
234257
emulation_class.const_set("Firefox139", EmulationDevice::Firefox139)?;
235258
emulation_class.const_set("Firefox142", EmulationDevice::Firefox142)?;
236259
emulation_class.const_set("Firefox143", EmulationDevice::Firefox143)?;
260+
emulation_class.const_set("Firefox144", EmulationDevice::Firefox144)?;
261+
emulation_class.const_set("Firefox145", EmulationDevice::Firefox145)?;
262+
emulation_class.const_set("Firefox146", EmulationDevice::Firefox146)?;
263+
emulation_class.const_set("Firefox147", EmulationDevice::Firefox147)?;
237264
emulation_class.const_set("SafariIos17_2", EmulationDevice::SafariIos17_2)?;
238265
emulation_class.const_set("SafariIos17_4_1", EmulationDevice::SafariIos17_4_1)?;
239266
emulation_class.const_set("SafariIos16_5", EmulationDevice::SafariIos16_5)?;
@@ -246,6 +273,7 @@ pub fn include(ruby: &Ruby, gem_module: &RModule) -> Result<(), Error> {
246273
emulation_class.const_set("Safari17_2_1", EmulationDevice::Safari17_2_1)?;
247274
emulation_class.const_set("Safari17_4_1", EmulationDevice::Safari17_4_1)?;
248275
emulation_class.const_set("Safari17_5", EmulationDevice::Safari17_5)?;
276+
emulation_class.const_set("Safari17_6", EmulationDevice::Safari17_6)?;
249277
emulation_class.const_set("Safari18", EmulationDevice::Safari18)?;
250278
emulation_class.const_set("SafariIPad18", EmulationDevice::SafariIPad18)?;
251279
emulation_class.const_set("Safari18_2", EmulationDevice::Safari18_2)?;
@@ -254,8 +282,14 @@ pub fn include(ruby: &Ruby, gem_module: &RModule) -> Result<(), Error> {
254282
emulation_class.const_set("SafariIos18_1_1", EmulationDevice::SafariIos18_1_1)?;
255283
emulation_class.const_set("Safari18_5", EmulationDevice::Safari18_5)?;
256284
emulation_class.const_set("Safari26", EmulationDevice::Safari26)?;
285+
emulation_class.const_set("Safari26_1", EmulationDevice::Safari26_1)?;
286+
emulation_class.const_set("Safari26_2", EmulationDevice::Safari26_2)?;
257287
emulation_class.const_set("SafariIos26", EmulationDevice::SafariIos26)?;
288+
emulation_class.const_set("SafariIos26_2", EmulationDevice::SafariIos26_2)?;
258289
emulation_class.const_set("SafariIPad26", EmulationDevice::SafariIPad26)?;
290+
emulation_class.const_set("SafariIpad26_2", EmulationDevice::SafariIpad26_2)?;
291+
emulation_class.const_set("OkHttp3_9", EmulationDevice::OkHttp3_9)?;
292+
emulation_class.const_set("OkHttp3_11", EmulationDevice::OkHttp3_11)?;
259293
emulation_class.const_set("OkHttp3_13", EmulationDevice::OkHttp3_13)?;
260294
emulation_class.const_set("OkHttp3_14", EmulationDevice::OkHttp3_14)?;
261295
emulation_class.const_set("OkHttp4_9", EmulationDevice::OkHttp4_9)?;

test/emulation_test.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# frozen_string_literal: true
2+
3+
require "test_helper"
4+
5+
class EmulationTest < Minitest::Test
6+
def test_all_emulation_device_constants_are_non_nil
7+
Wreq::EmulationDevice.constants.each do |name|
8+
const = Wreq::EmulationDevice.const_get(name)
9+
assert_instance_of Wreq::EmulationDevice, const,
10+
"#{name} should be EmulationDevice, got #{const.inspect}"
11+
end
12+
end
13+
14+
def test_all_emulation_os_constants_are_non_nil
15+
Wreq::EmulationOS.constants.each do |name|
16+
const = Wreq::EmulationOS.const_get(name)
17+
assert_instance_of Wreq::EmulationOS, const,
18+
"#{name} should be EmulationOS, got #{const.inspect}"
19+
end
20+
end
21+
end

0 commit comments

Comments
 (0)