@@ -19,7 +19,7 @@ import (
1919 "github.com/onsi/gomega"
2020)
2121
22- func boundsTestStore (db * sql.DB , opts ... TransactionStoreOption ) * TransactionStore {
22+ func limitsTestStore (db * sql.DB , opts ... TransactionStoreOption ) * TransactionStore {
2323 store , _ := NewOwnerTransactionStore (db , db , TableNames {
2424 Movements : "MOVEMENTS" ,
2525 Transactions : "TRANSACTIONS" ,
@@ -37,7 +37,7 @@ func TestWritePayloadSizeLimit(t *testing.T) {
3737 db , mockDB , err := sqlmock .New ()
3838 gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
3939
40- store := boundsTestStore (db , WithMaxPayloadSize (20 ))
40+ store := limitsTestStore (db , WithMaxPayloadSize (20 ))
4141 mockDB .ExpectBegin ()
4242 w , err := store .NewTransactionStoreTransaction ()
4343 gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
@@ -73,7 +73,7 @@ func TestWritePayloadSizeDisabled(t *testing.T) {
7373 db , mockDB , err := sqlmock .New ()
7474 gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
7575
76- store := boundsTestStore (db , WithMaxPayloadSize (0 ))
76+ store := limitsTestStore (db , WithMaxPayloadSize (0 ))
7777 mockDB .ExpectBegin ()
7878 mockDB .ExpectExec ("INSERT INTO REQUESTS" ).WillReturnResult (sqlmock .NewResult (1 , 1 ))
7979 w , err := store .NewTransactionStoreTransaction ()
@@ -84,18 +84,36 @@ func TestWritePayloadSizeDisabled(t *testing.T) {
8484 gomega .Expect (mockDB .ExpectationsWereMet ()).To (gomega .Succeed ())
8585}
8686
87- // TestQueryTransactionsRejectsUnbounded verifies the read guard rejects nil and
88- // unbounded (None) pagination without querying the database.
89- func TestQueryTransactionsRejectsUnbounded (t * testing.T ) {
87+ // TestQueryTransactionsRejectsUnlimited verifies the read guard rejects nil and
88+ // unlimited (None) pagination without querying the database.
89+ func TestQueryTransactionsRejectsUnlimited (t * testing.T ) {
9090 gomega .RegisterTestingT (t )
9191 db , _ , err := sqlmock .New ()
9292 gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
9393
94- store := boundsTestStore (db )
94+ store := limitsTestStore (db )
9595
9696 _ , err = store .QueryTransactions (t .Context (), driver.QueryTransactionsParams {}, nil )
9797 gomega .Expect (err ).To (gomega .HaveOccurred ())
9898
9999 _ , err = store .QueryTransactions (t .Context (), driver.QueryTransactionsParams {}, pagination .None ())
100100 gomega .Expect (err ).To (gomega .HaveOccurred ())
101101}
102+
103+ // TestQueryTokenRequestsAppliesLimit verifies the token-request scan is capped at
104+ // the store's max page size via a LIMIT clause.
105+ func TestQueryTokenRequestsAppliesLimit (t * testing.T ) {
106+ gomega .RegisterTestingT (t )
107+ db , mockDB , err := sqlmock .New ()
108+ gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
109+
110+ store := limitsTestStore (db , WithMaxPageSize (500 ))
111+ mockDB .ExpectQuery ("SELECT .* FROM REQUESTS .*LIMIT" ).
112+ WithArgs (500 ).
113+ WillReturnRows (sqlmock .NewRows ([]string {"tx_id" , "request" , "status" }))
114+
115+ it , err := store .QueryTokenRequests (t .Context (), driver.QueryTokenRequestsParams {})
116+ gomega .Expect (err ).ToNot (gomega .HaveOccurred ())
117+ it .Close ()
118+ gomega .Expect (mockDB .ExpectationsWereMet ()).To (gomega .Succeed ())
119+ }
0 commit comments