jinda 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/generators/jinda/install_generator.rb +2 -0
  4. data/lib/generators/jinda/templates/app/assets/config/manifest.js +0 -0
  5. data/lib/generators/jinda/templates/app/assets/images/4dcity-old.ico +0 -0
  6. data/lib/generators/jinda/templates/app/assets/images/4dcity.ico +0 -0
  7. data/lib/generators/jinda/templates/app/assets/images/account.png +0 -0
  8. data/lib/generators/jinda/templates/app/assets/images/add.png +0 -0
  9. data/lib/generators/jinda/templates/app/assets/images/ajax-loader-circle.gif +0 -0
  10. data/lib/generators/jinda/templates/app/assets/images/ajax-loader.gif +0 -0
  11. data/lib/generators/jinda/templates/app/assets/images/anchor.png +0 -0
  12. data/lib/generators/jinda/templates/app/assets/images/application_double.png +0 -0
  13. data/lib/generators/jinda/templates/app/assets/images/application_form_edit.png +0 -0
  14. data/lib/generators/jinda/templates/app/assets/images/arrow_left.png +0 -0
  15. data/lib/generators/jinda/templates/app/assets/images/arrow_right.png +0 -0
  16. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_left.png +0 -0
  17. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_right.png +0 -0
  18. data/lib/generators/jinda/templates/app/assets/images/calendar.png +0 -0
  19. data/lib/generators/jinda/templates/app/assets/images/cancel.png +0 -0
  20. data/lib/generators/jinda/templates/app/assets/images/chart_bar.png +0 -0
  21. data/lib/generators/jinda/templates/app/assets/images/clock.png +0 -0
  22. data/lib/generators/jinda/templates/app/assets/images/cog.png +0 -0
  23. data/lib/generators/jinda/templates/app/assets/images/control_fastforward.png +0 -0
  24. data/lib/generators/jinda/templates/app/assets/images/control_play.png +0 -0
  25. data/lib/generators/jinda/templates/app/assets/images/cross.png +0 -0
  26. data/lib/generators/jinda/templates/app/assets/images/delete.png +0 -0
  27. data/lib/generators/jinda/templates/app/assets/images/external-link.png +0 -0
  28. data/lib/generators/jinda/templates/app/assets/images/facebooksmall.png +0 -0
  29. data/lib/generators/jinda/templates/app/assets/images/favicon.ico +0 -0
  30. data/lib/generators/jinda/templates/app/assets/images/freemind(mm).png +0 -0
  31. data/lib/generators/jinda/templates/app/assets/images/help.png +0 -0
  32. data/lib/generators/jinda/templates/app/assets/images/highway-menu.png +0 -0
  33. data/lib/generators/jinda/templates/app/assets/images/highway.png +0 -0
  34. data/lib/generators/jinda/templates/app/assets/images/house.png +0 -0
  35. data/lib/generators/jinda/templates/app/assets/images/icons-18-black.png +0 -0
  36. data/lib/generators/jinda/templates/app/assets/images/icons-18-white.png +0 -0
  37. data/lib/generators/jinda/templates/app/assets/images/icons-36-black.png +0 -0
  38. data/lib/generators/jinda/templates/app/assets/images/icons-36-white.png +0 -0
  39. data/lib/generators/jinda/templates/app/assets/images/logo.png +0 -0
  40. data/lib/generators/jinda/templates/app/assets/images/logo_jinda.png +0 -0
  41. data/lib/generators/jinda/templates/app/assets/images/logout.png +0 -0
  42. data/lib/generators/jinda/templates/app/assets/images/new.gif +0 -0
  43. data/lib/generators/jinda/templates/app/assets/images/new.png +0 -0
  44. data/lib/generators/jinda/templates/app/assets/images/page.png +0 -0
  45. data/lib/generators/jinda/templates/app/assets/images/page_attach.png +0 -0
  46. data/lib/generators/jinda/templates/app/assets/images/page_green.png +0 -0
  47. data/lib/generators/jinda/templates/app/assets/images/page_output.png +0 -0
  48. data/lib/generators/jinda/templates/app/assets/images/page_pdf.png +0 -0
  49. data/lib/generators/jinda/templates/app/assets/images/pencil.png +0 -0
  50. data/lib/generators/jinda/templates/app/assets/images/printer.png +0 -0
  51. data/lib/generators/jinda/templates/app/assets/images/refresh.png +0 -0
  52. data/lib/generators/jinda/templates/app/assets/images/report.png +0 -0
  53. data/lib/generators/jinda/templates/app/assets/images/rssmall.png +0 -0
  54. data/lib/generators/jinda/templates/app/assets/images/tick.png +0 -0
  55. data/lib/generators/jinda/templates/app/assets/images/twittersmall.png +0 -0
  56. data/lib/generators/jinda/templates/app/assets/images/user.png +0 -0
  57. data/lib/generators/jinda/templates/app/assets/images/view_code.png +0 -0
  58. data/lib/generators/jinda/templates/app/assets/javascripts/application.js.bak +15 -0
  59. data/lib/generators/jinda/templates/app/assets/javascripts/cable.js +0 -0
  60. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/application.js-jqm +0 -0
  61. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/disable_enter_key.js +0 -0
  62. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/iscroll-wrapper.js +0 -0
  63. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/iscroll.js +0 -0
  64. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jinda.js +0 -0
  65. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jquery.mobile-1.2.1.js +0 -0
  66. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jquery.mobile.datebox.js +0 -0
  67. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jquery.mobile.splitview.js +0 -0
  68. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.bak +15 -0
  69. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.eot +0 -0
  70. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
  71. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.woff +0 -0
  72. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  73. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  74. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  75. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  76. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  77. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  78. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew.css +0 -0
  79. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  80. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  81. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  82. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  83. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  84. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  85. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  86. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  87. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  88. data/lib/generators/jinda/templates/app/assets/stylesheets/images/ajax-loader.gif +0 -0
  89. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_black.png +0 -0
  90. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_blue.png +0 -0
  91. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_red.png +0 -0
  92. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-black.png +0 -0
  93. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-white.png +0 -0
  94. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-black.png +0 -0
  95. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-white.png +0 -0
  96. data/lib/generators/jinda/templates/app/assets/stylesheets/images/indicator.gif +0 -0
  97. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/application.scss-jqm +0 -0
  98. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/articles.scss +0 -0
  99. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jinda.css +0 -0
  100. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile-1.2.1.css +0 -0
  101. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile.datebox.css +0 -0
  102. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile.grids.collapsible.css +0 -0
  103. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile.splitview.css +0 -0
  104. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/kul-4.2.css +0 -0
  105. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/kul-4.2.min.css +0 -0
  106. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/sarabun.css +0 -0
  107. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +0 -0
  108. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +0 -0
  109. data/lib/generators/jinda/templates/app/controllers/admins_controller.rb +0 -0
  110. data/lib/generators/jinda/templates/app/controllers/application_controller.rb +0 -0
  111. data/lib/generators/jinda/templates/app/controllers/application_controller.rb.bak +2 -0
  112. data/lib/generators/jinda/templates/app/controllers/comments_controller.rb +0 -0
  113. data/lib/generators/jinda/templates/app/controllers/ctrs_controller.rb-gem-test +0 -0
  114. data/lib/generators/jinda/templates/app/controllers/devs_controller.rb +0 -0
  115. data/lib/generators/jinda/templates/app/controllers/identities_controller.rb +0 -0
  116. data/lib/generators/jinda/templates/app/controllers/password_resets.rb +0 -0
  117. data/lib/generators/jinda/templates/app/controllers/password_resets_controller.rb +0 -0
  118. data/lib/generators/jinda/templates/app/controllers/sessions_controller.rb +8 -6
  119. data/lib/generators/jinda/templates/app/controllers/sitemap_controller.rb +0 -0
  120. data/lib/generators/jinda/templates/app/controllers/users_controller.rb +0 -0
  121. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +0 -0
  122. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +0 -0
  123. data/lib/generators/jinda/templates/app/helpers/application_helper.rb.bak +2 -0
  124. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +0 -0
  125. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +0 -0
  126. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +0 -0
  127. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +0 -0
  128. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +0 -0
  129. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +0 -0
  130. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +0 -0
  131. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +0 -0
  132. data/lib/generators/jinda/templates/app/jobs/application_job.rb +0 -0
  133. data/lib/generators/jinda/templates/app/mailers/application_mailer.rb +0 -0
  134. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +0 -0
  135. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +0 -0
  136. data/lib/generators/jinda/templates/app/models/address.rb +0 -0
  137. data/lib/generators/jinda/templates/app/models/ckeditor/asset.rb +0 -0
  138. data/lib/generators/jinda/templates/app/models/ckeditor/attachment_file.rb +0 -0
  139. data/lib/generators/jinda/templates/app/models/ckeditor/picture.rb +0 -0
  140. data/lib/generators/jinda/templates/app/models/identity.rb +0 -0
  141. data/lib/generators/jinda/templates/app/models/jinda/module.rb +0 -0
  142. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +0 -0
  143. data/lib/generators/jinda/templates/app/models/jinda/role.rb +0 -0
  144. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +0 -0
  145. data/lib/generators/jinda/templates/app/models/jinda/service.rb +0 -0
  146. data/lib/generators/jinda/templates/app/models/param.rb +0 -0
  147. data/lib/generators/jinda/templates/app/models/person.rb +0 -0
  148. data/lib/generators/jinda/templates/app/views/adminbsbs/content.haml +0 -0
  149. data/lib/generators/jinda/templates/app/views/admins/edit_role/edit_role.html.erb +0 -0
  150. data/lib/generators/jinda/templates/app/views/admins/edit_role/select_user.html.erb +0 -0
  151. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile1.html.erb +0 -0
  152. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile2.html.erb +0 -0
  153. data/lib/generators/jinda/templates/app/views/ctrs/vfolder2/viewfile2.html.erb +0 -0
  154. data/lib/generators/jinda/templates/app/views/custom/_adsense.haml +0 -0
  155. data/lib/generators/jinda/templates/app/views/identities/new.html.erb +0 -0
  156. data/lib/generators/jinda/templates/app/views/jinda/_activity.md +0 -0
  157. data/lib/generators/jinda/templates/app/views/jinda/_model.md +0 -0
  158. data/lib/generators/jinda/templates/app/views/jinda/_modul.md +0 -0
  159. data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +0 -0
  160. data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +0 -0
  161. data/lib/generators/jinda/templates/app/views/jinda/_service.md +0 -0
  162. data/lib/generators/jinda/templates/app/views/jinda/_static.haml +0 -0
  163. data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +0 -0
  164. data/lib/generators/jinda/templates/app/views/jinda/doc.md +0 -0
  165. data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +0 -0
  166. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +0 -0
  167. data/lib/generators/jinda/templates/app/views/jinda/help.haml +0 -0
  168. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +1 -1
  169. data/lib/generators/jinda/templates/app/views/jinda/logs.haml +0 -0
  170. data/lib/generators/jinda/templates/app/views/jinda/pending.haml +0 -0
  171. data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +0 -0
  172. data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +0 -0
  173. data/lib/generators/jinda/templates/app/views/jinda/search.haml +0 -0
  174. data/lib/generators/jinda/templates/app/views/jinda/status.haml +0 -0
  175. data/lib/generators/jinda/templates/app/views/jinda_mailer/gmail.html.erb +0 -0
  176. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +0 -0
  177. data/lib/generators/jinda/templates/app/views/layouts/_meta_tags.html.erb +0 -0
  178. data/lib/generators/jinda/templates/app/views/layouts/_metatag.html.erb +0 -0
  179. data/lib/generators/jinda/templates/app/views/layouts/application.haml +0 -0
  180. data/lib/generators/jinda/templates/app/views/layouts/application.html.erb.bak +15 -0
  181. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +0 -0
  182. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +0 -0
  183. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +0 -0
  184. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +0 -0
  185. data/lib/generators/jinda/templates/app/views/layouts/bsb/_rightbar.haml +0 -0
  186. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +0 -0
  187. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +0 -0
  188. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +0 -0
  189. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +0 -0
  190. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +0 -0
  191. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +0 -0
  192. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +0 -0
  193. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +0 -0
  194. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +0 -0
  195. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +0 -0
  196. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +0 -0
  197. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +0 -0
  198. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +0 -0
  199. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +0 -0
  200. data/lib/generators/jinda/templates/app/views/new.html.erb +0 -0
  201. data/lib/generators/jinda/templates/app/views/password_resets/edit.html.erb +0 -0
  202. data/lib/generators/jinda/templates/app/views/password_resets/new.html.erb +0 -0
  203. data/lib/generators/jinda/templates/app/views/sessions/new.html.erb +0 -0
  204. data/lib/generators/jinda/templates/app/views/sitemap/index.xml.haml +0 -0
  205. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.html.haml +0 -0
  206. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.erb +0 -0
  207. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.haml +0 -0
  208. data/lib/generators/jinda/templates/app/views/users/index.haml +0 -0
  209. data/lib/generators/jinda/templates/app/views/users/pwd/enter.html.erb +0 -0
  210. data/lib/generators/jinda/templates/app/views/users/user/enter_user.html.erb +0 -0
  211. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +102 -0
  212. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +23 -0
  213. data/lib/generators/jinda/templates/spec/models/user_spec.rbx +30 -0
  214. data/lib/generators/jinda/templates/spec/{helpers/rails_helper.rb → rails_helper.rb} +13 -4
  215. data/lib/generators/jinda/templates/spec/spec_helper.rb +114 -0
  216. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +6 -0
  217. data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +35 -0
  218. data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +14 -0
  219. data/lib/jinda/version.rb +1 -1
  220. metadata +15 -8
  221. data/lib/generators/jinda/templates/spec/controllers/articles_controller_spec.rb +0 -155
  222. data/lib/generators/jinda/templates/spec/helpers/spec_helper.rb +0 -96
  223. data/lib/generators/jinda/templates/spec/models/user_spec.rb +0 -26
  224. data/lib/generators/jinda/templates/spec/requests/jinda_routes_spec.rb +0 -82
  225. data/lib/generators/jinda/templates/spec/requests/password_resets_spec.rb +0 -15
