@@ -147,12 +147,10 @@ defmodule Realtime.Extensions.CdcRlsTest do
147147 PostgresCdcRls . handle_after_connect ( { :manager_pid , self ( ) } , postgres_extension , % { } , external_id )
148148 end
149149
150- Process . sleep ( 1200 )
151-
152150 rate = Realtime.Tenants . subscription_errors_per_second_rate ( external_id , 4 )
153151
154152 assert { :ok , % RateCounter { id: { :channel , :subscription_errors , ^ external_id } , sum: 6 , limit: % { triggered: true } } } =
155- RateCounter . get ( rate )
153+ RateCounterHelper . tick! ( rate )
156154
157155 # It won't even be called now
158156 reject ( & Subscriptions . create / 5 )
@@ -238,11 +236,6 @@ defmodule Realtime.Extensions.CdcRlsTest do
238236
239237 assert_receive { :socket_push , :text , data } , 5000
240238
241- message =
242- data
243- |> IO . iodata_to_binary ( )
244- |> Jason . decode! ( )
245-
246239 assert % {
247240 "event" => "postgres_changes" ,
248241 "payload" => % {
@@ -259,14 +252,12 @@ defmodule Realtime.Extensions.CdcRlsTest do
259252 } ,
260253 "ref" => nil ,
261254 "topic" => "realtime:test"
262- } = message
263-
264- # Wait for RateCounter to update
265- Process . sleep ( 2000 )
255+ } = Jason . decode! ( data )
266256
267257 rate = Realtime.Tenants . db_events_per_second_rate ( tenant )
268258
269- assert { :ok , % RateCounter { id: { :channel , :db_events , "dev_tenant" } , bucket: bucket } } = RateCounter . get ( rate )
259+ assert { :ok , % RateCounter { id: { :channel , :db_events , "dev_tenant" } , bucket: bucket } } =
260+ RateCounterHelper . tick! ( rate )
270261
271262 assert Enum . sum ( bucket ) == 1
272263
@@ -297,15 +288,16 @@ defmodule Realtime.Extensions.CdcRlsTest do
297288 { :ok , _ } = PostgresCdcRls . handle_after_connect ( response , postgres_extension , pg_change_params , external_id )
298289 assert % Postgrex.Result { rows: [ [ 1 ] ] } = Postgrex . query! ( conn , "select count(*) from realtime.subscription" , [ ] )
299290
291+ rate = Realtime.Tenants . db_events_per_second_rate ( tenant )
292+
300293 log =
301294 capture_log ( fn ->
302295 # increment artifically the counter to reach the limit
303296 tenant . external_id
304297 |> Realtime.Tenants . db_events_per_second_key ( )
305298 |> Realtime.GenCounter . add ( 100_000_000 )
306299
307- # Wait for RateCounter to update
308- Process . sleep ( 1500 )
300+ RateCounterHelper . tick! ( rate )
309301 end )
310302
311303 assert log =~ "MessagePerSecondRateLimitReached: Too many postgres changes messages per second"
@@ -315,13 +307,8 @@ defmodule Realtime.Extensions.CdcRlsTest do
315307
316308 refute_receive { :socket_push , :text , _ } , 5000
317309
318- # Wait for RateCounter to update
319- Process . sleep ( 2000 )
320-
321- rate = Realtime.Tenants . db_events_per_second_rate ( tenant )
322-
323310 assert { :ok , % RateCounter { id: { :channel , :db_events , "dev_tenant" } , bucket: bucket , limit: % { triggered: true } } } =
324- RateCounter . get ( rate )
311+ RateCounterHelper . tick! ( rate )
325312
326313 # Nothing has changed
327314 assert Enum . sum ( bucket ) == 100_000_000
@@ -371,11 +358,6 @@ defmodule Realtime.Extensions.CdcRlsTest do
371358
372359 assert_receive { :socket_push , :text , data } , 5000
373360
374- message =
375- data
376- |> IO . iodata_to_binary ( )
377- |> Jason . decode! ( )
378-
379361 assert % {
380362 "event" => "postgres_changes" ,
381363 "payload" => % {
@@ -392,7 +374,7 @@ defmodule Realtime.Extensions.CdcRlsTest do
392374 } ,
393375 "ref" => nil ,
394376 "topic" => "realtime:test"
395- } = message
377+ } = Jason . decode! ( data )
396378
397379 assert_receive {
398380 :telemetry ,
@@ -423,12 +405,10 @@ defmodule Realtime.Extensions.CdcRlsTest do
423405 PostgresCdcRls . handle_after_connect ( { pid , pid } , postgres_extension , pg_change_params , external_id )
424406 end
425407
426- Process . sleep ( 1200 )
427-
428408 rate = Realtime.Tenants . subscription_errors_per_second_rate ( external_id , 4 )
429409
430410 assert { :ok , % RateCounter { id: { :channel , :subscription_errors , ^ external_id } , sum: 6 , limit: % { triggered: true } } } =
431- RateCounter . get ( rate )
411+ RateCounterHelper . tick! ( rate )
432412
433413 # It won't even be called now
434414 reject ( & Realtime.GenRpc . call / 5 )
@@ -464,8 +444,8 @@ defmodule Realtime.Extensions.CdcRlsTest do
464444 Enum . each ( queries , & Postgrex . query! ( db_conn , & 1 , [ ] ) )
465445 end )
466446
467- RateCounter . stop ( tenant . external_id )
468- on_exit ( fn -> RateCounter . stop ( tenant . external_id ) end )
447+ RateCounterHelper . stop ( tenant . external_id )
448+ on_exit ( fn -> RateCounterHelper . stop ( tenant . external_id ) end )
469449
470450 on_exit ( fn -> :telemetry . detach ( __MODULE__ ) end )
471451
0 commit comments