resque-web 0.0.4 → 0.0.5

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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -0
  3. data/app/assets/javascripts/resque_web/application.js +0 -89
  4. data/app/assets/javascripts/resque_web/failure.js.coffee +7 -0
  5. data/app/assets/javascripts/resque_web/polling.js.coffee +25 -0
  6. data/app/assets/javascripts/resque_web/relative_date.js.coffee +27 -0
  7. data/app/assets/stylesheets/resque_web/{bootstrap_and_overrides.css.erb → bootstrap_and_overrides.css.scss} +1 -1
  8. data/app/controllers/resque_web/application_controller.rb +2 -0
  9. data/app/controllers/resque_web/queues_controller.rb +5 -0
  10. data/app/controllers/resque_web/stats_controller.rb +24 -5
  11. data/app/controllers/resque_web/workers_controller.rb +6 -1
  12. data/app/controllers/resque_web/working_controller.rb +4 -0
  13. data/app/helpers/resque_web/application_helper.rb +10 -6
  14. data/app/helpers/resque_web/failures_helper.rb +4 -0
  15. data/app/views/layouts/resque_web/application.html.erb +1 -1
  16. data/app/views/resque_web/failures/index.html.erb +18 -19
  17. data/app/views/resque_web/queues/show.html.erb +2 -2
  18. data/app/views/resque_web/stats/keys.html.erb +2 -4
  19. data/config/routes.rb +5 -1
  20. data/lib/resque_web/engine.rb +5 -0
  21. data/lib/resque_web/version.rb +1 -1
  22. data/test/dummy/log/development.log +2148 -0
  23. data/test/dummy/log/test.log +12499 -0
  24. data/test/dummy/tmp/cache/assets/development/sass/3700e9ce5293267736ba97e0c26f3d47c0831f78/bootstrap_and_overrides.css.scssc +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/267d0243760c55e0ff8039158fbfa98d +0 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/27702049a9de2629f2ed91cdd31be59f +0 -0
  27. data/test/dummy/tmp/cache/assets/development/sprockets/373b0c58027ae58f732cc7e48e62a522 +0 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/492baca6c94c6497c4cd84a8be19c680 +0 -0
  29. data/test/dummy/tmp/cache/assets/development/sprockets/4d22200fb380d8ae9d5f07525088622f +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/5a6bde0acfcefec77d80e353647b009d +0 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/62048721da4f3b03c45790b988031b97 +0 -0
  32. data/test/dummy/tmp/cache/assets/development/sprockets/68ef5c7f933ca591803bc207c78523d2 +0 -0
  33. data/test/dummy/tmp/cache/assets/development/sprockets/7cc1cf7c3cfd0a98060c98f3854c2623 +0 -0
  34. data/test/dummy/tmp/cache/assets/development/sprockets/823cf0a4ada4a293acf5ea2c94d0fe51 +0 -0
  35. data/test/dummy/tmp/cache/assets/development/sprockets/8fbf100e961e22baca23d1850b41e4d5 +0 -0
  36. data/test/dummy/tmp/cache/assets/development/sprockets/a14b14c6f9b0cc8813ccef7ebe52b946 +0 -0
  37. data/test/dummy/tmp/cache/assets/development/sprockets/a476c44dad10844e0f468821badf02fd +0 -0
  38. data/test/dummy/tmp/cache/assets/development/sprockets/b32b680312dc848727e94d9a05750037 +0 -0
  39. data/test/dummy/tmp/cache/assets/development/sprockets/b6f28ccc1808230b8d7f937253be2112 +0 -0
  40. data/test/dummy/tmp/cache/assets/development/sprockets/ccbf15c47a87da505803a6a215148d3a +0 -0
  41. data/test/dummy/tmp/cache/assets/development/sprockets/d9f00b466d45c065d1281b100de9311f +0 -0
  42. data/test/dummy/tmp/cache/assets/development/sprockets/e05ff4f8801c918dc89fef1d37880568 +0 -0
  43. data/test/dummy/tmp/cache/assets/test/sass/3700e9ce5293267736ba97e0c26f3d47c0831f78/bootstrap_and_overrides.css.scssc +0 -0
  44. data/test/dummy/tmp/cache/assets/test/sprockets/02fc0f32ed6d2b2e5865bfdf79df6ae5 +0 -0
  45. data/test/dummy/tmp/cache/assets/test/sprockets/032c0d9725e6f257678ff460b7ec61da +0 -0
  46. data/test/dummy/tmp/cache/assets/test/sprockets/0351bddf9b742970e5e314f04138c3cf +0 -0
  47. data/test/dummy/tmp/cache/assets/test/sprockets/0b685878ca84b0dd82f9836bd70d7340 +0 -0
  48. data/test/dummy/tmp/cache/assets/test/sprockets/0fbf718cb07a27a132ae7edba954fb40 +0 -0
  49. data/test/dummy/tmp/cache/assets/test/sprockets/15ec19285d7eabe2154ec51a428dc21c +0 -0
  50. data/test/dummy/tmp/cache/assets/test/sprockets/195ca31a7cf5107a657fb2d90e8dc35c +0 -0
  51. data/test/dummy/tmp/cache/assets/test/sprockets/256f88a09b236d9ddbde7985826d274d +0 -0
  52. data/test/dummy/tmp/cache/assets/test/sprockets/267d0243760c55e0ff8039158fbfa98d +0 -0
  53. data/test/dummy/tmp/cache/assets/test/sprockets/27702049a9de2629f2ed91cdd31be59f +0 -0
  54. data/test/dummy/tmp/cache/assets/test/sprockets/29f5fe6a38dbf15c9c6540d227e466d8 +0 -0
  55. data/test/dummy/tmp/cache/assets/test/sprockets/2a9f8ccd705f08ca1a66ef68d0967655 +0 -0
  56. data/test/dummy/tmp/cache/assets/test/sprockets/2ab37c1672b566feb5086d1efce4ef06 +0 -0
  57. data/test/dummy/tmp/cache/assets/test/sprockets/2d13e89fb36400e53d9d1f772a7306d3 +0 -0
  58. data/test/dummy/tmp/cache/assets/test/sprockets/323ae466a976c736904d337e04a77f0f +0 -0
  59. data/test/dummy/tmp/cache/assets/test/sprockets/32fdb0387d5cd8aba5f0185f10ccaf6b +0 -0
  60. data/test/dummy/tmp/cache/assets/test/sprockets/3300fcbaadb94dfc76a5e15a917d2a5c +0 -0
  61. data/test/dummy/tmp/cache/assets/test/sprockets/3404b8d7ffc0f3f7fb3f8c09a820ae2d +0 -0
  62. data/test/dummy/tmp/cache/assets/test/sprockets/34e1f36ce83865719fa7b26a65e34fba +0 -0
  63. data/test/dummy/tmp/cache/assets/test/sprockets/373b0c58027ae58f732cc7e48e62a522 +0 -0
  64. data/test/dummy/tmp/cache/assets/test/sprockets/395fd7e9d9dd28f6a1a225902df3d1b3 +0 -0
  65. data/test/dummy/tmp/cache/assets/test/sprockets/3af7b9731ca77394a5e3cd5484e047b3 +0 -0
  66. data/test/dummy/tmp/cache/assets/test/sprockets/3b603e358acbce7d4e6c7e53be5a8414 +0 -0
  67. data/test/dummy/tmp/cache/assets/test/sprockets/404fe327fe27745a105909c9d0d7dc0e +0 -0
  68. data/test/dummy/tmp/cache/assets/test/sprockets/429d37a3143b763262f09380204b6e7e +0 -0
  69. data/test/dummy/tmp/cache/assets/test/sprockets/4703603e63c6b5332b1710c8f80df833 +0 -0
  70. data/test/dummy/tmp/cache/assets/test/sprockets/4830cd721ae6d64fb5a86d30393ab181 +0 -0
  71. data/test/dummy/tmp/cache/assets/test/sprockets/492baca6c94c6497c4cd84a8be19c680 +0 -0
  72. data/test/dummy/tmp/cache/assets/test/sprockets/4b4f58fffb5873ecfe6f0feb8eaa0de6 +0 -0
  73. data/test/dummy/tmp/cache/assets/test/sprockets/4d22200fb380d8ae9d5f07525088622f +0 -0
  74. data/test/dummy/tmp/cache/assets/test/sprockets/4db5ecfa8e71040f6b070f2fe5d8830a +0 -0
  75. data/test/dummy/tmp/cache/assets/test/sprockets/4ff25675e9d69ac5d68dff1d4372f3d1 +0 -0
  76. data/test/dummy/tmp/cache/assets/test/sprockets/57db68673f85a8f19a095060304788f1 +0 -0
  77. data/test/dummy/tmp/cache/assets/test/sprockets/58209bfedfa5a8913da17d9dfe378ee5 +0 -0
  78. data/test/dummy/tmp/cache/assets/test/sprockets/58c189068622a1bf78f759f8f7851143 +0 -0
  79. data/test/dummy/tmp/cache/assets/test/sprockets/5af3b0789d5082831e9eaa717c4f0c3e +0 -0
  80. data/test/dummy/tmp/cache/assets/test/sprockets/62566022f4deb51d6a7ebc74ed5e0077 +0 -0
  81. data/test/dummy/tmp/cache/assets/test/sprockets/64369bdb2598739d4b56d393e84a2fc2 +0 -0
  82. data/test/dummy/tmp/cache/assets/test/sprockets/64ea7d9eaa6f2720d29f54d945cf527e +0 -0
  83. data/test/dummy/tmp/cache/assets/test/sprockets/68ef5c7f933ca591803bc207c78523d2 +0 -0
  84. data/test/dummy/tmp/cache/assets/test/sprockets/6abca5d2fa4f208d859608aaab9a86aa +0 -0
  85. data/test/dummy/tmp/cache/assets/test/sprockets/6b333684cc88cc858701e0ff2a0fcc96 +0 -0
  86. data/test/dummy/tmp/cache/assets/test/sprockets/6ceaff99fe282a7a75bb97f927d693dd +0 -0
  87. data/test/dummy/tmp/cache/assets/test/sprockets/6e7acd6f7443db46070d24f98875e26b +0 -0
  88. data/test/dummy/tmp/cache/assets/test/sprockets/700f27aaa765d8d3752a1a26a0e2b6de +0 -0
  89. data/test/dummy/tmp/cache/assets/test/sprockets/718edbc6b6e91350bc4f9c696ba2eabe +0 -0
  90. data/test/dummy/tmp/cache/assets/test/sprockets/722f2a204ab15e0261bc526aa3ea4a3d +0 -0
  91. data/test/dummy/tmp/cache/assets/test/sprockets/79965bea5ecea07173592c30b2d7cd4a +0 -0
  92. data/test/dummy/tmp/cache/assets/test/sprockets/7a2aaf3f4f2464cab9a6a546516d6093 +0 -0
  93. data/test/dummy/tmp/cache/assets/test/sprockets/7cc1cf7c3cfd0a98060c98f3854c2623 +0 -0
  94. data/test/dummy/tmp/cache/assets/test/sprockets/7dcef8f4767eeae44ff2368ed119f80d +0 -0
  95. data/test/dummy/tmp/cache/assets/test/sprockets/7e982e844962031ecd1bfc047979da8e +0 -0
  96. data/test/dummy/tmp/cache/assets/test/sprockets/81cde34de1dc552dabbc5f1cb007756a +0 -0
  97. data/test/dummy/tmp/cache/assets/test/sprockets/822f558a291238c0e1243baa05dc0078 +0 -0
  98. data/test/dummy/tmp/cache/assets/test/sprockets/823cf0a4ada4a293acf5ea2c94d0fe51 +0 -0
  99. data/test/dummy/tmp/cache/assets/test/sprockets/8347d8bab74b0f7d886d8956383f9529 +0 -0
  100. data/test/dummy/tmp/cache/assets/test/sprockets/854305634174de2dfc6115e0d05de74a +0 -0
  101. data/test/dummy/tmp/cache/assets/test/sprockets/871f29c20b88dc490ec27567227d0ced +0 -0
  102. data/test/dummy/tmp/cache/assets/test/sprockets/8855c560fba1bd85e26f55568144a4d5 +0 -0
  103. data/test/dummy/tmp/cache/assets/test/sprockets/8d90527f6d78f66cd9a0e1b6d80540ea +0 -0
  104. data/test/dummy/tmp/cache/assets/test/sprockets/8db5e0838ccc7af599bed9d1583d9536 +0 -0
  105. data/test/dummy/tmp/cache/assets/test/sprockets/8e526dc1a43ba261ea96cc7d60a38f3f +0 -0
  106. data/test/dummy/tmp/cache/assets/test/sprockets/8ede852c2a9449d78c01e89499f273e5 +0 -0
  107. data/test/dummy/tmp/cache/assets/test/sprockets/8f0bb559073ecfcd453b2edf3b3942d9 +0 -0
  108. data/test/dummy/tmp/cache/assets/test/sprockets/8fbf100e961e22baca23d1850b41e4d5 +0 -0
  109. data/test/dummy/tmp/cache/assets/test/sprockets/90bf5c76a5b601d800906b8f3378cd4a +0 -0
  110. data/test/dummy/tmp/cache/assets/test/sprockets/946024650dc58c11ad04e5276406dbaf +0 -0
  111. data/test/dummy/tmp/cache/assets/test/sprockets/9950bbaad1c8200f7c5211be2ff9dde9 +0 -0
  112. data/test/dummy/tmp/cache/assets/test/sprockets/9ab5bb1f2843f449ae54518739b99fe0 +0 -0
  113. data/test/dummy/tmp/cache/assets/test/sprockets/9bae2543ee8034cbd1cb0dc7fdb66551 +0 -0
  114. data/test/dummy/tmp/cache/assets/test/sprockets/a476c44dad10844e0f468821badf02fd +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sprockets/a491611d8a81efd7b36e6598d7164775 +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sprockets/a5338dffdab56b5e26f8cb798f3d3fbd +0 -0
  117. data/test/dummy/tmp/cache/assets/test/sprockets/a86260e43f4af99c33552e1d15c1beff +0 -0
  118. data/test/dummy/tmp/cache/assets/test/sprockets/a8daa7ca89f875fa27015cfbed019daf +0 -0
  119. data/test/dummy/tmp/cache/assets/test/sprockets/a8ffd37644d986072d5bdb95109200fd +0 -0
  120. data/test/dummy/tmp/cache/assets/test/sprockets/a97936f8de2ec1ac226ff6adfa10c58a +0 -0
  121. data/test/dummy/tmp/cache/assets/test/sprockets/aa129daab62391fd5a7e4da2629c16c3 +0 -0
  122. data/test/dummy/tmp/cache/assets/test/sprockets/ab9f83c297cdf1b77e2757ac42bd046e +0 -0
  123. data/test/dummy/tmp/cache/assets/test/sprockets/ac46bc10e41a078e53c502585d18a2fd +0 -0
  124. data/test/dummy/tmp/cache/assets/test/sprockets/b32b680312dc848727e94d9a05750037 +0 -0
  125. data/test/dummy/tmp/cache/assets/test/sprockets/b66838b2bbafc524cb33bcf0245bb634 +0 -0
  126. data/test/dummy/tmp/cache/assets/test/sprockets/c14a109a9ad16a532a14457fd85ef40d +0 -0
  127. data/test/dummy/tmp/cache/assets/test/sprockets/c50a3882a8af8120296e694171a75a76 +0 -0
  128. data/test/dummy/tmp/cache/assets/test/sprockets/c7c8b271f30a25ebed6ed14122a73d8d +0 -0
  129. data/test/dummy/tmp/cache/assets/test/sprockets/c8d75f093577f5a4d8371b8097c1d2a0 +0 -0
  130. data/test/dummy/tmp/cache/assets/test/sprockets/c90e9c573e54b170859449cb2ceb3a7a +0 -0
  131. data/test/dummy/tmp/cache/assets/test/sprockets/ccbf15c47a87da505803a6a215148d3a +0 -0
  132. data/test/dummy/tmp/cache/assets/test/sprockets/d2c9ab6cb2ffab9203c49e8aa8a8638a +0 -0
  133. data/test/dummy/tmp/cache/assets/test/sprockets/d3347e44949d8909be6fb1d64cfb9967 +0 -0
  134. data/test/dummy/tmp/cache/assets/test/sprockets/d3b37b59d7bfbff886d5fe9196331477 +0 -0
  135. data/test/dummy/tmp/cache/assets/test/sprockets/d572fd50d855d3cfca311d6a7d613483 +0 -0
  136. data/test/dummy/tmp/cache/assets/test/sprockets/d9f00b466d45c065d1281b100de9311f +0 -0
  137. data/test/dummy/tmp/cache/assets/test/sprockets/da24d6ed6605c160606df54829bd2243 +0 -0
  138. data/test/dummy/tmp/cache/assets/test/sprockets/db86602761e31ddd6facdfdf79b09545 +0 -0
  139. data/test/dummy/tmp/cache/assets/test/sprockets/dc94fd89d95deffd26d73a2dc7839c5c +0 -0
  140. data/test/dummy/tmp/cache/assets/test/sprockets/de8c7c42ab9ce204bd092917cab19b7b +0 -0
  141. data/test/dummy/tmp/cache/assets/test/sprockets/df621608c5dbad64a79460c92a787133 +0 -0
  142. data/test/dummy/tmp/cache/assets/test/sprockets/df794e3dae763f3ff0c96f05147eadc6 +0 -0
  143. data/test/dummy/tmp/cache/assets/test/sprockets/e05ff4f8801c918dc89fef1d37880568 +0 -0
  144. data/test/dummy/tmp/cache/assets/test/sprockets/e48e226b900fedce58cd317408956ddf +0 -0
  145. data/test/dummy/tmp/cache/assets/test/sprockets/e49c4d8ec8434e5f0015f356cd1b9e62 +0 -0
  146. data/test/dummy/tmp/cache/assets/test/sprockets/e4b617370a479f0edc146ad94b472b46 +0 -0
  147. data/test/dummy/tmp/cache/assets/test/sprockets/e71835fce5a1cd93cf2d176e8d72c34a +0 -0
  148. data/test/dummy/tmp/cache/assets/test/sprockets/e8606c009704eb4d9fd929abafc4e24b +0 -0
  149. data/test/dummy/tmp/cache/assets/test/sprockets/efc408ad768caf0eccd8bf07e13bd0c3 +0 -0
  150. data/test/dummy/tmp/cache/assets/test/sprockets/f2f0052d6146026489e3d05e891e6fe9 +0 -0
  151. data/test/dummy/tmp/cache/assets/test/sprockets/f7334b050d787bac849d2728a2fd4b1f +0 -0
  152. data/test/dummy/tmp/cache/assets/test/sprockets/f81463d0d5bd6cf7d83cdaaaaf320dff +0 -0
  153. data/test/dummy/tmp/cache/assets/test/sprockets/fac0cf39deee2f9a7dc39c3123bd8648 +0 -0
  154. data/test/functional/queues_controller_test.rb +27 -6
  155. data/test/functional/stats_controller_test.rb +67 -4
  156. data/test/functional/workers_controller_test.rb +23 -4
  157. data/test/functional/working_controller_test.rb +16 -4
  158. data/test/integration/plugin_integration_test.rb +72 -0
  159. data/test/test_helper.rb +1 -1
  160. data/test/unit/helpers/failures_helper_test.rb +11 -0
  161. metadata +473 -244
  162. data/lib/resque_web/tabs.rb +0 -21
  163. data/test/dummy/tmp/pids/server.pid +0 -1
