From 72d1d9236cd1f193b2e4136d8205ff733e122e8a Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Wed, 16 Sep 2026 16:22:54 +0200 Subject: [PATCH] Default AnalyticsTrendsParameter interval to 1d GET /v1/analytics/trends/tests rejects requests with a 422 when `interval` is omitted, even though the docs list it as optional with a default of 1d. Default it client-side to match the documented behavior, the same way TestResultParameter.Builder already defaults `size`. Verified against the live API (both start/end and time_range paths); this was breaking the getTestTrendsTest integration test in CI on every PR since #629 merged. Co-Authored-By: Claude Sonnet 5 --- .../model/insights/AnalyticsTrendsParameter.java | 3 +++ .../saucerest/unit/AnalyticsTrendsParameterTest.java | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/com/saucelabs/saucerest/model/insights/AnalyticsTrendsParameter.java b/src/main/java/com/saucelabs/saucerest/model/insights/AnalyticsTrendsParameter.java index 2d85bc08..fcfc551a 100644 --- a/src/main/java/com/saucelabs/saucerest/model/insights/AnalyticsTrendsParameter.java +++ b/src/main/java/com/saucelabs/saucerest/model/insights/AnalyticsTrendsParameter.java @@ -143,6 +143,9 @@ public AnalyticsTrendsParameter build() { if (isTimeRangeUsed && isStartEndUsed) { throw new IllegalStateException("Only one of 'time_range' or 'start' and 'end' can be set, not both."); } + if (interval == null) { + interval = Interval.ONE_DAY; + } return new AnalyticsTrendsParameter(this); } diff --git a/src/test/java/com/saucelabs/saucerest/unit/AnalyticsTrendsParameterTest.java b/src/test/java/com/saucelabs/saucerest/unit/AnalyticsTrendsParameterTest.java index dee4b014..28ab35bd 100644 --- a/src/test/java/com/saucelabs/saucerest/unit/AnalyticsTrendsParameterTest.java +++ b/src/test/java/com/saucelabs/saucerest/unit/AnalyticsTrendsParameterTest.java @@ -28,4 +28,14 @@ public void testToMapWithTimeRange() { public void testBuildThrowsWhenNeitherTimeRangeNorStartEndSet() { assertThrows(IllegalStateException.class, () -> new AnalyticsTrendsParameter.Builder().build()); } + + @Test + public void testToMapDefaultsIntervalWhenNotSet() { + AnalyticsTrendsParameter params = new AnalyticsTrendsParameter.Builder() + .setTimeRange(new TimeRange(1, Unit.H)) + .build(); + + Map map = params.toMap(); + assertEquals("1d", map.get("interval")); + } }