@@ -52,6 +52,57 @@ mod kv {
52
52
assert ! ( info. config. allow_direct) ;
53
53
}
54
54
55
+ #[ tokio:: test]
56
+ async fn get_or_create_bucket ( ) {
57
+ let server = nats_server:: run_server ( "tests/configs/jetstream.conf" ) ;
58
+ let client = ConnectOptions :: new ( )
59
+ . event_callback ( |event| async move { println ! ( "event: {event:?}" ) } )
60
+ . connect ( server. client_url ( ) )
61
+ . await
62
+ . unwrap ( ) ;
63
+
64
+ let context = async_nats:: jetstream:: new ( client) ;
65
+
66
+ let mut kv = context
67
+ . get_or_create_key_value (
68
+ "test" ,
69
+ async_nats:: jetstream:: kv:: Config {
70
+ bucket : "test" . into ( ) ,
71
+ description : "test_description" . into ( ) ,
72
+ history : 10 ,
73
+ storage : StorageType :: File ,
74
+ num_replicas : 1 ,
75
+ ..Default :: default ( )
76
+ } ,
77
+ )
78
+ . await
79
+ . unwrap ( ) ;
80
+ let info = kv. stream . info ( ) . await . unwrap ( ) ;
81
+ assert_eq ! ( "KV_test" , kv. stream_name) ;
82
+ assert_eq ! ( info. config. discard, DiscardPolicy :: New ) ;
83
+ assert ! ( info. config. allow_direct) ;
84
+
85
+ let mut kv2 = context
86
+ . get_or_create_key_value (
87
+ "test" ,
88
+ async_nats:: jetstream:: kv:: Config {
89
+ bucket : "test" . into ( ) ,
90
+ description : "test_description" . into ( ) ,
91
+ history : 10 ,
92
+ storage : StorageType :: File ,
93
+ num_replicas : 1 ,
94
+ ..Default :: default ( )
95
+ } ,
96
+ )
97
+ . await
98
+ . unwrap ( ) ;
99
+
100
+ let info2 = kv2. stream . info ( ) . await . unwrap ( ) ;
101
+ assert_eq ! ( kv2. stream_name, kv. stream_name) ;
102
+ assert_eq ! ( info2. config. discard, info. config. discard) ;
103
+ assert_eq ! ( info2. config. allow_direct, info. config. allow_direct) ;
104
+ }
105
+
55
106
#[ tokio:: test]
56
107
async fn create ( ) {
57
108
let server = nats_server:: run_server ( "tests/configs/jetstream.conf" ) ;
0 commit comments