@@ -1509,8 +1509,11 @@ fn assert_series_resolvers(series: &Series, context: &Context) {
15091509 assert_eq ! ( series. issn_digital( ) , series. issn_digital. as_ref( ) ) ;
15101510 assert_eq ! ( series. series_url( ) , series. series_url. as_ref( ) ) ;
15111511 assert_eq ! (
1512- series. series_description( ) ,
1513- series. series_description. as_ref( )
1512+ series
1513+ . series_description( Some ( MarkupFormat :: JatsXml ) )
1514+ . unwrap( )
1515+ . as_ref( ) ,
1516+ series. series_description. as_ref( ) ,
15141517 ) ;
15151518 assert_eq ! ( series. series_cfp_url( ) , series. series_cfp_url. as_ref( ) ) ;
15161519 assert_eq ! ( series. imprint_id( ) , series. imprint_id) ;
@@ -2369,6 +2372,80 @@ fn graphql_award_supports_role_prize_statement_and_new_fields() {
23692372 . contains( "<bold>" ) ) ;
23702373}
23712374
2375+ #[ test]
2376+ fn graphql_series_description_supports_markup_roundtrip ( ) {
2377+ let ( _guard, pool) = test_db:: setup_test_db ( ) ;
2378+ let schema = create_schema ( ) ;
2379+ let superuser = test_db:: test_superuser ( "user-series-markup" ) ;
2380+ let context = test_db:: test_context_with_user ( pool. clone ( ) , superuser) ;
2381+ let seed = seed_data ( & schema, & context) ;
2382+
2383+ let series = create_with_data_and_markup (
2384+ & schema,
2385+ & context,
2386+ "createSeries" ,
2387+ "NewSeries" ,
2388+ "seriesId seriesDescription(markupFormat: PLAIN_TEXT)" ,
2389+ NewSeries {
2390+ series_type : SeriesType :: Journal ,
2391+ series_name : unique ( "Series" ) ,
2392+ issn_print : None ,
2393+ issn_digital : None ,
2394+ series_url : Some ( "https://example.com/series" . to_string ( ) ) ,
2395+ series_description : Some ( "**Initial** description" . to_string ( ) ) ,
2396+ series_cfp_url : Some ( "https://example.com/cfp" . to_string ( ) ) ,
2397+ imprint_id : seed. imprint_id ,
2398+ } ,
2399+ MarkupFormat :: Markdown ,
2400+ ) ;
2401+
2402+ assert_eq ! (
2403+ series[ "seriesDescription" ] . as_str( ) ,
2404+ Some ( "Initial description" )
2405+ ) ;
2406+
2407+ let series_id = json_uuid ( & series[ "seriesId" ] ) ;
2408+ let stored = Series :: from_id ( pool. as_ref ( ) , & series_id) . expect ( "Failed to fetch series" ) ;
2409+ assert ! ( stored
2410+ . series_description
2411+ . as_deref( )
2412+ . unwrap_or_default( )
2413+ . contains( "<bold>" ) ) ;
2414+
2415+ let updated = update_with_data_and_markup (
2416+ & schema,
2417+ & context,
2418+ "updateSeries" ,
2419+ "PatchSeries" ,
2420+ "seriesId seriesDescription(markupFormat: PLAIN_TEXT)" ,
2421+ PatchSeries {
2422+ series_id,
2423+ series_type : stored. series_type ,
2424+ series_name : stored. series_name . clone ( ) ,
2425+ issn_print : stored. issn_print . clone ( ) ,
2426+ issn_digital : stored. issn_digital . clone ( ) ,
2427+ series_url : stored. series_url . clone ( ) ,
2428+ series_description : Some ( "_Updated_ description" . to_string ( ) ) ,
2429+ series_cfp_url : stored. series_cfp_url . clone ( ) ,
2430+ imprint_id : stored. imprint_id ,
2431+ } ,
2432+ MarkupFormat :: Markdown ,
2433+ ) ;
2434+
2435+ assert_eq ! (
2436+ updated[ "seriesDescription" ] . as_str( ) ,
2437+ Some ( "Updated description" )
2438+ ) ;
2439+
2440+ let updated_stored =
2441+ Series :: from_id ( pool. as_ref ( ) , & series_id) . expect ( "Failed to fetch series" ) ;
2442+ assert ! ( updated_stored
2443+ . series_description
2444+ . as_deref( )
2445+ . unwrap_or_default( )
2446+ . contains( "<italic>" ) ) ;
2447+ }
2448+
23722449#[ test]
23732450fn graphql_additional_resource_exposes_date ( ) {
23742451 let ( _guard, pool) = test_db:: setup_test_db ( ) ;
0 commit comments