@@ -25,25 +25,11 @@ use crate::utils::{authentication_catalogs, expect_anonymous_access_error};
2525
2626#[ test_log:: test( tokio:: test) ]
2727async 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 ) ;
4329
4430 // Init dataset
45- let ( _ , catalog_authorized ) = authentication_catalogs ( & base_catalog ) ;
46- let dataset_repo = catalog_authorized
31+ let dataset_repo = harness
32+ . catalog_authorized
4733 . get_one :: < dyn DatasetRepository > ( )
4834 . unwrap ( ) ;
4935 let create_result = dataset_repo
@@ -126,7 +112,7 @@ async fn test_metadata_chain_events() {
126112
127113 let schema = kamu_adapter_graphql:: schema_quiet ( ) ;
128114 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 ) )
130116 . await ;
131117 assert ! ( res. is_ok( ) , "{res:?}" ) ;
132118
@@ -179,23 +165,10 @@ async fn test_metadata_chain_events() {
179165
180166#[ test_log:: test( tokio:: test) ]
181167async 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 ) ;
195169
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
199172 . get_one :: < dyn DatasetRepository > ( )
200173 . unwrap ( ) ;
201174 let create_result = dataset_repo
@@ -245,12 +218,12 @@ async fn metadata_chain_append_event() {
245218 let schema = kamu_adapter_graphql:: schema_quiet ( ) ;
246219
247220 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 ) )
249222 . await ;
250223 expect_anonymous_access_error ( res) ;
251224
252225 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 ) )
254227 . await ;
255228 assert ! ( res. is_ok( ) , "{res:?}" ) ;
256229 assert_eq ! (
@@ -275,23 +248,10 @@ async fn metadata_chain_append_event() {
275248
276249#[ test_log:: test( tokio:: test) ]
277250async 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 ) ;
291252
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
295255 . get_one :: < dyn DatasetRepository > ( )
296256 . unwrap ( ) ;
297257 let create_result = dataset_repo
@@ -331,14 +291,16 @@ async fn metadata_update_readme_new() {
331291
332292 let res = schema
333293 . 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 ) ,
335296 )
336297 . await ;
337298 expect_anonymous_access_error ( res) ;
338299
339300 let res = schema
340301 . 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 ( ) ) ,
342304 )
343305 . await ;
344306
@@ -399,7 +361,7 @@ async fn metadata_update_readme_new() {
399361 )
400362 . replace ( "<id>" , & create_result. dataset_handle . id . to_string ( ) ) ,
401363 )
402- . data ( catalog_authorized. clone ( ) ) ,
364+ . data ( harness . catalog_authorized . clone ( ) ) ,
403365 )
404366 . await ;
405367
@@ -437,7 +399,7 @@ async fn metadata_update_readme_new() {
437399 )
438400 . replace ( "<id>" , & create_result. dataset_handle . id . to_string ( ) ) ,
439401 )
440- . data ( catalog_authorized. clone ( ) ) ,
402+ . data ( harness . catalog_authorized . clone ( ) ) ,
441403 )
442404 . await ;
443405
@@ -490,7 +452,7 @@ async fn metadata_update_readme_new() {
490452 )
491453 . replace ( "<id>" , & create_result. dataset_handle . id . to_string ( ) ) ,
492454 )
493- . data ( catalog_authorized) ,
455+ . data ( harness . catalog_authorized ) ,
494456 )
495457 . await ;
496458
@@ -535,3 +497,37 @@ async fn assert_attachments_eq(dataset: Arc<dyn Dataset>, expected: SetAttachmen
535497}
536498
537499////////////////////////////////////////////////////////////////////////////////////////
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