@@ -20,7 +20,7 @@
20
20
 
21
21
  %h2 Installation
22
22
  %ul
23
- %li add gem 'jinda', '0.2.7'
23
+ %li add gem 'jinda', '0.2.8'
24
24
  %li bundle
25
25
  %li rails generate jinda:install
26
26
  %li bundle
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Block270</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
9
+ <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
10
+ </head>
11
+
12
+ <body>
13
+ <%= yield %>
14
+ </body>
15
+ </html>
@@ -0,0 +1,102 @@
1
+ # essions_controller_spec.rb
2
+ require 'spec_helper'
3
+
4
+ describe SessionsController do
5
+
6
+ describe "Google" do
7
+
8
+ before do
9
+ request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:google_oauth2]
10
+ end
11
+
12
+ describe "#create" do
13
+
14
+ it "should successfully create a user" do
15
+ expect {
16
+ post :create, params: {provider: :google_oauth2}
17
+ }.to change{ Jinda::User.count }.by(1)
18
+ end
19
+
20
+ it "should successfully create a session" do
21
+ session[:user_id].should be_nil
22
+ post :create, params: {provider: :google_oauth2}
23
+ session[:user_id].should_not be_nil
24
+ end
25
+
26
+ it "should redirect the user to the articles/my url" do
27
+ post :create, params: {provider: :google_oauth2}
28
+ response.should redirect_to articles_my_path
29
+ end
30
+
31
+ end
32
+
33
+ describe "#destroy", js: true do
34
+ before do
35
+ post :create, params: {provider: :google_oauth2}
36
+ end
37
+
38
+ it "should clear the session" do
39
+ session[:user_id].should_not be_nil
40
+ delete :destroy
41
+ session[:user_id].should be_nil
42
+ end
43
+
44
+ it "should redirect to the home page" do
45
+ delete :destroy
46
+ # response.should redirect_to root_url
47
+ # https://stackoverflow.com/questions/5144758/how-to-test-a-javascript-redirect-with-rspec
48
+ response.body.should include("window.location")
49
+ end
50
+ end
51
+ end
52
+
53
+ describe "Facebook" do
54
+
55
+ before do
56
+ request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:facebook]
57
+ end
58
+
59
+ describe "#create" do
60
+
61
+ it "should successfully create a user" do
62
+ expect {
63
+ post :create, params: {provider: :facebook}
64
+ }.to change{ Jinda::User.count }.by(1)
65
+ end
66
+
67
+ it "should successfully create a session" do
68
+ session[:user_id].should be_nil
69
+ post :create, params: {provider: :facebook}
70
+ session[:user_id].should_not be_nil
71
+ end
72
+
73
+ it "should redirect the user to the articles/my url" do
74
+ post :create, params: {provider: :facebook}
75
+ response.should redirect_to articles_my_path
76
+ end
77
+
78
+ end
79
+
80
+ describe "#destroy", js: true do
81
+ before do
82
+ post :create, params: {provider: :facebook}
83
+ end
84
+
85
+ it "should clear the session" do
86
+ session[:user_id].should_not be_nil
87
+ delete :destroy
88
+ session[:user_id].should be_nil
89
+ end
90
+
91
+ it "should redirect to the home page" do
92
+ delete :destroy
93
+ # response.should redirect_to root_url
94
+ # https://stackoverflow.com/questions/5144758/how-to-test-a-javascript-redirect-with-rspec
95
+ response.body.should include("window.location")
96
+ end
97
+ end
98
+ end
99
+
100
+ end
101
+
102
+
@@ -0,0 +1,23 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.feature "Userlogins", type: :feature do
4
+ scenario "Admin User Sign In" do
5
+ visit "/sessions/new"
6
+
7
+ fill_in "User name", :with => "admin"
8
+ fill_in "Password", :with => "secret"
9
+ click_button "Sign In"
10
+
11
+ expect(page).to have_text("My Articles")
12
+ end
13
+
14
+ scenario "Google User Sign In" do
15
+ visit "/auth/google_oauth2"
16
+ expect(page).to have_text("My Articles")
17
+ end
18
+
19
+
20
+
21
+
22
+
23
+ end
@@ -0,0 +1,30 @@
1
+ require 'rails_helper'
2
+
3
+ # RSpec.describe "Jinda::User", :type => :model do
4
+ RSpec.describe "Jinda/User", :type => :model do
5
+
6
+ before(:all) do
7
+ @user1 = create "Jinda/User"
8
+ end
9
+
10
+ it "has a unique code name" do
11
+ user2 = build("Jinda/User", code: "tester", email: "tester@test.com")
12
+ expect(user2).to be_valid
13
+ end
14
+
15
+ it "is valid with valid attributes" do
16
+ expect(@user1).to be_valid
17
+ end
18
+
19
+ xit "is not valid without a code" do
20
+ user2 = build("Jinda/User", code: nil)
21
+ expect(user2).to_not be_valid
22
+ end
23
+
24
+ xit "is not valid without an email" do
25
+ user2 = build("Jinda/User", email: nil)
26
+ expect(user2).to_not be_valid
27
+ end
28
+
29
+ end
30
+
@@ -1,11 +1,12 @@
1
1
  # This file is copied to spec/ when you run 'rails generate rspec:install'