@@ -6,18 +6,39 @@ module ResqueWeb
6
6
 
7
7
  setup do
8
8
  @routes = Engine.routes
9
+ Resque.push(queue_name, class: 'ExampleJob')
10
+ end
11
+
12
+ teardown do
13
+ Resque.remove_queue(queue_name)
9
14
  end
10
15
 
11
16
  let(:queue_name) { 'example_queue' }
12
17
 
13
- it "deletes queues" do
14
- Resque.push(queue_name, :class => 'ExampleJob')
15
- Resque.queues.include?(queue_name).must_equal true
18
+ describe "GET /index" do
19
+ it "renders the index page" do
20
+ visit(:index)
21
+ assert_template :index
22
+ end
23
+ end
24
+
25
+ describe "GET /show" do
26
+ it "renders the show page" do
27
+ visit(:show, id: queue_name)
28
+ assert_template :show
29
+ end
30
+ end
16
31
 
17
- visit(:destroy, {:id => queue_name}, :method => :delete)
18
- assert_redirected_to queues_path
32
+ describe "DELETE /destroy" do
33
+ it "deletes queues" do
34
+ visit(:destroy, {id: queue_name}, method: :delete)
35
+ assert_redirected_to queues_path
36
+ end
19
37
 
20
- Resque.queues.include?(queue_name).wont_equal true
38
+ it "deletes queues" do
39
+ visit(:destroy, {id: queue_name}, method: :delete)
40
+ Resque.queues.include?(queue_name).wont_equal true
41
+ end
21
42
  end
