arbiter-test-common-0.1.0.0
arbiter-test-common
Safe HaskellNone
LanguageGHC2024

Arbiter.Test.RateLimit

Description

Backend-parameterized integration tests for per-job rate limiting. Each backend supplies a runner over the shared RLReg registry.

Synopsis

Documentation

Source #data RLPayload

A payload keyed by tenant, with a per-job token cost.

Constructors

RLPayload 

Fields

Instances

Instances details
FromJSON RLPayload Source # 
Instance details

Defined in Arbiter.Test.RateLimit

ToJSON RLPayload Source # 
Instance details

Defined in Arbiter.Test.RateLimit

HasRateLimit RLPayload Source # 
Instance details

Defined in Arbiter.Test.RateLimit

Eq RLPayload Source # 
Instance details

Defined in Arbiter.Test.RateLimit

Generic RLPayload Source # 
Instance details

Defined in Arbiter.Test.RateLimit

Associated Types

type Rep RLPayload 
Instance details

Defined in Arbiter.Test.RateLimit

type Rep RLPayload = D1 ('MetaData "RLPayload" "Arbiter.Test.RateLimit" "arbiter-test-common-0.1.0.0-inplace" 'False) (C1 ('MetaCons "RLPayload" 'PrefixI 'True) (S1 ('MetaSel ('Just "rlTenant") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "rlCost") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double)))
Show RLPayload Source # 
Instance details

Defined in Arbiter.Test.RateLimit

type Rep RLPayload Source # 
Instance details

Defined in Arbiter.Test.RateLimit

type Rep RLPayload = D1 ('MetaData "RLPayload" "Arbiter.Test.RateLimit" "arbiter-test-common-0.1.0.0-inplace" 'False) (C1 ('MetaCons "RLPayload" 'PrefixI 'True) (S1 ('MetaSel ('Just "rlTenant") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "rlCost") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double)))

Source #type RLReg = '[Queue "arbiter_ratelimit_test" RLPayload]

A one-queue registry over RLPayload.

Source #rateLimitTable :: Text

Table name for RLReg, shared across backends.

Source #setupRateLimitPolicy :: ByteString -> Text -> IO ()

Upsert the registry's reflected policy rows into a schema.

Source #rateLimitSpec :: forall env m. HasRegistry m RLReg => (forall a. env -> m a -> IO a) -> SpecWith env

The rate-limit suite, run against any backend.