troo 0.0.8 → 0.0.9

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 (316) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.ruby-version +1 -1
  4. data/.trooconf.example +18 -0
  5. data/Gemfile.lock +178 -0
  6. data/README.md +77 -21
  7. data/Rakefile +1 -1
  8. data/bin/completion.bash +10 -0
  9. data/bin/completion.zsh +10 -0
  10. data/bin/init.sh +15 -0
  11. data/bin/troo +12 -3
  12. data/config/cucumber.yml +3 -3
  13. data/config/en.yml +29 -0
  14. data/config/trello_api.yml +19 -0
  15. data/features/add/board.feature +3 -19
  16. data/features/add/card.feature +14 -18
  17. data/features/add/comment.feature +14 -14
  18. data/features/add/list.feature +11 -14
  19. data/features/default/board.feature +4 -4
  20. data/features/default/card.feature +4 -4
  21. data/features/default/list.feature +4 -4
  22. data/features/move/card.feature +54 -0
  23. data/features/refresh/all.feature +8 -4
  24. data/features/refresh/board.feature +9 -6
  25. data/features/refresh/card.feature +9 -6
  26. data/features/refresh/list.feature +9 -6
  27. data/features/show/board.feature +7 -7
  28. data/features/show/boards.feature +19 -0
  29. data/features/show/card.feature +86 -15
  30. data/features/show/comment.feature +14 -12
  31. data/features/show/list.feature +19 -14
  32. data/features/status.feature +27 -13
  33. data/features/step_definitions/fabrication_steps.rb +43 -8
  34. data/features/step_definitions/troo_steps.rb +3 -2
  35. data/features/support/env.rb +1 -0
  36. data/features/troo.feature +0 -12
  37. data/lib/troo.rb +32 -29
  38. data/lib/troo/api/client.rb +117 -0
  39. data/lib/troo/api/endpoints.rb +39 -0
  40. data/lib/troo/api/headers.rb +44 -0
  41. data/lib/troo/api/oauth_settings.rb +36 -0
  42. data/lib/troo/api/request.rb +37 -0
  43. data/lib/troo/api/response.rb +31 -0
  44. data/lib/troo/cli/add.rb +8 -12
  45. data/lib/troo/cli/commands/add.rb +95 -0
  46. data/lib/troo/cli/commands/default.rb +44 -0
  47. data/lib/troo/cli/commands/move/card.rb +95 -0
  48. data/lib/troo/cli/commands/refresh.rb +80 -0
  49. data/lib/troo/cli/commands/refresh/all.rb +52 -0
  50. data/lib/troo/cli/commands/show.rb +56 -0
  51. data/lib/troo/cli/commands/show/show_boards.rb +36 -0
  52. data/lib/troo/cli/commands/show/show_comments.rb +54 -0
  53. data/lib/troo/cli/commands/status.rb +68 -0
  54. data/lib/troo/cli/default.rb +3 -3
  55. data/lib/troo/cli/main.rb +60 -9
  56. data/lib/troo/cli/refresh.rb +4 -4
  57. data/lib/troo/cli/show.rb +7 -7
  58. data/lib/troo/cli/thor_fixes.rb +1 -5
  59. data/lib/troo/configuration.rb +53 -0
  60. data/lib/troo/debug.rb +18 -0
  61. data/lib/troo/decorators/member.rb +2 -19
  62. data/lib/troo/decorators/resource.rb +130 -0
  63. data/lib/troo/helpers/decorator_helpers.rb +21 -74
  64. data/lib/troo/helpers/model_helpers.rb +19 -4
  65. data/lib/troo/helpers/remote_model_helpers.rb +54 -0
  66. data/lib/troo/models/board.rb +19 -11
  67. data/lib/troo/models/card.rb +20 -17
  68. data/lib/troo/models/comment.rb +28 -8
  69. data/lib/troo/models/list.rb +22 -14
  70. data/lib/troo/models/member.rb +21 -5
  71. data/lib/troo/models/refresh.rb +3 -4
  72. data/lib/troo/persistence/local.rb +63 -0
  73. data/lib/troo/presentation/formatter.rb +132 -0
  74. data/lib/troo/presentation/template.rb +0 -4
  75. data/lib/troo/presenters/board.rb +32 -51
  76. data/lib/troo/presenters/card.rb +4 -11
  77. data/lib/troo/presenters/comment.rb +30 -16
  78. data/lib/troo/presenters/list.rb +25 -21
  79. data/lib/troo/presenters/member.rb +1 -8
  80. data/lib/troo/remote/all.rb +16 -0
  81. data/lib/troo/remote/board.rb +64 -0
  82. data/lib/troo/remote/card.rb +81 -0
  83. data/lib/troo/remote/comment.rb +70 -0
  84. data/lib/troo/remote/comment_data.rb +11 -0
  85. data/lib/troo/remote/comment_data_board.rb +13 -0
  86. data/lib/troo/remote/comment_data_card.rb +15 -0
  87. data/lib/troo/remote/list.rb +49 -0
  88. data/lib/troo/remote/member.rb +75 -0
  89. data/lib/troo/remote/persistence/board.rb +57 -0
  90. data/lib/troo/remote/persistence/card.rb +59 -0
  91. data/lib/troo/remote/persistence/comment.rb +58 -0
  92. data/lib/troo/remote/persistence/list.rb +57 -0
  93. data/lib/troo/remote/persistence/move_card.rb +85 -0
  94. data/lib/troo/retrieval/local.rb +100 -0
  95. data/lib/troo/retrieval/remote.rb +91 -0
  96. data/lib/troo/troo.rb +42 -42
  97. data/lib/troo/version.rb +1 -1
  98. data/lib/troo/views/card.erb +8 -10
  99. data/lib/troo/views/comments.erb +4 -0
  100. data/test/cassettes/board_by_id.yml +21 -30
  101. data/test/cassettes/boards_all.yml +22 -90
  102. data/test/cassettes/card_by_id.yml +49 -0
  103. data/test/cassettes/cards_by_board_id.yml +22 -90
  104. data/test/cassettes/cards_by_list_id.yml +22 -87
  105. data/test/cassettes/comments_by_board_id.yml +22 -95
  106. data/test/cassettes/comments_by_card_id.yml +22 -87
  107. data/test/cassettes/create_board.yml +20 -32
  108. data/test/cassettes/create_card.yml +21 -35
  109. data/test/cassettes/create_comment.yml +19 -37
  110. data/test/cassettes/create_list.yml +18 -32
  111. data/test/cassettes/list_by_id.yml +46 -0
  112. data/test/cassettes/lists_by_board_id.yml +19 -91
  113. data/test/cassettes/member_by_id.yml +48 -0
  114. data/test/cassettes/members_by_board_id.yml +21 -82
  115. data/test/cassettes/move_card_board.yml +49 -0
  116. data/test/cassettes/move_card_list.yml +49 -0
  117. data/test/lib/troo/api/client_test.rb +75 -0
  118. data/test/lib/troo/api/endpoints_test.rb +48 -0
  119. data/test/lib/troo/api/headers_test.rb +27 -0
  120. data/test/lib/troo/api/oauth_settings_test.rb +10 -0
  121. data/test/lib/troo/api/request_test.rb +63 -0
  122. data/test/lib/troo/api/response_test.rb +15 -0
  123. data/test/lib/troo/cli/add_test.rb +113 -0
  124. data/test/lib/troo/cli/commands/add_test.rb +66 -0
  125. data/test/lib/troo/cli/commands/default_test.rb +39 -0
  126. data/test/lib/troo/cli/commands/move/card_test.rb +86 -0
  127. data/test/lib/troo/cli/commands/refresh/all_test.rb +37 -0
  128. data/test/lib/troo/cli/commands/refresh_test.rb +59 -0
  129. data/test/lib/troo/cli/commands/show/show_boards_test.rb +35 -0
  130. data/test/lib/troo/cli/commands/show/show_comments_test.rb +63 -0
  131. data/test/lib/troo/cli/commands/show_test.rb +65 -0
  132. data/test/lib/troo/cli/commands/status_test.rb +48 -0
  133. data/test/lib/troo/cli/default_test.rb +39 -0
  134. data/test/lib/troo/cli/main_test.rb +102 -0
  135. data/test/lib/troo/cli/refresh_test.rb +43 -0
  136. data/test/lib/troo/cli/show_test.rb +49 -0
  137. data/test/lib/troo/cli/thor_fixes_test.rb +38 -0
  138. data/test/lib/troo/configuration_test.rb +43 -0
  139. data/test/lib/troo/debug_test.rb +25 -0
  140. data/test/lib/troo/decorators/card_test.rb +105 -229
  141. data/test/lib/troo/decorators/member_test.rb +20 -35
  142. data/test/lib/troo/decorators/resource_test.rb +157 -0
  143. data/test/lib/troo/helpers/decorator_helpers_test.rb +10 -19
  144. data/test/lib/troo/helpers/model_helpers_test.rb +18 -8
  145. data/test/lib/troo/helpers/remote_model_helpers_test.rb +68 -0
  146. data/test/lib/troo/models/behaviours/set_default_test.rb +0 -10
  147. data/test/lib/troo/models/board_test.rb +2 -2
  148. data/test/lib/troo/models/card_test.rb +2 -2
  149. data/test/lib/troo/models/comment_test.rb +6 -2
  150. data/test/lib/troo/models/list_test.rb +2 -2
  151. data/test/lib/troo/models/member_test.rb +6 -2
  152. data/test/lib/troo/persistence/local_test.rb +31 -0
  153. data/test/lib/troo/presentation/formatter_test.rb +31 -0
  154. data/test/lib/troo/presentation/sentence_test.rb +0 -12
  155. data/test/lib/troo/presentation/template_test.rb +1 -14
  156. data/test/lib/troo/presenters/board_test.rb +17 -36
  157. data/test/lib/troo/presenters/card_test.rb +1 -31
  158. data/test/lib/troo/presenters/comment_test.rb +19 -19
  159. data/test/lib/troo/presenters/list_test.rb +18 -18
  160. data/test/lib/troo/presenters/member_test.rb +1 -14
  161. data/test/lib/troo/remote/board_test.rb +66 -0
  162. data/test/lib/troo/remote/card_test.rb +81 -0
  163. data/test/lib/troo/remote/comment_data_board.rb +9 -0
  164. data/test/lib/troo/remote/comment_data_card_test.rb +9 -0
  165. data/test/lib/troo/remote/comment_data_test.rb +9 -0
  166. data/test/lib/troo/remote/comment_test.rb +100 -0
  167. data/test/lib/troo/remote/list_test.rb +67 -0
  168. data/test/lib/troo/remote/member_test.rb +70 -0
  169. data/test/lib/troo/remote/persistence/board_test.rb +39 -0
  170. data/test/lib/troo/remote/persistence/card_test.rb +50 -0
  171. data/test/lib/troo/remote/persistence/comment_test.rb +45 -0
  172. data/test/lib/troo/remote/persistence/list_test.rb +45 -0
  173. data/test/lib/troo/remote/persistence/move_card_test.rb +78 -0
  174. data/test/lib/troo/retrieval/local_test.rb +192 -0
  175. data/test/lib/troo/retrieval/remote_test.rb +49 -0
  176. data/test/support/fabrication.rb +17 -17
  177. data/test/support/fake_trello/fake_response.rb +38 -0
  178. data/test/support/fake_trello/server.rb +124 -0
  179. data/test/support/remotes/all_boards.json +41 -0
  180. data/test/support/remotes/board.json +140 -0
  181. data/test/support/remotes/board_by_id.json +75 -0
  182. data/test/support/remotes/card.json +40 -0
  183. data/test/support/remotes/card_by_card_id.json +302 -0
  184. data/test/support/remotes/comment.json +27 -0
  185. data/test/support/remotes/create_board.json +38 -0
  186. data/test/support/remotes/list.json +7 -0
  187. data/test/support/remotes/member.json +50 -0
  188. data/test/system_test.sh +21 -1
  189. data/test/test_helper.rb +2 -1
  190. data/troo.gemspec +28 -20
  191. metadata +376 -269
  192. data/configuration.yml.example +0 -7
  193. data/features/cleanup.feature +0 -13
  194. data/lib/troo/actions/create_board.rb +0 -46
  195. data/lib/troo/actions/create_card.rb +0 -44
  196. data/lib/troo/actions/create_comment.rb +0 -46
  197. data/lib/troo/actions/create_list.rb +0 -42
  198. data/lib/troo/actions/move_card.rb +0 -37
  199. data/lib/troo/adaptors/board.rb +0 -32
  200. data/lib/troo/adaptors/card.rb +0 -67
  201. data/lib/troo/adaptors/comment.rb +0 -42
  202. data/lib/troo/adaptors/list.rb +0 -37
  203. data/lib/troo/adaptors/member.rb +0 -52
  204. data/lib/troo/adaptors/resource.rb +0 -17
  205. data/lib/troo/commands/add/board.rb +0 -26
  206. data/lib/troo/commands/add/card.rb +0 -33
  207. data/lib/troo/commands/add/comment.rb +0 -33
  208. data/lib/troo/commands/add/list.rb +0 -33
  209. data/lib/troo/commands/add/resource.rb +0 -21
  210. data/lib/troo/commands/commands.rb +0 -28
  211. data/lib/troo/commands/default/board.rb +0 -25
  212. data/lib/troo/commands/default/card.rb +0 -25
  213. data/lib/troo/commands/default/list.rb +0 -25
  214. data/lib/troo/commands/default/resource.rb +0 -26
  215. data/lib/troo/commands/refresh/all.rb +0 -41
  216. data/lib/troo/commands/refresh/board.rb +0 -28
  217. data/lib/troo/commands/refresh/card.rb +0 -29
  218. data/lib/troo/commands/refresh/list.rb +0 -29
  219. data/lib/troo/commands/refresh/resource.rb +0 -42
  220. data/lib/troo/commands/show/board.rb +0 -13
  221. data/lib/troo/commands/show/boards.rb +0 -35
  222. data/lib/troo/commands/show/card.rb +0 -13
  223. data/lib/troo/commands/show/comments.rb +0 -21
  224. data/lib/troo/commands/show/list.rb +0 -13
  225. data/lib/troo/commands/show/resource.rb +0 -41
  226. data/lib/troo/commands/status/board.rb +0 -30
  227. data/lib/troo/commands/status/card.rb +0 -30
  228. data/lib/troo/commands/status/list.rb +0 -30
  229. data/lib/troo/commands/status/resource.rb +0 -34
  230. data/lib/troo/decorators/board.rb +0 -66
  231. data/lib/troo/decorators/card.rb +0 -105
  232. data/lib/troo/decorators/comment.rb +0 -36
  233. data/lib/troo/decorators/list.rb +0 -60
  234. data/lib/troo/external/board.rb +0 -31
  235. data/lib/troo/external/card.rb +0 -31
  236. data/lib/troo/external/comment.rb +0 -27
  237. data/lib/troo/external/list.rb +0 -27
  238. data/lib/troo/external/member.rb +0 -27
  239. data/lib/troo/external/resource.rb +0 -42
  240. data/lib/troo/helpers/command_helpers.rb +0 -37
  241. data/lib/troo/models/persistence/board.rb +0 -19
  242. data/lib/troo/models/persistence/card.rb +0 -19
  243. data/lib/troo/models/persistence/comment.rb +0 -19
  244. data/lib/troo/models/persistence/list.rb +0 -19
  245. data/lib/troo/models/persistence/member.rb +0 -19
  246. data/lib/troo/models/persistence/resource.rb +0 -50
  247. data/lib/troo/models/remote/comment.rb +0 -21
  248. data/lib/troo/models/remote/resource.rb +0 -25
  249. data/lib/troo/models/retrieval/board.rb +0 -29
  250. data/lib/troo/models/retrieval/card.rb +0 -33
  251. data/lib/troo/models/retrieval/comment.rb +0 -25
  252. data/lib/troo/models/retrieval/list.rb +0 -29
  253. data/lib/troo/models/retrieval/member.rb +0 -25
  254. data/lib/troo/models/retrieval/resource.rb +0 -36
  255. data/lib/troo/views/comment.erb +0 -3
  256. data/test/cassettes/card_by_card_id.yml +0 -58
  257. data/test/cassettes/comments_by_list_id.yml +0 -109
  258. data/test/cassettes/list_by_list_id.yml +0 -56
  259. data/test/cassettes/member_by_member_id.yml +0 -60
  260. data/test/cassettes/move_card.yml +0 -61
  261. data/test/lib/troo/actions/create_board_test.rb +0 -66
  262. data/test/lib/troo/actions/create_card_test.rb +0 -71
  263. data/test/lib/troo/actions/create_comment_test.rb +0 -71
  264. data/test/lib/troo/actions/create_list_test.rb +0 -65
  265. data/test/lib/troo/actions/move_card_test.rb +0 -54
  266. data/test/lib/troo/adaptors/board_test.rb +0 -38
  267. data/test/lib/troo/adaptors/card_test.rb +0 -49
  268. data/test/lib/troo/adaptors/comment_test.rb +0 -41
  269. data/test/lib/troo/adaptors/list_test.rb +0 -38
  270. data/test/lib/troo/adaptors/member_test.rb +0 -44
  271. data/test/lib/troo/commands/add/board_test.rb +0 -43
  272. data/test/lib/troo/commands/add/card_test.rb +0 -44
  273. data/test/lib/troo/commands/add/comment_test.rb +0 -44
  274. data/test/lib/troo/commands/add/list_test.rb +0 -44
  275. data/test/lib/troo/commands/add/resource_test.rb +0 -25
  276. data/test/lib/troo/commands/default/board_test.rb +0 -37
  277. data/test/lib/troo/commands/default/card_test.rb +0 -37
  278. data/test/lib/troo/commands/default/list_test.rb +0 -37
  279. data/test/lib/troo/commands/default/resource_test.rb +0 -20
  280. data/test/lib/troo/commands/refresh/all_test.rb +0 -39
  281. data/test/lib/troo/commands/refresh/board_test.rb +0 -62
  282. data/test/lib/troo/commands/refresh/card_test.rb +0 -62
  283. data/test/lib/troo/commands/refresh/list_test.rb +0 -62
  284. data/test/lib/troo/commands/refresh/resource_test.rb +0 -20
  285. data/test/lib/troo/commands/show/board_test.rb +0 -65
  286. data/test/lib/troo/commands/show/boards_test.rb +0 -36
  287. data/test/lib/troo/commands/show/card_test.rb +0 -64
  288. data/test/lib/troo/commands/show/comments_test.rb +0 -64
  289. data/test/lib/troo/commands/show/list_test.rb +0 -64
  290. data/test/lib/troo/commands/show/resource_test.rb +0 -25
  291. data/test/lib/troo/commands/status/board_test.rb +0 -43
  292. data/test/lib/troo/commands/status/card_test.rb +0 -43
  293. data/test/lib/troo/commands/status/list_test.rb +0 -43
  294. data/test/lib/troo/commands/status/resource_test.rb +0 -19
  295. data/test/lib/troo/decorators/board_test.rb +0 -129
  296. data/test/lib/troo/decorators/comment_test.rb +0 -74
  297. data/test/lib/troo/decorators/list_test.rb +0 -102
  298. data/test/lib/troo/external/board_test.rb +0 -102
  299. data/test/lib/troo/external/card_test.rb +0 -131
  300. data/test/lib/troo/external/comment_test.rb +0 -109
  301. data/test/lib/troo/external/list_test.rb +0 -94
  302. data/test/lib/troo/external/member_test.rb +0 -94
  303. data/test/lib/troo/external/resource_test.rb +0 -25
  304. data/test/lib/troo/helpers/command_helpers_test.rb +0 -82
  305. data/test/lib/troo/models/persistence/board_test.rb +0 -62
  306. data/test/lib/troo/models/persistence/card_test.rb +0 -61
  307. data/test/lib/troo/models/persistence/comment_test.rb +0 -69
  308. data/test/lib/troo/models/persistence/list_test.rb +0 -60
  309. data/test/lib/troo/models/persistence/member_test.rb +0 -60
  310. data/test/lib/troo/models/remote/comment_test.rb +0 -56
  311. data/test/lib/troo/models/remote/resource_test.rb +0 -26
  312. data/test/lib/troo/models/retrieval/board_test.rb +0 -93
  313. data/test/lib/troo/models/retrieval/card_test.rb +0 -101
  314. data/test/lib/troo/models/retrieval/comment_test.rb +0 -46
  315. data/test/lib/troo/models/retrieval/list_test.rb +0 -93
  316. data/test/lib/troo/models/retrieval/member_test.rb +0 -58
