1package ratelimit
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 "github.com/stretchr/testify/require"
8)
9
10func TestNewStore_MemoryBackend(t *testing.T) {
11 store, err := NewStore("memory", 10, 5, testLogger())
12 require.NoError(t, err)
13 require.NotNil(t, store)
14
15 // Verify it's a MemoryStore
16 _, ok := store.(*MemoryStore)
17 assert.True(t, ok, "should create a MemoryStore")
18}
19
20func TestNewStore_EmptyBackend(t *testing.T) {
21 store, err := NewStore("", 10, 5, testLogger())
22 require.NoError(t, err)
23 require.NotNil(t, store)
24
25 // Empty backend should default to memory
26 _, ok := store.(*MemoryStore)
27 assert.True(t, ok, "empty backend should create a MemoryStore")
28}
29
30func TestNewStore_RedisBackend(t *testing.T) {
31 store, err := NewStore("redis", 10, 5, testLogger())
32 assert.Error(t, err)
33 assert.Nil(t, store)
34 assert.Contains(t, err.Error(), "not yet implemented")
35}
36
37func TestNewStore_UnknownBackend(t *testing.T) {
38 store, err := NewStore("postgres", 10, 5, testLogger())
39 assert.Error(t, err)
40 assert.Nil(t, store)
41 assert.Contains(t, err.Error(), "unknown rate limit backend")
42}