22
43
  end
23
44
  end
@@ -1,7 +1,70 @@
1
1
  require 'test_helper'
2
2
 
3
- class StatsControllerTest < ActionController::TestCase
4
- # test "the truth" do
5
- # assert true
6
- # end
3
+ module ResqueWeb
4
+ class StatsControllerTest < ActionController::TestCase
5
+ include ControllerTestHelpers
6
+
7
+ setup do
8
+ @routes = Engine.routes
9
+ end
10
+
11
+ describe "GET /index" do
12
+ it "redirects to resque" do
13
+ visit(:index)
14
+ assert_redirected_to action: "resque"
15
+ end
16
+ end
17
+
18
+ describe "GET /resque" do
19
+ it "renders the resque page" do
20
+ visit(:resque)
21
+ assert_template :resque
22
+ end
23
+ end
24
+
25
+ describe "GET /resque.json" do
26
+ it "renders the resque page" do
27
+ visit(:resque, format: 'json')
28
+ assert_equal response.body, Hash[Resque.info.sort].to_json
29
+ end
30
+ end
31
+
32
+ describe "GET /redis" do
33
+ it "renders the redis page" do
34
+ visit(:redis)
35
+ assert_template :redis
36
+ end
37
+ end
38
+
39
+ describe "GET /redis.json" do
40
+ it "renders the redis page" do
41
+ expected = Resque.redis.info
42
+ Resque.redis.stubs(:info).returns(expected)
43
+ visit(:redis, format: 'json')
44
+ assert_equal response.body, Hash[expected.sort].to_json
45
+ end
46
+ end
47
+
48
+ describe "GET /keys" do
49
+ it "renders the keys page" do
50
+ visit(:keys)
51
+ assert_template :keys
52
+ end
53
+ end
54
+
55
+ describe "GET /keys/:id" do
56
+ it "renders the keys page" do
57
+ visit(:keys, id: "failed")
58
+ assert_template :key
59
+ end
60
+ end
61
+
62
+ describe "GET /keys.json" do
63
+ it "renders the keys page" do
64
+ visit(:keys, format: 'json')
65
+ assert_equal response.body, Resque.keys.sort.to_json
66
+ end
67
+ end
68
+
69
+ end
7
70
  end
