1+ import { test } from 'node:test' ;
2+ import * as Assert from 'node:assert' ;
3+ import { cmdCli } from '../common' ;
4+
5+ const TEST_KEY_PREFIX = 'test_hash_' ;
6+
7+ test ( 'Command For Lmove/Blmove' , async ( t ) => {
8+
9+ await cmdCli . del ( [ ...await cmdCli . keys ( `${ TEST_KEY_PREFIX } *` ) , 'any' ] ) ;
10+
11+ await t . test ( 'Append multiple items to the end of mylist' , async ( ) => {
12+
13+ Assert . strictEqual ( await cmdCli . rPush ( `${ TEST_KEY_PREFIX } mylist` , [ 'one' , 'two' ] ) , 2 ) ;
14+ Assert . strictEqual ( await cmdCli . rPush ( `${ TEST_KEY_PREFIX } mylist` , [ 'three' , 'four' ] ) , 4 ) ;
15+
16+ } ) ;
17+
18+ await t . test ( 'Manipulate mylist using the lMove operation' , async ( ) => {
19+
20+ Assert . strictEqual ( await cmdCli . lMove ( `${ TEST_KEY_PREFIX } mylist` , `${ TEST_KEY_PREFIX } myotherlist` , 'RIGHT' , 'LEFT' ) , 'four' ) ;
21+
22+ } ) ;
23+
24+ await t . test ( 'Manipulate mylist using the bLMove operation' , async ( ) => {
25+
26+ Assert . strictEqual ( await cmdCli . bLMove ( `${ TEST_KEY_PREFIX } mylist` , `${ TEST_KEY_PREFIX } myotherlist` , 'LEFT' , 'RIGHT' , 2 ) , 'one' ) ;
27+
28+ } ) ;
29+
30+ await t . test ( 'Detect and remove data from mylist and myotherlist after operations' , async ( ) => {
31+
32+ Assert . deepEqual ( await cmdCli . lRange ( `${ TEST_KEY_PREFIX } mylist` , 0 , - 1 ) , [ 'two' , 'three' ] ) ;
33+ Assert . deepEqual ( await cmdCli . lRange ( `${ TEST_KEY_PREFIX } myotherlist` , 0 , - 1 ) , [ 'four' , 'one' ] ) ;
34+ Assert . deepEqual ( await cmdCli . lPop ( `${ TEST_KEY_PREFIX } mylist` , 2 ) , [ 'two' , 'three' ] ) ;
35+ Assert . deepEqual ( await cmdCli . lPop ( `${ TEST_KEY_PREFIX } myotherlist` , 2 ) , [ 'four' , 'one' ] ) ;
36+
37+ } ) ;
38+
39+ await t . test ( 'Perform the lMove operation on an empty list' , async ( ) => {
40+
41+ Assert . strictEqual ( await cmdCli . lMove ( `${ TEST_KEY_PREFIX } mylist` , `${ TEST_KEY_PREFIX } myotherlist` , 'RIGHT' , 'LEFT' ) , null ) ;
42+
43+ } ) ;
44+
45+ await t . test ( 'Perform the bLMove operation on an empty list' , async ( ) => {
46+
47+ Assert . strictEqual ( await cmdCli . bLMove ( `${ TEST_KEY_PREFIX } mylist` , `${ TEST_KEY_PREFIX } myotherlist` , 'LEFT' , 'RIGHT' , 2 ) , null ) ;
48+
49+ } ) ;
50+
51+ } ) ;
52+
53+ test . after ( async ( ) => {
54+
55+ await cmdCli . close ( ) ;
56+ } ) ;
0 commit comments