From 985ad29724636ae66ec217f4075aa992b0925e06 Mon Sep 17 00:00:00 2001 From: Lain Soykaf Date: Tue, 27 Oct 2026 16:10:14 +0400 Subject: [PATCH] test(rate_limiter): use windows that cannot expire during the test The bucket entry expires one window after the first request. With a 50 or 80 ms window, a slow CI run could lose it between two requests, so inspect_bucket/3 returned {0, 5} (seen on #8021 with Elixir 1.17). The reset test expires the bucket itself, so a long window costs nothing. --- changelog.d/rate-limiter-test-flake.skip | 0 test/pleroma/web/plugs/rate_limiter_test.exs | 7 +++++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 changelog.d/rate-limiter-test-flake.skip diff --git a/changelog.d/rate-limiter-test-flake.skip b/changelog.d/rate-limiter-test-flake.skip new file mode 100644 index 000000000..e69de29bb diff --git a/test/pleroma/web/plugs/rate_limiter_test.exs b/test/pleroma/web/plugs/rate_limiter_test.exs index 10c93fa73..058c501f5 100644 --- a/test/pleroma/web/plugs/rate_limiter_test.exs +++ b/test/pleroma/web/plugs/rate_limiter_test.exs @@ -50,7 +50,9 @@ defmodule Pleroma.Web.Plugs.RateLimiterTest do test "it restricts based on config values" do limiter_name = :test_plug_opts - scale = 80 + # Long enough that the bucket cannot expire during the test on slow CI. + # The test expires it explicitly with expire_ttl/2. + scale = 60_000 limit = 5 clear_config([Pleroma.Web.Endpoint, :http, :ip], {127, 0, 0, 1}) @@ -184,7 +186,8 @@ defmodule Pleroma.Web.Plugs.RateLimiterTest do test "can have limits separate from unauthenticated connections" do limiter_name = :test_authenticated1 - scale = 50 + # Long enough that the bucket cannot expire during the test on slow CI. + scale = 60_000 limit = 5 clear_config([Pleroma.Web.Endpoint, :http, :ip], {8, 8, 8, 8}) clear_config([:rate_limit, limiter_name], [{1000, 1}, {scale, limit}])