From fbaf3aeb5afd4e02c41331676eb2e58748c86ca4 Mon Sep 17 00:00:00 2001 From: Jens Kraemer Date: Mon, 29 Apr 2019 16:18:29 +0800 Subject: [PATCH] changes Query#as_params for more complete serialization - adds totalable_names and group_by options to serialized attributes - also adds a basic test case for --- app/models/query.rb | 2 ++ test/unit/query_test.rb | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/app/models/query.rb b/app/models/query.rb index da76b974d..6dea88c78 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -426,6 +426,8 @@ class Query < ActiveRecord::Base params[:v][field] = options[:values] end params[:c] = column_names + params[:group_by] = group_by.to_s if group_by.present? + params[:t] = totalable_names.map(&:to_s) if totalable_names.any? params[:sort] = sort_criteria.to_param params[:set_filter] = 1 params diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb index 39b4a13e9..287ea7c45 100644 --- a/test/unit/query_test.rb +++ b/test/unit/query_test.rb @@ -2295,4 +2295,19 @@ class QueryTest < ActiveSupport::TestCase assert_equal [["active", "1"], ["closed", "5"]], project_status_filter[:values] end + + def test_as_params_should_serialize_query + query = IssueQuery.new(name: "_") + query.add_filter('subject', '!~', ['asdf']) + query.group_by = 'tracker' + query.totalable_names = %w(estimated_hours) + query.column_names = %w(id subject estimated_hours) + assert hsh = query.as_params + + new_query = IssueQuery.build_from_params(hsh) + assert_equal query.filters, new_query.filters + assert_equal query.group_by, new_query.group_by + assert_equal query.column_names, new_query.column_names + assert_equal query.totalable_names, new_query.totalable_names + end end -- 2.11.0