introspective_admin 0.1.0 → 1.0.0

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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +75 -0
  5. data/.ruby-version +1 -1
  6. data/.travis.yml +5 -14
  7. data/CHANGELOG.md +37 -28
  8. data/Gemfile +24 -6
  9. data/Gemfile.lock +402 -264
  10. data/README.md +34 -8
  11. data/Rakefile +3 -5
  12. data/introspective_admin.gemspec +29 -44
  13. data/lib/introspective_admin/base.rb +217 -200
  14. data/lib/introspective_admin/version.rb +5 -3
  15. data/lib/introspective_admin.rb +2 -0
  16. data/lib/tasks/introspective_admin_tasks.rake +2 -0
  17. data/spec/admin/company_admin_spec.rb +73 -72
  18. data/spec/admin/job_admin_spec.rb +63 -61
  19. data/spec/admin/location_admin_spec.rb +70 -66
  20. data/spec/admin/location_beacon_admin_spec.rb +75 -73
  21. data/spec/admin/project__admin_spec.rb +73 -71
  22. data/spec/admin/user_admin_spec.rb +65 -64
  23. data/spec/dummy/Gemfile +17 -0
  24. data/spec/dummy/README.rdoc +28 -28
  25. data/spec/dummy/Rakefile +8 -6
  26. data/spec/dummy/app/admin/admin_users.rb +29 -0
  27. data/spec/dummy/app/admin/company_admin.rb +5 -4
  28. data/spec/dummy/app/admin/dashboard.rb +34 -0
  29. data/spec/dummy/app/admin/job_admin.rb +5 -4
  30. data/spec/dummy/app/admin/location_admin.rb +5 -4
  31. data/spec/dummy/app/admin/location_beacon_admin.rb +8 -6
  32. data/spec/dummy/app/admin/project_admin.rb +5 -6
  33. data/spec/dummy/app/admin/role_admin.rb +5 -5
  34. data/spec/dummy/app/admin/user_admin.rb +13 -13
  35. data/spec/dummy/app/assets/config/manifest.js +3 -0
  36. data/spec/dummy/app/assets/javascripts/active_admin.js +1 -0
  37. data/spec/dummy/app/assets/javascripts/application.js +13 -13
  38. data/spec/dummy/app/assets/stylesheets/active_admin.scss +17 -0
  39. data/spec/dummy/app/assets/stylesheets/application.css +15 -15
  40. data/spec/dummy/app/controllers/application_controller.rb +10 -8
  41. data/spec/dummy/app/helpers/application_helper.rb +4 -3
  42. data/spec/dummy/app/models/abstract_adapter.rb +20 -12
  43. data/spec/dummy/app/models/admin_user.rb +12 -6
  44. data/spec/dummy/app/models/company.rb +13 -12
  45. data/spec/dummy/app/models/job.rb +10 -10
  46. data/spec/dummy/app/models/locatable.rb +8 -6
  47. data/spec/dummy/app/models/location.rb +27 -26
  48. data/spec/dummy/app/models/location_beacon.rb +19 -19
  49. data/spec/dummy/app/models/location_gps.rb +11 -11
  50. data/spec/dummy/app/models/project.rb +20 -20
  51. data/spec/dummy/app/models/project_job.rb +8 -7
  52. data/spec/dummy/app/models/role.rb +26 -25
  53. data/spec/dummy/app/models/team.rb +10 -9
  54. data/spec/dummy/app/models/team_user.rb +14 -13
  55. data/spec/dummy/app/models/user.rb +72 -68
  56. data/spec/dummy/app/models/user_location.rb +28 -28
  57. data/spec/dummy/app/models/user_project_job.rb +17 -16
  58. data/spec/dummy/app/views/layouts/application.html.erb +13 -13
  59. data/spec/dummy/bin/bundle +5 -3
  60. data/spec/dummy/bin/rails +6 -4
  61. data/spec/dummy/bin/rake +6 -4
  62. data/spec/dummy/bin/setup +31 -29
  63. data/spec/dummy/config/application.rb +35 -34
  64. data/spec/dummy/config/boot.rb +7 -5
  65. data/spec/dummy/config/database.yml +22 -22
  66. data/spec/dummy/config/environment.rb +12 -11
  67. data/spec/dummy/config/environments/development.rb +47 -45
  68. data/spec/dummy/config/environments/production.rb +83 -82
  69. data/spec/dummy/config/environments/test.rb +50 -50
  70. data/spec/dummy/config/initializers/active_admin.rb +8 -7
  71. data/spec/dummy/config/initializers/assets.rb +15 -13
  72. data/spec/dummy/config/initializers/backtrace_silencers.rb +9 -7
  73. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -3
  74. data/spec/dummy/config/initializers/devise.rb +265 -263
  75. data/spec/dummy/config/initializers/filter_parameter_logging.rb +6 -4
  76. data/spec/dummy/config/initializers/inflections.rb +18 -16
  77. data/spec/dummy/config/initializers/mime_types.rb +6 -4
  78. data/spec/dummy/config/initializers/session_store.rb +5 -3
  79. data/spec/dummy/config/initializers/wrap_parameters.rb +16 -14
  80. data/spec/dummy/config/initializers/zeitwerk.rb +10 -0
  81. data/spec/dummy/config/locales/devise.en.yml +60 -60
  82. data/spec/dummy/config/locales/en.yml +23 -23
  83. data/spec/dummy/config/routes.rb +12 -9
  84. data/spec/dummy/config/secrets.yml +20 -20
  85. data/spec/dummy/config.ru +6 -4
  86. data/spec/dummy/db/development.sqlite3 +0 -0
  87. data/spec/dummy/db/migrate/20141002205024_devise_create_users.rb +43 -42
  88. data/spec/dummy/db/migrate/20141002211055_devise_create_admin_users.rb +49 -48
  89. data/spec/dummy/db/migrate/20141002211057_create_active_admin_comments.rb +21 -19
  90. data/spec/dummy/db/migrate/20141002220722_add_lockable_to_users.rb +10 -8
  91. data/spec/dummy/db/migrate/20150406213646_create_companies.rb +13 -11
  92. data/spec/dummy/db/migrate/20150414213154_add_user_authentication_token.rb +13 -11
  93. data/spec/dummy/db/migrate/20150415222005_create_roles.rb +13 -12
  94. data/spec/dummy/db/migrate/20150505181635_create_chats.rb +11 -9
  95. data/spec/dummy/db/migrate/20150505181636_create_chat_users.rb +13 -11
  96. data/spec/dummy/db/migrate/20150505181640_create_chat_messages.rb +13 -11
  97. data/spec/dummy/db/migrate/20150507191529_create_chat_message_users.rb +13 -11
  98. data/spec/dummy/db/migrate/20150601200526_create_locations.rb +15 -13
  99. data/spec/dummy/db/migrate/20150601200533_create_locatables.rb +12 -10
  100. data/spec/dummy/db/migrate/20150601212924_create_location_beacons.rb +18 -16
  101. data/spec/dummy/db/migrate/20150601213542_create_location_gps.rb +14 -12
  102. data/spec/dummy/db/migrate/20150609201823_create_user_locations.rb +16 -14
  103. data/spec/dummy/db/migrate/20150617232519_create_projects.rb +12 -10
  104. data/spec/dummy/db/migrate/20150617232521_create_jobs.rb +11 -9
  105. data/spec/dummy/db/migrate/20150617232522_create_project_jobs.rb +13 -11
  106. data/spec/dummy/db/migrate/20150623170133_create_user_project_jobs.rb +14 -12
  107. data/spec/dummy/db/migrate/20150701234929_create_teams.rb +13 -11
  108. data/spec/dummy/db/migrate/20150701234930_create_team_users.rb +13 -11
  109. data/spec/dummy/db/migrate/20150727214950_add_confirmable_to_devise.rb +13 -11
  110. data/spec/dummy/db/migrate/20150820190524_add_user_names.rb +8 -6
  111. data/spec/dummy/db/migrate/20150909225019_add_password_to_project.rb +7 -5
  112. data/spec/dummy/db/migrate/20220806003731_add_devise_to_admin_users.rb +50 -0
  113. data/spec/dummy/db/schema.rb +263 -264
  114. data/spec/dummy/public/404.html +67 -67
  115. data/spec/dummy/public/422.html +67 -67
  116. data/spec/dummy/public/500.html +66 -66
  117. data/spec/rails_helper.rb +33 -27
  118. data/spec/support/blueprints.rb +50 -49
  119. data/spec/support/location_helper.rb +28 -29
  120. metadata +21 -252
  121. data/Gemfile.lock.rails4 +0 -256
