@@ -25,25 +25,11 @@ use crate::utils::{authentication_catalogs, expect_anonymous_access_error};
25
25
26
26
#[ test_log:: test( tokio:: test) ]
27
27
async fn test_metadata_chain_events ( ) {
28
- let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
29
- let datasets_dir = tempdir. path ( ) . join ( "datasets" ) ;
30
- std:: fs:: create_dir ( & datasets_dir) . unwrap ( ) ;
31
-
32
- let base_catalog = dill:: CatalogBuilder :: new ( )
33
- . add :: < EventBus > ( )
34
- . add :: < DependencyGraphServiceInMemory > ( )
35
- . add_builder (
36
- DatasetRepositoryLocalFs :: builder ( )
37
- . with_root ( datasets_dir)
38
- . with_multi_tenant ( false ) ,
39
- )
40
- . bind :: < dyn DatasetRepository , DatasetRepositoryLocalFs > ( )
41
- . add :: < auth:: AlwaysHappyDatasetActionAuthorizer > ( )
42
- . build ( ) ;
28
+ let harness = GraphQLMetadataChainHarness :: new ( false ) ;
43
29
44
30
// Init dataset
45
- let ( _ , catalog_authorized ) = authentication_catalogs ( & base_catalog ) ;
46
- let dataset_repo = catalog_authorized
31
+ let dataset_repo = harness
32
+ . catalog_authorized
47
33
. get_one :: < dyn DatasetRepository > ( )
48
34
. unwrap ( ) ;
49
35
let create_result = dataset_repo
@@ -126,7 +112,7 @@ async fn test_metadata_chain_events() {
126
112
127
113
let schema = kamu_adapter_graphql:: schema_quiet ( ) ;
128
114
let res = schema
129
- . execute ( async_graphql:: Request :: new ( request_code. clone ( ) ) . data ( catalog_authorized) )
115
+ . execute ( async_graphql:: Request :: new ( request_code. clone ( ) ) . data ( harness . catalog_authorized ) )
130
116
. await ;
131
117
assert ! ( res. is_ok( ) , "{res:?}" ) ;
132
118
@@ -179,23 +165,10 @@ async fn test_metadata_chain_events() {
179
165
180
166
#[ test_log:: test( tokio:: test) ]
181
167
async fn metadata_chain_append_event ( ) {
182
- let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
183
-
184
- let base_catalog = dill:: CatalogBuilder :: new ( )
185
- . add :: < EventBus > ( )
186
- . add :: < DependencyGraphServiceInMemory > ( )
187
- . add_builder (
188
- DatasetRepositoryLocalFs :: builder ( )
189
- . with_root ( tempdir. path ( ) . join ( "datasets" ) )
190
- . with_multi_tenant ( false ) ,
191
- )
192
- . bind :: < dyn DatasetRepository , DatasetRepositoryLocalFs > ( )
193
- . add :: < auth:: AlwaysHappyDatasetActionAuthorizer > ( )
194
- . build ( ) ;
168
+ let harness = GraphQLMetadataChainHarness :: new ( false ) ;
195
169
196
- let ( catalog_anonymous, catalog_authorized) = authentication_catalogs ( & base_catalog) ;
197
-
198
- let dataset_repo = catalog_authorized
170
+ let dataset_repo = harness
171
+ . catalog_authorized
199
172
. get_one :: < dyn DatasetRepository > ( )
200
173
. unwrap ( ) ;
201
174
let create_result = dataset_repo
@@ -245,12 +218,12 @@ async fn metadata_chain_append_event() {
245
218
let schema = kamu_adapter_graphql:: schema_quiet ( ) ;
246
219
247
220
let res = schema
248
- . execute ( async_graphql:: Request :: new ( request_code. clone ( ) ) . data ( catalog_anonymous) )
221
+ . execute ( async_graphql:: Request :: new ( request_code. clone ( ) ) . data ( harness . catalog_anonymous ) )
249
222
. await ;
250
223
expect_anonymous_access_error ( res) ;
251
224
252
225
let res = schema
253
- . execute ( async_graphql:: Request :: new ( request_code. clone ( ) ) . data ( catalog_authorized) )
226
+ . execute ( async_graphql:: Request :: new ( request_code. clone ( ) ) . data ( harness . catalog_authorized ) )
254
227
. await ;
255
228
assert ! ( res. is_ok( ) , "{res:?}" ) ;
256
229
assert_eq ! (
@@ -275,23 +248,10 @@ async fn metadata_chain_append_event() {
275
248
276
249
#[ test_log:: test( tokio:: test) ]
277
250
async fn metadata_update_readme_new ( ) {
278
- let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
279
-
280
- let base_catalog = dill:: CatalogBuilder :: new ( )
281
- . add :: < EventBus > ( )
282
- . add :: < DependencyGraphServiceInMemory > ( )
283
- . add_builder (
284
- DatasetRepositoryLocalFs :: builder ( )
285
- . with_root ( tempdir. path ( ) . join ( "datasets" ) )
286
- . with_multi_tenant ( false ) ,
287
- )
288
- . bind :: < dyn DatasetRepository , DatasetRepositoryLocalFs > ( )
289
- . add :: < auth:: AlwaysHappyDatasetActionAuthorizer > ( )
290
- . build ( ) ;
251
+ let harness = GraphQLMetadataChainHarness :: new ( false ) ;
291
252
292
- let ( catalog_anonymous, catalog_authorized) = authentication_catalogs ( & base_catalog) ;
293
-
294
- let dataset_repo = catalog_authorized
253
+ let dataset_repo = harness
254
+ . catalog_authorized
295
255
. get_one :: < dyn DatasetRepository > ( )
296
256
. unwrap ( ) ;
297
257
let create_result = dataset_repo
@@ -331,14 +291,16 @@ async fn metadata_update_readme_new() {
331
291
332
292
let res = schema
333
293
. execute (
334
- async_graphql:: Request :: new ( new_readme_request_code. clone ( ) ) . data ( catalog_anonymous) ,
294
+ async_graphql:: Request :: new ( new_readme_request_code. clone ( ) )
295
+ . data ( harness. catalog_anonymous ) ,
335
296
)
336
297
. await ;
337
298
expect_anonymous_access_error ( res) ;
338
299
339
300
let res = schema
340
301
. execute (
341
- async_graphql:: Request :: new ( new_readme_request_code) . data ( catalog_authorized. clone ( ) ) ,
302
+ async_graphql:: Request :: new ( new_readme_request_code)
303
+ . data ( harness. catalog_authorized . clone ( ) ) ,
342
304
)
343
305
. await ;
344
306
@@ -399,7 +361,7 @@ async fn metadata_update_readme_new() {
399
361
)
400
362
. replace ( "<id>" , & create_result. dataset_handle . id . to_string ( ) ) ,
401
363
)
402
- . data ( catalog_authorized. clone ( ) ) ,
364
+ . data ( harness . catalog_authorized . clone ( ) ) ,
403
365
)
404
366
. await ;
405
367
@@ -437,7 +399,7 @@ async fn metadata_update_readme_new() {
437
399
)
438
400
. replace ( "<id>" , & create_result. dataset_handle . id . to_string ( ) ) ,
439
401
)
440
- . data ( catalog_authorized. clone ( ) ) ,
402
+ . data ( harness . catalog_authorized . clone ( ) ) ,
441
403
)
442
404
. await ;
443
405
@@ -490,7 +452,7 @@ async fn metadata_update_readme_new() {
490
452
)
491
453
. replace ( "<id>" , & create_result. dataset_handle . id . to_string ( ) ) ,
492
454
)
493
- . data ( catalog_authorized) ,
455
+ . data ( harness . catalog_authorized ) ,
494
456
)
495
457
. await ;
496
458
@@ -535,3 +497,37 @@ async fn assert_attachments_eq(dataset: Arc<dyn Dataset>, expected: SetAttachmen
535
497
}
536
498
537
499
////////////////////////////////////////////////////////////////////////////////////////
500
+
501
+ struct GraphQLMetadataChainHarness {
502
+ _tempdir : tempfile:: TempDir ,
503
+ catalog_authorized : dill:: Catalog ,
504
+ catalog_anonymous : dill:: Catalog ,
505
+ }
506
+
507
+ impl GraphQLMetadataChainHarness {
508
+ fn new ( is_multi_tenant : bool ) -> Self {
509
+ let tempdir = tempfile:: tempdir ( ) . unwrap ( ) ;
510
+ let datasets_dir = tempdir. path ( ) . join ( "datasets" ) ;
511
+ std:: fs:: create_dir ( & datasets_dir) . unwrap ( ) ;
512
+
513
+ let base_catalog = dill:: CatalogBuilder :: new ( )
514
+ . add :: < EventBus > ( )
515
+ . add :: < DependencyGraphServiceInMemory > ( )
516
+ . add_builder (
517
+ DatasetRepositoryLocalFs :: builder ( )
518
+ . with_root ( datasets_dir)
519
+ . with_multi_tenant ( is_multi_tenant) ,
520
+ )
521
+ . bind :: < dyn DatasetRepository , DatasetRepositoryLocalFs > ( )
522
+ . add :: < auth:: AlwaysHappyDatasetActionAuthorizer > ( )
523
+ . build ( ) ;
524
+
525
+ let ( catalog_anonymous, catalog_authorized) = authentication_catalogs ( & base_catalog) ;
526
+
527
+ Self {
528
+ _tempdir : tempdir,
529
+ catalog_anonymous,
530
+ catalog_authorized,
531
+ }
532
+ }
533
+ }
0 commit comments