FIX: CSV Exports were throwing errors with invalid dates

FIX: CSV Exports were throwing errors with invalid dates

This fix will consider any invalid dates to be non-existant.

diff --git a/app/jobs/regular/export_csv_file.rb b/app/jobs/regular/export_csv_file.rb
index 39f9c56..6092fb1 100644
--- a/app/jobs/regular/export_csv_file.rb
+++ b/app/jobs/regular/export_csv_file.rb
@@ -182,8 +182,14 @@ module Jobs
     def report_export
       return enum_for(:report_export) unless block_given?
 
-      @extra[:start_date] = @extra[:start_date].to_date.beginning_of_day if @extra[:start_date].is_a?(String)
-      @extra[:end_date] = @extra[:end_date].to_date.end_of_day if @extra[:end_date].is_a?(String)
+      # If dates are invalid consider then `nil`
+      if @extra[:start_date].is_a?(String)
+        @extra[:start_date] = @extra[:start_date].to_date.beginning_of_day rescue nil
+      end
+      if @extra[:end_date].is_a?(String)
+        @extra[:end_date] = @extra[:end_date].to_date.end_of_day rescue nil
+      end
+
       @extra[:filters] = {}
       if @extra[:category_id].present?
         @extra[:filters][:category] = @extra[:category_id].to_i
diff --git a/spec/jobs/export_csv_file_spec.rb b/spec/jobs/export_csv_file_spec.rb
index 62ffb15..8322265 100644
--- a/spec/jobs/export_csv_file_spec.rb
+++ b/spec/jobs/export_csv_file_spec.rb
@@ -85,6 +85,14 @@ describe Jobs::ExportCsvFile do
       exporter
     end
 
+    it "does not throw an error when the dates are invalid" do
+      Jobs::ExportCsvFile.new.execute(
+        entity: 'report',
+        user_id: user.id,
+        args: { start_date: 'asdfasdf', end_date: 'not-a-date', name: 'dau_by_mau' }
+      )
+    end
+
     it 'works with single-column reports' do
       user.user_visits.create!(visited_at: '2010-01-01', posts_read: 42)
       Fabricate(:user).user_visits.create!(visited_at: '2010-01-03', posts_read: 420)

GitHub sha: ce663d67