2
2
  ENV['RAILS_ENV'] ||= 'test'
3
3
  require File.expand_path('../../config/environment', __FILE__)
4
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } # Add this at top of file
4
5
  # Prevent database truncation if the environment is production
5
6
  abort("The Rails environment is running in production mode!") if Rails.env.production?
6
- require 'spec_helper'
7
7
  require 'rspec/rails'
8
- require 'capybara/rspec'
8
+ require 'spec_helper'
9
+ require 'support/factory_bot'
9
10
  # Add additional requires below this line. Rails is not loaded until this point!
10
11
 
11
12
  # Requires supporting ruby files with custom matchers and macros, etc, in
@@ -20,8 +21,8 @@ require 'capybara/rspec'
20
21
  # of increasing the boot-up time by auto-requiring all files in the support
21
22
  # directory. Alternatively, in the individual `*_spec.rb` files, manually
22
23
  # require only the support files necessary.
23
- #
24
- # Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
24
+ # Enable all!
25
+ Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }
25
26
 
26
27
  RSpec.configure do |config|
27
28
  # RSpec Rails can automatically mix in different behaviours to your tests
@@ -43,4 +44,12 @@ RSpec.configure do |config|
43
44
  config.filter_rails_from_backtrace!
44
45
  # arbitrary gems may also be filtered via:
