@@ -89,6 +89,41 @@ class IngestorTest < ActiveSupport::TestCase
8989 assert_equal ( event . language , 'de' )
9090 end
9191
92+ [ 'enabled' , 'disabled' ] . each do |enabled |
93+ test "auto parse if #{ enabled } " do
94+ if enabled == 'enabled'
95+ auto_parse_vars = [ 'target_audience' , 'keywords' ]
96+ else
97+ auto_parse_vars = [ ]
98+ end
99+ user = users ( :scraper_user )
100+ provider = content_providers ( :portal_provider )
101+ @source = Source . create! ( url : 'https://somewhere.com/stuff' , method : 'bioschemas' ,
102+ enabled : true , approval_status : 'approved' ,
103+ content_provider : provider , user : users ( :admin ) )
104+ ingestor = Ingestors ::Ingestor . new
105+ new_event = OpenStruct . new ( url : 'https://some-course.net' ,
106+ title : 'Yet another course' ,
107+ start : '2021-01-31 13:00:00' ,
108+ end :'2021-01-31 14:00:00' ,
109+ description : 'professor, tool criticism and software citation in text' )
110+ with_settings ( { feature : { auto_parse_vars : auto_parse_vars } } ) do
111+ ingestor . add_event ( new_event )
112+ assert_difference ( 'provider.events.count' , 1 ) do
113+ ingestor . write ( user , provider , source : @source )
114+ end
115+ end
116+ event = Event . find_by ( title : 'Yet another course' )
117+ if enabled == 'enabled'
118+ assert_equal ( [ 'researchers' ] , event . target_audience )
119+ assert_equal ( [ 'Research software management' , 'Data infrastructure' ] , event . keywords )
120+ else
121+ assert_equal ( [ ] , event . target_audience )
122+ assert_equal ( [ ] , event . keywords )
123+ end
124+ end
125+ end
126+
92127 test 'does not set event language when language and source default language missing' do
93128 user = users ( :scraper_user )
94129 provider = content_providers ( :portal_provider )
0 commit comments