@@ -1,7 +1,26 @@
1
1
  require 'test_helper'
2
2
 
3
- class WorkersControllerTest < ActionController::TestCase
4
- # test "the truth" do
5
- # assert true
6
- # end
3
+ module ResqueWeb
4
+ class WorkersControllerTest < ActionController::TestCase
5
+ include ControllerTestHelpers
6
+
7
+ setup do
8
+ @routes = Engine.routes
9
+ end
10
+
11
+ describe "GET /index" do
12
+ it "renders the index page" do
13
+ visit(:index)
14
+ assert_template :index
15
+ end
16
+ end
17
+
18
+ describe "GET /show" do
19
+ it "renders the show page" do
20
+ visit(:show, id: "all")
21
+ assert_template :show
22
+ end
23
+ end
24
+
25
+ end
7
26
  end
@@ -1,7 +1,19 @@
1
1
  require 'test_helper'
2
2
 
3
- class WorkingControllerTest < ActionController::TestCase
4
- # test "the truth" do
5
- # assert true
6
- # end
3
+ module ResqueWeb
4
+ class WorkingControllerTest < ActionController::TestCase
5
+ include ControllerTestHelpers
6
+
7
+ setup do
8
+ @routes = Engine.routes
9
+ end
10
+
11
+ describe "GET /index" do
12
+ it "renders the index page" do
13
+ visit(:index)
14
+ assert_template :index
15
+ end
16
+ end
17
+
18
+ end
7
19
  end