@@ -0,0 +1,43 @@
1
+ require_relative '../../test_helper'
2
+
3
+ module Troo
4
+ describe Configuration do
5
+ let(:described_class) { Configuration }
6
+
7
+ subject { described_class.load('test/support/.trooconf', :test) }
8
+
9
+ context 'attributes' do
10
+ it 'configures the API url' do
11
+ subject.api_url.must_equal('http://www.example.com')
12
+ end
13
+
14
+ it 'configures the API key' do
15
+ subject.api_key.must_equal('some_key')
16
+ end
17
+
18
+ it 'configures the API token' do
19
+ subject.api_token.must_equal('some_secret')
20
+ end
21
+
22
+ it 'configures the API OAuth token' do
23
+ subject.api_oauth_token.must_equal('some_oauth_token')
24
+ end
25
+
26
+ it 'configures the API OAuth token secret' do
27
+ subject.api_oauth_token_secret.must_equal('some_oauth_token_secret')
28
+ end
29
+
30
+ it 'configures the database to use' do
31
+ subject.database.must_equal(2)
32
+ end
33
+
34
+ it 'configures communication with the Trello API' do
35
+ subject.allow_remote.must_equal(true)
36
+ end
37
+
38
+ it 'configures log output' do
39
+ subject.logs.must_equal(false)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,25 @@
1
+ require_relative '../../test_helper'
2
+
3
+ module Troo
4
+ describe '.debug' do
5
+ let(:filename) { 'profile.html' }
6
+ let(:result) { mock('result') }
7
+ let(:file) { mock('file') }
8
+ let(:printer) { mock('printer') }
9
+
10
+ before do
11
+ RubyProf.stubs(:start)
12
+ RubyProf.stubs(:stop).returns(result)
13
+ result.stubs(:eliminate_methods!)
14
+ File.stubs(:open).yields(file)
15
+ RubyProf::CallStackPrinter.stubs(:new).returns(printer)
16
+ printer.stubs(:print)
17
+ end
18
+
19
+ subject { Troo.debug(filename) { :some_code } }
20
+
21
+ it 'produces a pretty call stack' do
22
+ subject.must_equal nil
23
+ end
24
+ end
25
+ end
@@ -3,235 +3,111 @@ require_relative '../../../test_helper'
3
3
  module Troo