45
46
  # config.filter_gems_from_backtrace("gem name")
47
+
48
+ # Added to make factorybot work
49
+ FactoryBot.allow_class_lookup = false
50
+ config.include FactoryBot::Syntax::Methods
51
+ config.before do
52
+ FactoryBot.find_definitions
53
+ end
54
+
46
55
  end
@@ -0,0 +1,114 @@
1
+ # https://www.natashatherobot.com/rails-test-omniauth-sessions-controller/
2
+ # spec_helper.rb
3
+ require 'rubygems'
4
+ require 'capybara/rspec'
5
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
6
+ OmniAuth.config.test_mode = true
7
+ omniauth_hash = { 'provider' => 'google_oauth2',
8
+ 'uid' => '105362273761620533373',
9
+ 'info' => {
10
+ 'name' => 'Kulsoft',
11
+ 'email' => 'kulsoft.net@gmail.com',
12
+ 'nickname' => 'kulsoft'
13
+ },
14
+ 'extra' => {'raw_info' =>
15
+ { 'location' => 'San Francisco',
16
+ 'gravatar_id' => '123456789'
17
+ }
18
+ }
19
+ }
20
+ OmniAuth.config.add_mock(:google_oauth2, omniauth_hash)
21
+
22
+ omniauth_hash = { 'provider' => 'facebook',
23
+ 'uid' => '105362273761620533373',
24
+ 'info' => {
25
+ 'name' => 'Peter Colling',
26
+ 'email' => '1.0@kul.asia',
27
+ 'nickname' => 'Peter C'
28
+ },
29
+ 'extra' => {'raw_info' =>
30
+ {'location' => 'LA',
31
+ 'gravatar_id' => '13'
32
+ }
33
+ }
34
+ }
35
+ OmniAuth.config.add_mock(:facebook, omniauth_hash)
36
+
37
+
38
+ ###########################################################################################
39
+ # This file was generated by the `rails generate rspec:install` command. Conventionally, all
40
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
41
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
42
+ # this file to always be loaded, without a need to explicitly require it in any
43
+ # files.
44
+ #
45
+ # Given that it is always loaded, you are encouraged to keep this file as
46
+ # light-weight as possible. Requiring heavyweight dependencies from this file
47
+ # will add to the boot time of your test suite on EVERY test run, even for an
48
+ # individual file that may not need all of that loaded. Instead, consider making
49
+ # a separate helper file that requires the additional dependencies and performs
50
+ # the additional setup, and require it from the spec files that actually need
51
+ # it.
52
+ #
53
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
54
+ RSpec.configure do |config|
55
+ # config.include SpecTestHelper, :type => :controller
56
+ config.expect_with :rspec do |expectations|
57
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
58
+ expectations.syntax = [:expect, :should]
59
+ end
60
+ config.mock_with :rspec do |mocks|
61
+ mocks.verify_partial_doubles = true
62
+ end
63
+ config.shared_context_metadata_behavior = :apply_to_host_groups
64
+
65
+ # https://github.com/DatabaseCleaner/database_cleaner #
66
+
67
+ config.use_transactional_fixtures = false
68
+
69
+ config.before(:suite) do
70
+ if config.use_transactional_fixtures?
71
+ raise(<<-MSG)
72
+ Delete line `config.use_transactional_fixtures = true` from rails_helper.rb
73
+ (or set it to false) to prevent uncommitted transactions being used in
74
+ JavaScript-dependent specs.
75
+
76
+ During testing, the app-under-test that the browser driver connects to
77
+ uses a different database connection to the database connection used by
78
+ the spec. The app's database connection would not be able to access
79
+ uncommitted transaction data setup over the spec's database connection.
80
+ MSG
81
+ end
82
+ DatabaseCleaner.clean_with(:truncation)
83
+ end
84
+
85
+ config.before(:each, :js => true) do
86
+ #DatabaseCleaner.strategy = :transaction
87
+ DatabaseCleaner.strategy = :truncation
88
+ end
89
+
90
+ config.before(:each, type: :feature) do
91
+ # :rack_test driver's Rack app under test shares database connection
92
+ # with the specs, so continue to use transaction strategy for speed.
93
+ driver_shares_db_connection_with_specs = Capybara.current_driver == :rack_test
94
+
95
+ unless driver_shares_db_connection_with_specs
96
+ # Driver is probably for an external browser with an app
97
+ # under test that does *not* share a database connection with the
98
+ # specs, so use truncation strategy.
99
+ # DatabaseCleaner.strategy = :truncation
100
+ DatabaseCleaner[:mongoid].strategy = :truncation
101
+
102
+ end
103
+ end
104
+
105
+ config.before(:each) do
106
+ DatabaseCleaner.start
107
+ end
108
+
109
+ config.append_after(:each) do
110
+ DatabaseCleaner.clean
111
+ end
112
+ # https://github.com/DatabaseCleaner/database_cleaner #
113
+
114
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory "Jinda/User" do
3
+ code {"Tester"}
4
+ email {"tester@test.comm"}
5
+ end
6
+ end
@@ -0,0 +1,35 @@
1
+ # in spec/support/omniauth_macro.rb
2
+ module OmniauthMacros
3
+
4
+ OmniAuth.config.test_mode = true
5
+ omniauth_hash = { 'provider' => 'google_oauth2',
6
+ 'uid' => '105362273761620533373',
7
+ 'info' => {
8
+ 'name' => 'Kulsoft',
9
+ 'email' => 'kulsoft.net@gmail.com',
10
+ 'nickname' => 'kulsoft'
11
+ },
12
+ 'extra' => {'raw_info' =>
13
+ { 'location' => 'San Francisco',
14
+ 'gravatar_id' => '123456789'
15
+ }
16
+ }
17
+ }
18
+ OmniAuth.config.add_mock(:google_oauth2, omniauth_hash)
19
+
20
+ omniauth_hash = { 'provider' => 'facebook',
21
+ 'uid' => '105362273761620533373',
22
+ 'info' => {
23
+ 'name' => 'Peter Colling',
24
+ 'email' => '1.0@kul.asia',
25
+ 'nickname' => 'Peter C'
26
+ },
27
+ 'extra' => {'raw_info' =>
28
+ {'location' => 'LA',
29
+ 'gravatar_id' => '13'
30
+ }
31
+ }
32
+ }
33
+ OmniAuth.config.add_mock(:facebook, omniauth_hash)
34
+ end
35
+