@@ -0,0 +1,72 @@
1
+ require 'test_helper'
2
+
3
+ module ResqueWeb
4
+ class PluginIntegrationTest < ActionDispatch::IntegrationTest
5
+
6
+ module ResqueWeb::Plugins::ResqueWebTestPlugin
7
+ class Engine < ::Rails::Engine
8
+ isolate_namespace ResqueWeb::Plugins::ResqueWebTestPlugin
9
+ end
10
+ class PlugintestController < ApplicationController
11
+ def index
12
+ render text: "hello from test plugin", layout: true
13
+ end
14
+ end
15
+
16
+ Engine.routes.draw do
17
+ resources :plugintest, :only => [:index]
18
+ root to: 'plugintest#index'
19
+ end
20
+ def self.engine_path
21
+ "/plugin_test"
22
+ end
23
+ def self.tabs
24
+ [{'plugin test' => Engine.app.url_helpers.plugintest_index_path}]
25
+ end
26
+ end
27
+
28
+ def visit(action, params = {}, options = {})
29
+ method = options.delete(:method) || :get
30
+
31
+ user = ENV["RESQUE_WEB_HTTP_BASIC_AUTH_USER"]
32
+ password = ENV["RESQUE_WEB_HTTP_BASIC_AUTH_PASSWORD"]
33
+
34
+ if options[:auth] == :disabled
35
+ ENV["RESQUE_WEB_HTTP_BASIC_AUTH_USER"] = nil
36
+ ENV["RESQUE_WEB_HTTP_BASIC_AUTH_PASSWORD"] = nil
37
+ else
38
+ env = {}
39
+ env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials(
40
+ options[:user] || user, options[:password] || password
41
+ ) unless options[:auth] == false
42
+ end
43
+
44
+ send(method, action, params, env)
45
+
46
+ ENV["RESQUE_WEB_HTTP_BASIC_AUTH_USER"] = user
47
+ ENV["RESQUE_WEB_HTTP_BASIC_AUTH_PASSWORD"] = password
48
+ end
49
+
50
+ setup do
51
+ @routes = Engine.routes
52
+ Dummy::Application.reload_routes!
53
+ end
54
+
55
+ describe "resque web plugins" do
56
+ it "adds the routes" do
57
+ paths = @routes.routes.map{|m| m.path.spec.to_s}
58
+ paths.must_include "/plugin_test"
59
+ end
60
+
61
+ it "renders the plugins action" do
62
+ visit "/resque_web/plugin_test/plugintest"
63
+ @response.body.must_include "hello from test plugin"
64
+ end
65
+
66
+ it "adds a tab for the plugin" do
67
+ visit "/resque_web/"
68
+ @response.body.must_include "<a href=\"/resque_web/plugin_test/plugintest\">Plugin test</a>"
69
+ end
70
+ end
71
+ end
72
+ end
data/test/test_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'redcard'
2
- require 'tooling/profiler/profiler' if RedCard.check :rubinius
2
+ require 'profiler' if RedCard.check :rubinius
3
3
 
4
4
  require 'coveralls'
5
5
  Coveralls.wear! 'rails'
@@ -1,4 +1,15 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class FailuresHelperTest < ActionView::TestCase
4
+ include ResqueWeb::FailuresHelper
5
+
6
+ test "failure_queue_name without params queue" do
7
+ assert_equal failure_queue_name, "Failed"
8
+ end
9
+
10
+ test "failure_queue_name with a params queue" do
11
+ params[:queue] = "QueueName"
12
+ assert_equal failure_queue_name, "QueueName"
13
+ end
14
+
4
15
  end