4
4
  module Decorators
5
5
  describe Card do
6
- let(:described_class) { Card }
7
- let(:described_instance) { described_class.new(@card, options) }
8
- let(:default) { true }
9
- let(:description) { 'Finish Troo for fame and fortune.' }
10
- let(:options) { {} }
11
-
12
- before do
13
- @board = Fabricate(:board)
14
- @list = Fabricate(:list)
15
- @card = Fabricate(:card,
16
- desc: description,
17
- default: default)
18
- @comment = Fabricate(:comment)
19
- @comment_2 = Fabricate(:comment,
20
- text: 'My Other Test Comment')
21
- @comment_3 = Fabricate(:comment,
22
- text: 'My Lithium Comment')
23
- @comment_4 = Fabricate(:comment,
24
- text: 'My Beryllium Comment')
25
- @member = Fabricate(:member)
26
- @member_2 = Fabricate(:member,
27
- username: 'mysterywoman',
28
- external_member_id: 'some_member_id')
29
- end
30
-
31
- after { database_cleanup }
32
-
33
- describe '#initialize' do
34
- subject { described_instance }
35
-
36
- it 'assigns the card to an instance variable' do
37
- subject.instance_variable_get('@card').must_equal(@card)
38
- end
39
-
40
- it 'assigns the options to an instance variable' do
41
- subject.instance_variable_get('@options')
42
- .must_equal(options)
43
- end
44
- end
45
-
46
- describe '#short' do
47
- subject { described_instance.short }
48
-
49
- it 'returns a one line overview of the card' do
50
- subject.must_equal(" * \e[35m\e[4m(67) \e[0m\e[35m\e[4m" \
51
- "My Test Card\e[0m\n")
52
- end
53
-
54
- context 'when the ansicolor option is false' do
55
- let(:options) { { ansicolor: false } }
56
-
57
- it 'returns a one line overview of the card' do
58
- subject.must_equal(" * (67) My Test Card\n")
59
- end
60
- end
61
- end
62
-
63
- describe '#name_str' do
64
- subject { described_instance.name_str }
65
-
66
- it 'returns the formatted card name' do
67
- subject.must_equal("\e[35m\e[4mMy Test Card\e[0m")
68
- end
69
- end
70
-
71
- describe '#default_str' do
72
- subject { described_instance.default_str }
73
-
74
- it 'returns the formatted card default indicator' do
75
- subject.must_equal(' * ')
76
- end
77
- end
78
-
79
- describe '#id_str' do
80
- subject { described_instance.id_str }
81
-
82
- it 'returns the formatted card id' do
83
- subject.must_equal("\e[35m\e[4m(67) \e[0m")
84
- end
85
- end
86
-
87
- describe '#name' do
88
- subject { described_instance.name }
89
-
90
- it 'returns the card name' do
91
- subject.must_equal(@card.name)
92
- end
93
- end
94
-
95
- describe '#default' do
96
- subject { described_instance.default }
97
-
98
- context 'when default' do
99
- it 'return an indicator' do
100
- subject.must_equal('*')
101
- end
102
- end
103
-
104
- context 'when not default' do
105
- let(:default) { false }
106
-
107
- it 'returns nothing' do
108
- subject.must_equal('')
109
- end
110
- end
111
- end
112
-
113
- describe '#id' do
114
- subject { described_instance.id }
115
-
116
- it 'returns the card id' do
117
- subject.must_equal(@card.short_id)
118
- end
119
- end
120
-
121
- describe '#description' do
122
- subject { described_instance.description }
123
-
124
- context 'when there are further details' do
125
- it 'returns the description' do
126
- subject.must_equal(@card.desc)
127
- end
128
- end
129
-
130
- context 'when there are no further details' do
131
- let(:description) { nil }
132
-
133
- it 'returns a polite message' do
134
- subject.must_match(/no further details/)
135
- end
136
- end
137
- end
138
-
139
- describe '#comments' do
140
- subject { described_instance.comments }
141
-
142
- context 'when there are more than 3 comments' do
143
- it 'returns the comments' do
144
- subject.must_match(/There are more comments/)
145
- subject.must_match(/My Test Comment/)
146
- subject.must_match(/My Other Test Comment/)
147
- subject.must_match(/My Lithium Comment/)
148
- subject.wont_match(/My Beryllium Comment/)
149
- end
150
- end
151
-
152
- context 'when there are 3 or less comments' do
153
- before do
154
- @comment_3.delete
155
- @comment_4.delete
156
- end
157
-
158
- it 'returns the comments' do
159
- subject.must_match(/My Test Comment/)
160
- subject.must_match(/My Other Test Comment/)
161
- end
162
- end
163
-
164
- context 'when there are no comments' do
165
- before do
166
- @comment.delete
167
- @comment_2.delete
168
- @comment_3.delete
169
- @comment_4.delete
170
- end
171
-
172
- it 'returns a polite message' do
173
- subject.must_equal('No comments have been left.')
174
- end
175
- end
176
- end
177
-
178
- describe '#members' do
179
- subject { described_instance.members }
180
-
181
- context 'when there are members' do
182
- it 'returns the members' do
183
- subject.must_equal('@gavinlaking1')
184
- end
185
- end
186
-
187
- context 'when there are no members' do
188
- before do
189
- @card.external_member_ids = nil
190
- @member.delete
191
- @member_2.delete
192
- end
193
-
194
- it 'returns a polite message' do
195
- subject.must_equal('No members have been assigned.')
196
- end
197
- end
198
- end
199
-
200
- describe '#last_activity_date' do
201
- subject { described_instance.last_activity_date }
202
-
203
- context 'when the last activity date is set' do
204
- it 'returns the last activity date' do
205
- subject.must_equal('Tue, Dec 17 at 21:48')
206
- end
207
- end
208
-
209
- context 'when the last activity date is not set' do
210
- before { @card.stubs(:last_activity_date) }
211
-
212
- it "returns 'N/A'" do
213
- subject.must_equal('N/A')
214
- end
215
- end
216
- end
217
-
218
- describe '#board' do
219
- subject { described_instance.board }
220
-
221
- it 'returns the board details' do
222
- subject.must_equal " \e[35m\e[4m(1) \e[0m\e[35m\e[4mMy " \
223
- "Test Board\e[0m\n"
224
- end
225
- end
226
-
227
- describe '#list' do
228
- subject { described_class.new(@card).list }
229
-
230
- it 'returns the list details' do
231
- subject.must_equal " \e[35m\e[4m(1) \e[0m\e[35m\e[4mMy " \
232
- "Test List\e[0m\n"
233
- end
234
- end
6
+ # let(:described_class) { Card }
7
+ # let(:described_instance) { described_class.new(@card, options) }
8
+ # let(:default) { true }
9
+ # let(:description) { 'Finish Troo for fame and fortune.' }
10
+ # let(:options) { {} }
11
+
12
+ # before do
13
+ # @board = Fabricate(:board)
14
+ # @list = Fabricate(:list)
15
+ # @card = Fabricate(:card,
16
+ # desc: description,
17
+ # default: default)
18
+ # @comment = Fabricate(:comment)
19
+ # @comment_2 = Fabricate(:comment,
20
+ # text: 'My Other Test Comment')
21
+ # @comment_3 = Fabricate(:comment,
22
+ # text: 'My Lithium Comment')
23
+ # @comment_4 = Fabricate(:comment,
24
+ # text: 'My Beryllium Comment')
25
+ # @member = Fabricate(:member)
26
+ # @member_2 = Fabricate(:member,
27
+ # username: 'mysterywoman',
28
+ # external_member_id: 'some_member_id')
29
+ # end
30
+
31
+ # after { database_cleanup }
32
+
33
+ # describe '#comments' do
34
+ # subject { described_instance.comments }
35
+
36
+ # context 'when there are more than 3 comments' do
37
+ # it 'returns the comments' do
38
+ # subject.must_match(/There are more comments/)
39
+ # subject.must_match(/My Test Comment/)
40
+ # subject.must_match(/My Other Test Comment/)
41
+ # subject.must_match(/My Lithium Comment/)
42
+ # subject.wont_match(/My Beryllium Comment/)
43
+ # end
44
+ # end
45
+
46
+ # context 'when there are 3 or less comments' do
47
+ # before do
48
+ # @comment_3.delete
49
+ # @comment_4.delete
50
+ # end
51
+
52
+ # it 'returns the comments' do
53
+ # subject.must_match(/My Test Comment/)
54
+ # subject.must_match(/My Other Test Comment/)
55
+ # end
56
+ # end
57
+
58
+ # context 'when there are no comments' do
59
+ # before do
60
+ # @comment.delete
61
+ # @comment_2.delete
62
+ # @comment_3.delete
63
+ # @comment_4.delete
64
+ # end
65
+
66
+ # it 'returns a polite message' do
67
+ # subject.must_equal('No comments have been left.')
68
+ # end
69
+ # end
70
+ # end
71
+
72
+ # describe '#members' do
73
+ # subject { described_instance.members }
74
+
75
+ # context 'when there are members' do
76
+ # it 'returns the members' do
77
+ # subject.must_equal('@gavinlaking1')
78
+ # end
79
+ # end
80
+
81
+ # context 'when there are no members' do
82
+ # before do
83
+ # @card.external_member_ids = nil
84
+ # @member.delete
85
+ # @member_2.delete
86
+ # end
87
+
88
+ # it 'returns a polite message' do
89
+ # subject.must_equal('No members have been assigned.')
90
+ # end
91
+ # end
92
+ # end
93
+
94
+ # describe '#last_activity_date' do
95
+ # subject { described_instance.last_activity_date }
96
+
97
+ # context 'when the last activity date is set' do
98
+ # it 'returns the last activity date' do
99
+ # subject.must_equal('Tue, Dec 17 at 21:48')
100
+ # end
101
+ # end
102
+
103
+ # context 'when the last activity date is not set' do
104
+ # before { @card.stubs(:last_activity_date) }
105
+
106
+ # it "returns 'N/A'" do
107
+ # subject.must_equal('N/A')
108
+ # end
109
+ # end
110
+ # end
235
111
  end
