@@ -340,4 +340,40 @@ class AccountingPostsControllerTest < ActionController::TestCase
340
340
assert_redirected_to order_accounting_posts_path ( orders ( :hitobito_demo ) )
341
341
assert_predicate flash [ :alert ] , :blank?
342
342
end
343
+
344
+ test 'GET export csv simple' do
345
+ get :export_csv , params : { order_id : orders ( :puzzletime ) . id }
346
+
347
+ # assert_csv_http_headers('puzzletime.csv')
348
+ assert_match expected_csv_header , csv_header
349
+ puts csv_data_lines
350
+
351
+ assert_equal 1 , csv_data_lines . size
352
+ assert_match 'PITC-PT,100.0,18.0,10.0,92.0,0' , csv_data_lines . first
353
+ end
354
+
355
+ test 'GET export csv with timespan' do
356
+ get :export_csv , params : { order_id : orders ( :puzzletime ) . id , start_date : '2006-12-04' , end_date : '2006-12-10' }
357
+
358
+ assert_match expected_csv_header , csv_header
359
+ puts csv_data_lines
360
+
361
+ assert_equal 1 , csv_data_lines . size
362
+ assert_match 'PITC-PT,100.0,6.0,0,92.0,0' , csv_data_lines . first
363
+ end
364
+
365
+ private
366
+
367
+ def expected_csv_header
368
+ 'Position,Budget,Geleistete Stunden,Nicht verrechenbar,Offenes Budget,Geplantes Budget'
369
+ end
370
+
371
+ def csv_header
372
+ response . body . lines . first
373
+ end
374
+
375
+ def csv_data_lines
376
+ _ , *lines = response . body . lines . to_a
377
+ lines
378
+ end
343
379
end
0 commit comments