@@ -1,72 +1,73 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe Admin::CompaniesController, :type => :controller do
4
- render_views
5
-
6
- before :each do
7
- user = double('user')
8
- allow(request.env['warden']).to receive(:authenticate!) { user }
9
- allow(controller).to receive(:current_user) { user }
10
- end
11
-
12
- describe "GET index" do
13
- it "finds all companies" do
14
- c = Company.make!
15
- get :index
16
- response.status.should == 200
17
- assigns(:companies).include?(c).should == true
18
- end
19
- end
20
-
21
- describe "SHOW record" do
22
- it "finds the record" do
23
- c = Company.make!
24
- get :show, params: { id: c.id }
25
- response.status.should == 200
26
- end
27
- end
28
-
29
- describe "NEW record" do
30
- it "renders the form for a new record" do
31
- get :new
32
- response.status.should == 200
33
- end
34
- end
35
-
36
- describe "CREATE record" do
37
- it "creates the record" do
38
- c = Company.make
39
- post :create, params: { company: c.attributes }
40
- response.should redirect_to action: :show, id: Company.last.id
41
- Company.last.name.should == c.name
42
- end
43
-
44
- it "creates a record with an admin" do
45
- u = User.make!
46
- c = Company.make
47
- post :create, params: { company: c.attributes.merge({
48
- roles_attributes: {'0'=>{ user_id: u.id }}
49
- }) }
50
- response.should redirect_to action: :show, id: Company.last.id
51
- Company.last.admins.include?(u).should be_truthy
52
- end
53
-
54
- end
55
-
56
- describe "EDIT record" do
57
- it "renders the edit form for an existing record" do
58
- r = Company.make!
59
- get :edit, params: { id: r.id }
60
- response.status.should == 200
61
- end
62
- end
63
-
64
- describe "UPDATE record" do
65
- it "updates the record" do
66
- c = Company.make!
67
- put :update, params: { id: c.id, company: { name: "New Name" } }
68
- response.should redirect_to action: :show, id: c.id
69
- Company.find(c.id).name.should == "New Name"
70
- end
71
- end
72
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe Admin::CompaniesController, type: :controller do
6
+ render_views
7
+
8
+ before :each do
9
+ user = double('user')
10
+ allow(request.env['warden']).to receive(:authenticate!) { user }
11
+ allow(controller).to receive(:current_user) { user }
12
+ end
13
+
14
+ describe 'GET index' do
15
+ it 'finds all companies' do
16
+ c = Company.make!
17
+ get :index
18
+ response.status.should
19
+ assigns(:companies).include?(c).should == true
20
+ end
21
+ end
22
+
23
+ describe 'SHOW record' do
24
+ it 'finds the record' do
25
+ c = Company.make!
26
+ get :show, params: { id: c.id }
27
+ response.status.should == 200
28
+ end
29
+ end
30
+
31
+ describe 'NEW record' do
32
+ it 'renders the form for a new record' do
33
+ get :new
34
+ response.status.should == 200
35
+ end
36
+ end
37
+
38
+ describe 'CREATE record' do
39
+ it 'creates the record' do
40
+ c = Company.make
41
+ post :create, params: { company: c.attributes }
42
+ response.should redirect_to action: :show, id: Company.last.id
43
+ Company.last.name.should == c.name
44
+ end
45
+
46
+ it 'creates a record with an admin' do
47
+ u = User.make!
48
+ c = Company.make
49
+ post :create, params: { company: c.attributes.merge({
50
+ roles_attributes: { '0'=>{ user_id: u.id } }
51
+ }) }
52
+ response.should redirect_to action: :show, id: Company.last.id
53
+ Company.last.admins.include?(u).should be_truthy
54
+ end
55
+ end
56
+
57
+ describe 'EDIT record' do
58
+ it 'renders the edit form for an existing record' do
59
+ r = Company.make!
60
+ get :edit, params: { id: r.id }
61
+ response.status.should == 200
62
+ end
63
+ end
64
+
65
+ describe 'UPDATE record' do
66
+ it 'updates the record' do
67
+ c = Company.make!
68
+ put :update, params: { id: c.id, company: { name: 'New Name' } }
69
+ response.should redirect_to action: :show, id: c.id
70
+ Company.find(c.id).name.should == 'New Name'
71
+ end
72
+ end
73
+ end
@@ -1,61 +1,63 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe Admin::JobsController, :type => :controller do
4
- render_views
5
-
6
- before :each do # Why can't I do this shit in a helper like I do for requests?
7
- user = double('user')
8
- allow(request.env['warden']).to receive(:authenticate!) { user }
9
- allow(controller).to receive(:current_user) { user }
10
- end
11
-
12
- describe "GET index" do
13
- it "finds all Jobs" do
14
- r = Job.make!
15
- get :index
16
- response.status.should == 200
17
- assigns(:jobs).include?(r).should == true
18
- end
19
- end
20
-
21
- describe "SHOW record" do
22
- it "finds the record" do
23
- r = Job.make!
24
- get :show, params: { id: r.id }
25
- response.status.should == 200
26
- end
27
- end
28
-
29
- describe "NEW record" do
30
- it "renders the form for a new record" do
31
- get :new
32
- response.status.should == 200
33
- end
34
- end
35
-
36
- describe "CREATE record" do
37
- it "creates the record" do
38
- r = Job.make
39
- post :create, params: { job: r.attributes }
40
- response.should redirect_to action: :show, id: Job.last.id
41
- Job.last.title.should == r.title
42
- end
43
- end
44
-
45
- describe "EDIT record" do
46
- it "renders the edit form for an existing record" do
47
- r = Job.make!
48
- get :edit, params: { id: r.id }
49
- response.status.should == 200
50
- end
51
- end
52
-
53
- describe "UPDATE record" do
54
- it "updates the record" do
55
- r = Job.make!
56
- put :update, params: { id: r.id, job: { title: "New Name" } }
57
- response.should redirect_to action: :show, id: r.id
58
- Job.find(r.id).title.should == "New Name"
59
- end
60
- end
61
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe Admin::JobsController, type: :controller do
6
+ render_views
7
+
8
+ before :each do # Why can't I do this shit in a helper like I do for requests?
9
+ user = double('user')
10
+ allow(request.env['warden']).to receive(:authenticate!) { user }
11
+ allow(controller).to receive(:current_user) { user }
12
+ end
13
+
14
+ describe 'GET index' do
15
+ it 'finds all Jobs' do
16
+ r = Job.make!
17
+ get :index
18
+ response.status.should
19
+ assigns(:jobs).include?(r).should == true
20
+ end
21
+ end
22
+
23
+ describe 'SHOW record' do
24
+ it 'finds the record' do
25
+ r = Job.make!
26
+ get :show, params: { id: r.id }
27
+ response.status.should == 200
28
+ end
29
+ end
30
+
31
+ describe 'NEW record' do
32
+ it 'renders the form for a new record' do
33
+ get :new
34
+ response.status.should == 200
35
+ end
36
+ end
37
+
38
+ describe 'CREATE record' do
39
+ it 'creates the record' do
40
+ r = Job.make
41
+ post :create, params: { job: r.attributes }
42
+ response.should redirect_to action: :show, id: Job.last.id
43
+ Job.last.title.should == r.title
44
+ end
45
+ end
46
+
47
+ describe 'EDIT record' do
48
+ it 'renders the edit form for an existing record' do
49
+ r = Job.make!
50
+ get :edit, params: { id: r.id }
51
+ response.status.should == 200
52
+ end
53
+ end
54
+
55
+ describe 'UPDATE record' do
56
+ it 'updates the record' do
57
+ r = Job.make!
58
+ put :update, params: { id: r.id, job: { title: 'New Name' } }
59
+ response.should redirect_to action: :show, id: r.id
60
+ Job.find(r.id).title.should == 'New Name'
61
+ end
62
+ end
63
+ end
@@ -1,66 +1,70 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe Admin::LocationsController, :type => :controller do
4
- render_views
5
-
6
- before :each do # Why can't I do this shit in a helper like I do for requests?
7
- user = double('user')
8
- allow(request.env['warden']).to receive(:authenticate!) { user }
9
- allow(controller).to receive(:current_user) { user }
10
- end
11
-
12
- describe "GET index" do
13
- it "finds all locations" do
14
- c = Location.make!
15
- get :index
16
- response.status.should == 200
17
- assigns(:locations).include?(c).should == true
18
- end
19
- end
20
-
21
- describe "SHOW record" do
22
- it "finds the record" do
23
- c = Location.make!
24
- get :show, params: { id: c.id }
25
- response.status.should == 200
26
- end
27
- end
28
-
29
- describe "NEW record" do
30
- # will fail until https://github.com/activeadmin/activeadmin/pull/4010 is merged
31
- it "renders the form for a new record" do
32
- get :new
33
- response.body.should =~ /location\[unreflected_id\]/
34
- response.status.should == 200
35
- end
36
- end
37
-
38
- describe "CREATE record" do
39
- it "creates the record" do
40
- c = Location.make
41
- gps = LocationGps.make
42
- post :create, params: { location: c.attributes.merge(gps_attributes: gps.attributes) }
43
- response.should redirect_to action: :show, id: Location.last.id
44
- Location.last.name.should == c.name
45
- Location.last.gps.lat.round(10).should == gps.lat.round(10)
46
- Location.last.gps.lng.round(10).should == gps.lng.round(10)
47
- end
48
- end
49
-
50
- describe "EDIT record" do
51
- it "renders the edit form for an existing record" do
52
- r = Location.make!
53
- get :edit, params: { id: r.id }
54
- response.status.should == 200
55
- end
56
- end
57
-
58
- describe "UPDATE record" do
59
- it "updates the record" do
60
- r = Location.make!
61
- put :update, params: { id: r.id, location: { name: "New Name" } }
62
- response.should redirect_to action: :show, id: r.id
63
- Location.find(r.id).name.should == "New Name"
64
- end
65
- end
66
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe Admin::LocationsController, type: :controller do
6
+ render_views
7
+
8
+ before :each do # Why can't I do this shit in a helper like I do for requests?
9
+ user = double('user')
10
+ allow(request.env['warden']).to receive(:authenticate!) { user }
11
+ allow(controller).to receive(:current_user) { user }
12
+ end
13
+
14
+ describe 'GET index' do
15
+ it 'finds all locations' do
16
+ c = Location.make!
17
+ get :index
18
+ response.status.should
19
+ assigns(:locations).include?(c).should == true
20
+ end
21
+ end
22
+
23
+ describe 'SHOW record' do
24
+ it 'finds the record' do
25
+ c = Location.make!
26
+ get :show, params: { id: c.id }
27
+ response.status.should == 200
28
+ end
29
+ end
30
+
31
+ describe 'NEW record' do
32
+ # will fail until https://github.com/activeadmin/activeadmin/pull/4010 is merged
33
+ it 'renders the form for a new record' do
34
+ get :new
35
+ response.body.should =~ /location\[unreflected_id\]/
36
+ response.status.should == 200
37
+ end
38
+ end
39
+
40
+ describe 'CREATE record' do
41
+ it 'creates the record' do
42
+ c = Location.make
43
+ gps = LocationGps.make
44
+ post :create, params: { location: c.attributes.merge(gps_attributes: gps.attributes) }
45
+ response.should redirect_to action: :show, id: Location.last.id
46
+ Location.last.name.should
47
+ c.name
48
+ Location.last.gps.lat.round(10).should
49
+ gps.lat.round(10)
50
+ Location.last.gps.lng.round(10).should == gps.lng.round(10)
51
+ end
52
+ end
53
+
54
+ describe 'EDIT record' do
55
+ it 'renders the edit form for an existing record' do
56
+ r = Location.make!
57
+ get :edit, params: { id: r.id }
58
+ response.status.should == 200
59
+ end
60
+ end
61
+
62
+ describe 'UPDATE record' do
63
+ it 'updates the record' do
64
+ r = Location.make!
65
+ put :update, params: { id: r.id, location: { name: 'New Name' } }
66
+ response.should redirect_to action: :show, id: r.id
67
+ Location.find(r.id).name.should == 'New Name'
68
+ end
69
+ end
70
+ end
@@ -1,73 +1,75 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe Admin::LocationBeaconsController, :type => :controller do
4
- render_views
5
-
6
- before :each do # Why can't I do this shit in a helper like I do for requests?
7
- user = double('user')
8
- allow(request.env['warden']).to receive(:authenticate!) { user }
9
- allow(controller).to receive(:current_user) { user }
10
- end
11
-
12
- describe "GET index" do
13
- it "finds all location beacons" do
14
- c = LocationBeacon.make!(last_known_battery_level: 50)
15
- d = LocationBeacon.make!(last_known_battery_level: 4)
16
- get :index
17
- response.status.should == 200
18
- assigns(:location_beacons).include?(c).should == true
19
- assigns(:location_beacons).include?(d).should == true
20
- end
21
-
22
- it "scopes location beacons by low battery level" do
23
- c = LocationBeacon.make!(last_known_battery_level: 50)
24
- d = LocationBeacon.make!(last_known_battery_level: 4)
25
- get :index, params: { scope: 'low_battery' }
26
- response.status.should == 200
27
- assigns(:location_beacons).include?(c).should == false
28
- assigns(:location_beacons).include?(d).should == true
29
- end
30
- end
31
-
32
- describe "SHOW record" do
33
- it "finds the record" do
34
- c = LocationBeacon.make!
35
- get :show, params: { id: c.id }
36
- response.status.should == 200
37
- end
38
- end
39
-
40
- describe "NEW record" do
41
- # will fail until https://github.com/activeadmin/activeadmin/pull/4010 is merged
42
- it "renders the form for a new record" do
43
- get :new
44
- response.status.should == 200
45
- end
46
- end
47
-
48
- describe "CREATE record" do
49
- it "creates the record" do
50
- c = LocationBeacon.make
51
- post :create, params: { location_beacon: c.attributes }
52
- response.should redirect_to action: :show, id: LocationBeacon.last.id
53
- LocationBeacon.last.mac_address.should =~ /#{c.mac_address}/i
54
- end
55
- end
56
-
57
- describe "EDIT record" do
58
- it "renders the edit form for an existing record" do
59
- r = LocationBeacon.make!
60
- get :edit, params: { id: r.id }
61
- response.status.should == 200
62
- end
63
- end
64
-
65
- describe "UPDATE record" do
66
- it "updates the record" do
67
- r = LocationBeacon.make!
68
- put :update, params: { id: r.id, location_beacon: { last_known_battery_level: 30 } }
69
- response.should redirect_to action: :show, id: r.id
70
- LocationBeacon.find(r.id).last_known_battery_level.should == 30
71
- end
72
- end
73
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe Admin::LocationBeaconsController, type: :controller do
6
+ render_views
7
+
8
+ before :each do # Why can't I do this shit in a helper like I do for requests?
9
+ user = double('user')
10
+ allow(request.env['warden']).to receive(:authenticate!) { user }
11
+ allow(controller).to receive(:current_user) { user }
12
+ end
13
+
14
+ describe 'GET index' do
15
+ it 'finds all location beacons' do
16
+ c = LocationBeacon.make!(last_known_battery_level: 50)
17
+ d = LocationBeacon.make!(last_known_battery_level: 4)
18
+ get :index
19
+ response.status.should
20
+ assigns(:location_beacons).include?(c).should
21
+ assigns(:location_beacons).include?(d).should == true
22
+ end
23
+
24
+ it 'scopes location beacons by low battery level' do
25
+ c = LocationBeacon.make!(last_known_battery_level: 50)
26
+ d = LocationBeacon.make!(last_known_battery_level: 4)
27
+ get :index, params: { scope: 'low_battery' }
28
+ response.status.should
29
+ assigns(:location_beacons).include?(c).should
30
+ assigns(:location_beacons).include?(d).should == true
31
+ end
32
+ end
33
+
34
+ describe 'SHOW record' do
35
+ it 'finds the record' do
36
+ c = LocationBeacon.make!
37
+ get :show, params: { id: c.id }
38
+ response.status.should == 200
39
+ end
40
+ end
41
+
42
+ describe 'NEW record' do
43
+ # will fail until https://github.com/activeadmin/activeadmin/pull/4010 is merged
44
+ it 'renders the form for a new record' do
45
+ get :new
46
+ response.status.should == 200
47
+ end
48
+ end
49
+
50
+ describe 'CREATE record' do
51
+ it 'creates the record' do
52
+ c = LocationBeacon.make
53
+ post :create, params: { location_beacon: c.attributes }
54
+ response.should redirect_to action: :show, id: LocationBeacon.last.id
55
+ LocationBeacon.last.mac_address.should =~ /#{c.mac_address}/i
56
+ end
57
+ end
58
+
59
+ describe 'EDIT record' do
60
+ it 'renders the edit form for an existing record' do
61
+ r = LocationBeacon.make!
62
+ get :edit, params: { id: r.id }
63
+ response.status.should == 200
64
+ end
65
+ end
66
+
67
+ describe 'UPDATE record' do
68
+ it 'updates the record' do
69
+ r = LocationBeacon.make!
70
+ put :update, params: { id: r.id, location_beacon: { last_known_battery_level: 30 } }
71
+ response.should redirect_to action: :show, id: r.id
72
+ LocationBeacon.find(r.id).last_known_battery_level.should == 30
73
+ end
74
+ end
75
+ end