236
112
  end
237
113
  end
@@ -4,47 +4,32 @@ module Troo
4
4
  module Decorators
5
5
  describe Member do
6
6
  let(:described_class) { Member }
7
- let(:options) { {} }
7
+ let(:options) { {} }
8
+ let(:member) { Fabricate.build(:member) }
8
9
 
9
- before { @member = Fabricate(:member) }
10
- after { database_cleanup }
10
+ # describe '#username' do
11
+ # subject { described_class.new(member).username }
11
12
 
12
- describe '#initialize' do
13
- subject { described_class.new(@member, options) }
13
+ # it "returns the member's username" do
14
+ # subject.must_equal("@#{member.username}")
15
+ # end
16
+ # end
14
17
 
15
- it 'assigns the member to an instance variable' do
16
- subject.instance_variable_get('@member').must_equal(@member)
17
- end
18
+ # describe '#name' do
19
+ # subject { described_class.new(member).name }
18
20
 
19
- it 'assigns the options to an instance variable' do
20
- subject.instance_variable_get('@options')
21
- .must_equal(options)
22
- end
23
- end
21
+ # it "returns the member's full name" do
22
+ # subject.must_equal(member.full_name)
23
+ # end
24
+ # end
24
25
 
25
- describe '#username' do
26
- subject { described_class.new(@member).username }
26
+ # describe '#initials' do
27
+ # subject { described_class.new(member).initials }
27
28
 
28
- it "returns the member's username" do
29
- subject.must_equal("@#{@member.username}")
30
- end
31
- end
32
-
33
- describe '#name' do
34
- subject { described_class.new(@member).name }
35
-
36
- it "returns the member's full name" do
37
- subject.must_equal(@member.full_name)
38
- end
39
- end
40
-
41
- describe '#initials' do
42
- subject { described_class.new(@member).initials }
43
-
44
- it "returns the member's initials" do
45
- subject.must_equal(@member.initials)
46
- end
47
- end
29
+ # it "returns the member's initials" do
30
+ # subject.must_equal(member.initials)
31
+ # end
32
+ # end
48
33
  end
49
34
  end
50
35
  end