77 RedisClient ,
88 RedisCommand ,
99 RedisKey ,
10+ RedisSet ,
1011 SADD ,
1112 SCARD ,
1213 SDIFF ,
@@ -31,6 +32,12 @@ afterAll(async () => {
3132 await redis . close ( ) ;
3233} ) ;
3334
35+ async function sendOnce ( redis : RedisClient , command : RedisCommand ) {
36+ const result = await redis . send ( command ) ;
37+ await redis . close ( ) ;
38+ return result ;
39+ }
40+
3441test ( "send" , async ( ) => {
3542 const encoder = new TextEncoder ( ) ;
3643
@@ -46,80 +53,80 @@ test("send", async () => {
4653
4754 // sendOnce will disconnect after the command is resolved.
4855 expect ( redis . connected ) . toBe ( true ) ;
49- expect ( await redis . sendOnce ( GET ( foo ) ) ) . toEqual ( undefined ) ;
56+ expect ( await sendOnce ( redis , GET ( foo ) ) ) . toEqual ( undefined ) ;
5057 expect ( redis . connected ) . toBe ( false ) ;
5158
5259 // This reconnects before sending the command.
53- expect ( await redis . sendOnce ( PING ( ) ) ) . toEqual ( "PONG" ) ;
60+ expect ( await sendOnce ( redis , PING ( ) ) ) . toEqual ( "PONG" ) ;
5461} ) ;
5562
5663test ( "set commands" , async ( ) => {
57- const setKey = new RedisKey ( "myset" , Type . String ( ) ) ;
64+ const fooSet = new RedisSet ( "myset" , Type . String ( ) ) ;
5865 const member1 = "member1" ;
5966 const member2 = "member2" ;
6067 const member3 = "member3" ;
6168
6269 // SMEMBERS non-existent set
63- expect ( await redis . send ( SMEMBERS ( setKey ) ) ) . toEqual ( [ ] ) ;
70+ expect ( await redis . send ( SMEMBERS ( fooSet ) ) ) . toEqual ( [ ] ) ;
6471
6572 // SADD
66- expect ( await redis . send ( SADD ( setKey , member1 , member2 ) ) ) . toEqual ( 2 ) ;
67- expect ( await redis . send ( SADD ( setKey , member1 ) ) ) . toEqual ( 0 ) ; // Already exists
73+ expect ( await redis . send ( SADD ( fooSet , member1 , member2 ) ) ) . toEqual ( 2 ) ;
74+ expect ( await redis . send ( SADD ( fooSet , member1 ) ) ) . toEqual ( 0 ) ; // Already exists
6875
6976 // SCARD
70- expect ( await redis . send ( SCARD ( setKey ) ) ) . toEqual ( 2 ) ;
77+ expect ( await redis . send ( SCARD ( fooSet ) ) ) . toEqual ( 2 ) ;
7178
7279 // SMEMBERS
73- expect ( await redis . send ( SMEMBERS ( setKey ) ) ) . toEqual (
80+ expect ( await redis . send ( SMEMBERS ( fooSet ) ) ) . toEqual (
7481 expect . arrayContaining ( [ member1 , member2 ] ) ,
7582 ) ;
7683
7784 // SISMEMBER
78- expect ( await redis . send ( SISMEMBER ( setKey , member1 ) ) ) . toEqual ( true ) ;
79- expect ( await redis . send ( SISMEMBER ( setKey , member3 ) ) ) . toEqual ( false ) ;
85+ expect ( await redis . send ( SISMEMBER ( fooSet , member1 ) ) ) . toEqual ( true ) ;
86+ expect ( await redis . send ( SISMEMBER ( fooSet , member3 ) ) ) . toEqual ( false ) ;
8087
8188 // SPOP
82- let poppedMember = await redis . send ( SPOP ( setKey ) ) ;
89+ let poppedMember = await redis . send ( SPOP ( fooSet ) ) ;
8390 expect ( [ member1 , member2 ] ) . toContain ( poppedMember ) ;
84- expect ( await redis . send ( SCARD ( setKey ) ) ) . toEqual ( 1 ) ; // Size reduced by 1
91+ expect ( await redis . send ( SCARD ( fooSet ) ) ) . toEqual ( 1 ) ; // Size reduced by 1
8592
8693 // SADD back member1 and member2 for further tests
87- await redis . send ( SADD ( setKey , member1 , member2 ) ) ;
94+ await redis . send ( SADD ( fooSet , member1 , member2 ) ) ;
8895
8996 // SREM
90- expect ( await redis . send ( SREM ( setKey , member1 ) ) ) . toEqual ( 1 ) ;
91- expect ( await redis . send ( SREM ( setKey , member3 ) ) ) . toEqual ( 0 ) ; // Not exists
92- expect ( await redis . send ( SCARD ( setKey ) ) ) . toEqual ( 1 ) ; // Size reduced by 1
97+ expect ( await redis . send ( SREM ( fooSet , member1 ) ) ) . toEqual ( 1 ) ;
98+ expect ( await redis . send ( SREM ( fooSet , member3 ) ) ) . toEqual ( 0 ) ; // Not exists
99+ expect ( await redis . send ( SCARD ( fooSet ) ) ) . toEqual ( 1 ) ; // Size reduced by 1
93100
94101 // SADD back member1 for further tests
95- await redis . send ( SADD ( setKey , member1 ) ) ;
102+ await redis . send ( SADD ( fooSet , member1 ) ) ;
96103
97- const anotherSetKey = new RedisKey ( "anotherset" , Type . String ( ) ) ;
98- await redis . send ( SADD ( anotherSetKey , member2 , member3 ) ) ;
104+ const otherSet = new RedisSet ( "anotherset" , Type . String ( ) ) ;
105+ await redis . send ( SADD ( otherSet , member2 , member3 ) ) ;
99106
100107 // SDIFF
101- expect ( await redis . send ( SDIFF ( setKey , anotherSetKey ) ) ) . toEqual (
108+ expect ( await redis . send ( SDIFF ( fooSet , otherSet ) ) ) . toEqual (
102109 expect . arrayContaining ( [ member1 ] ) ,
103110 ) ;
104111
105112 // SINTER
106- expect ( await redis . send ( SINTER ( setKey , anotherSetKey ) ) ) . toEqual (
113+ expect ( await redis . send ( SINTER ( fooSet , otherSet ) ) ) . toEqual (
107114 expect . arrayContaining ( [ member2 ] ) ,
108115 ) ;
109116
110117 // SUNION
111- expect ( await redis . send ( SUNION ( setKey , anotherSetKey ) ) ) . toEqual (
118+ expect ( await redis . send ( SUNION ( fooSet , otherSet ) ) ) . toEqual (
112119 expect . arrayContaining ( [ member1 , member2 , member3 ] ) ,
113120 ) ;
114121
115122 // DEL set key
116- expect ( await redis . send ( DEL ( setKey ) ) ) . toEqual ( 1 ) ;
117- expect ( await redis . send ( DEL ( anotherSetKey ) ) ) . toEqual ( 1 ) ;
123+ expect ( await redis . send ( DEL ( fooSet ) ) ) . toEqual ( 1 ) ;
124+ expect ( await redis . send ( DEL ( otherSet ) ) ) . toEqual ( 1 ) ;
118125} ) ;
119126
120127test ( "error handling" , async ( ) => {
121128 await expect (
122- redis . sendOnce ( new RedisCommand ( [ "MY_GO" ] ) ) ,
129+ sendOnce ( redis , new RedisCommand ( [ "MY_GO" ] ) ) ,
123130 ) . rejects . toThrowError (
124131 "ERR unknown command 'MY_GO', with args beginning with: " ,
125132 ) ;
0 commit comments