@@ -25,6 +25,28 @@ fn s(env: &Env, v: &str) -> String {
2525 String :: from_str ( env, v)
2626}
2727
28+ /// Batch-mint `count` tokens (IDs `1..=count`) to `owner` and return the
29+ /// minted token IDs, for tests exercising pagination over a large collection.
30+ fn batch_mint_n (
31+ env : & Env ,
32+ client : & ClipsNftContractClient < ' static > ,
33+ owner : & Address ,
34+ count : u64 ,
35+ ) -> Vec < u64 > {
36+ let mut token_ids = Vec :: new ( env) ;
37+ let mut clip_ids = Vec :: new ( env) ;
38+ let mut uris = Vec :: new ( env) ;
39+ let mut soulbound = Vec :: new ( env) ;
40+ for i in 1 ..=count {
41+ token_ids. push_back ( i) ;
42+ clip_ids. push_back ( s ( env, "clip" ) ) ;
43+ uris. push_back ( s ( env, "uri" ) ) ;
44+ soulbound. push_back ( false ) ;
45+ }
46+ client. batch_mint ( owner, & token_ids, & clip_ids, & uris, & soulbound) ;
47+ token_ids
48+ }
49+
2850// ─────────────────────────────────────────────────────────────
2951// Initialization
3052// ─────────────────────────────────────────────────────────────
@@ -1440,9 +1462,7 @@ fn test_get_user_tokens_pagination_first_page() {
14401462
14411463 for i in 1 ..=5 {
14421464 let token_id = i;
1443- let clip_id = format ! ( "clip_{}" , i) ;
1444- let uri = format ! ( "uri_{}" , i) ;
1445- client. mint ( & owner, & token_id, & s ( & env, & clip_id) , & s ( & env, & uri) , & false ) ;
1465+ client. mint ( & owner, & token_id, & s ( & env, "clip" ) , & s ( & env, "uri" ) , & false ) ;
14461466 }
14471467
14481468 let page1 = client. get_user_tokens ( & owner, & 2 , & 0 ) ;
@@ -1462,9 +1482,7 @@ fn test_get_user_tokens_pagination_second_page() {
14621482
14631483 for i in 1 ..=5 {
14641484 let token_id = i;
1465- let clip_id = format ! ( "clip_{}" , i) ;
1466- let uri = format ! ( "uri_{}" , i) ;
1467- client. mint ( & owner, & token_id, & s ( & env, & clip_id) , & s ( & env, & uri) , & false ) ;
1485+ client. mint ( & owner, & token_id, & s ( & env, "clip" ) , & s ( & env, "uri" ) , & false ) ;
14681486 }
14691487
14701488 let page2 = client. get_user_tokens ( & owner, & 2 , & 2 ) ;
@@ -1484,9 +1502,7 @@ fn test_get_user_tokens_pagination_last_page_partial() {
14841502
14851503 for i in 1 ..=5 {
14861504 let token_id = i;
1487- let clip_id = format ! ( "clip_{}" , i) ;
1488- let uri = format ! ( "uri_{}" , i) ;
1489- client. mint ( & owner, & token_id, & s ( & env, & clip_id) , & s ( & env, & uri) , & false ) ;
1505+ client. mint ( & owner, & token_id, & s ( & env, "clip" ) , & s ( & env, "uri" ) , & false ) ;
14901506 }
14911507
14921508 let last_page = client. get_user_tokens ( & owner, & 2 , & 4 ) ;
@@ -1520,9 +1536,7 @@ fn test_get_user_tokens_limit_exceeds_total() {
15201536
15211537 for i in 1 ..=3 {
15221538 let token_id = i;
1523- let clip_id = format ! ( "clip_{}" , i) ;
1524- let uri = format ! ( "uri_{}" , i) ;
1525- client. mint ( & owner, & token_id, & s ( & env, & clip_id) , & s ( & env, & uri) , & false ) ;
1539+ client. mint ( & owner, & token_id, & s ( & env, "clip" ) , & s ( & env, "uri" ) , & false ) ;
15261540 }
15271541
15281542 let result = client. get_user_tokens ( & owner, & 100 , & 0 ) ;
@@ -1554,11 +1568,7 @@ fn test_get_user_tokens_limit_capped_at_100() {
15541568 client. initialize ( & admin) ;
15551569
15561570 // Mint 50 tokens (batch limit is 50)
1557- let token_ids: Vec < u64 > = ( 1 ..=50 ) . collect ( ) ;
1558- let clip_ids: Vec < String > = ( 1 ..=50 ) . map ( |i| String :: from_str ( & env, & format ! ( "clip_{}" , i) ) ) . collect ( ) ;
1559- let uris: Vec < String > = ( 1 ..=50 ) . map ( |i| String :: from_str ( & env, & format ! ( "uri_{}" , i) ) ) . collect ( ) ;
1560- let soulbound: Vec < bool > = ( 1 ..=50 ) . map ( |_| false ) . collect ( ) ;
1561- client. batch_mint ( & owner, & token_ids, & clip_ids, & uris, & soulbound) ;
1571+ batch_mint_n ( & env, & client, & owner, 50 ) ;
15621572
15631573 // Request 200 (should be capped to 100, but only 50 exist)
15641574 let result = client. get_user_tokens ( & owner, & 200 , & 0 ) ;
@@ -1575,11 +1585,7 @@ fn test_get_user_tokens_large_collection_multi_page() {
15751585 client. initialize ( & admin) ;
15761586
15771587 // Mint 50 tokens via batch
1578- let token_ids: Vec < u64 > = ( 1 ..=50 ) . collect ( ) ;
1579- let clip_ids: Vec < String > = ( 1 ..=50 ) . map ( |i| String :: from_str ( & env, & format ! ( "clip_{}" , i) ) ) . collect ( ) ;
1580- let uris: Vec < String > = ( 1 ..=50 ) . map ( |i| String :: from_str ( & env, & format ! ( "uri_{}" , i) ) ) . collect ( ) ;
1581- let soulbound: Vec < bool > = ( 1 ..=50 ) . map ( |_| false ) . collect ( ) ;
1582- client. batch_mint ( & owner, & token_ids, & clip_ids, & uris, & soulbound) ;
1588+ batch_mint_n ( & env, & client, & owner, 50 ) ;
15831589
15841590 // Page 1
15851591 let page1 = client. get_user_tokens ( & owner, & 20 , & 0 ) ;
0 commit comments