insightly2 0.1.4

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 (240) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/README.md +113 -0
  7. data/Rakefile +6 -0
  8. data/config/gem_secret.yml.example +1 -0
  9. data/insightly2.gemspec +29 -0
  10. data/lib/insightly2/client.rb +54 -0
  11. data/lib/insightly2/dsl/comments.rb +47 -0
  12. data/lib/insightly2/dsl/contacts.rb +130 -0
  13. data/lib/insightly2/dsl/countries.rb +12 -0
  14. data/lib/insightly2/dsl/currencies.rb +12 -0
  15. data/lib/insightly2/dsl/custom_fields.rb +22 -0
  16. data/lib/insightly2/dsl/emails.rb +57 -0
  17. data/lib/insightly2/dsl/events.rb +52 -0
  18. data/lib/insightly2/dsl/file_attachments.rb +14 -0
  19. data/lib/insightly2/dsl/file_categories.rb +52 -0
  20. data/lib/insightly2/dsl/notes.rb +85 -0
  21. data/lib/insightly2/dsl/opportunities.rb +134 -0
  22. data/lib/insightly2/dsl/opportunity_categories.rb +52 -0
  23. data/lib/insightly2/dsl/opportunity_state_reasons.rb +12 -0
  24. data/lib/insightly2/dsl/organisations.rb +128 -0
  25. data/lib/insightly2/dsl/pipeline_stages.rb +22 -0
  26. data/lib/insightly2/dsl/pipelines.rb +22 -0
  27. data/lib/insightly2/dsl/project_categories.rb +52 -0
  28. data/lib/insightly2/dsl/projects.rb +129 -0
  29. data/lib/insightly2/dsl/relationships.rb +12 -0
  30. data/lib/insightly2/dsl/tags.rb +15 -0
  31. data/lib/insightly2/dsl/task_categories.rb +52 -0
  32. data/lib/insightly2/dsl/tasks.rb +76 -0
  33. data/lib/insightly2/dsl/team_members.rb +53 -0
  34. data/lib/insightly2/dsl/teams.rb +53 -0
  35. data/lib/insightly2/dsl/users.rb +22 -0
  36. data/lib/insightly2/dsl.rb +65 -0
  37. data/lib/insightly2/errors/client_error.rb +10 -0
  38. data/lib/insightly2/errors/resource_not_found_error.rb +8 -0
  39. data/lib/insightly2/errors.rb +10 -0
  40. data/lib/insightly2/resources/comment.rb +10 -0
  41. data/lib/insightly2/resources/contact.rb +8 -0
  42. data/lib/insightly2/resources/country.rb +8 -0
  43. data/lib/insightly2/resources/currency.rb +8 -0
  44. data/lib/insightly2/resources/custom_field.rb +8 -0
  45. data/lib/insightly2/resources/email.rb +8 -0
  46. data/lib/insightly2/resources/event.rb +8 -0
  47. data/lib/insightly2/resources/file_attachment.rb +8 -0
  48. data/lib/insightly2/resources/file_category.rb +8 -0
  49. data/lib/insightly2/resources/note.rb +8 -0
  50. data/lib/insightly2/resources/object/attributes.rb +71 -0
  51. data/lib/insightly2/resources/object/serializers.rb +102 -0
  52. data/lib/insightly2/resources/object.rb +29 -0
  53. data/lib/insightly2/resources/opportunity.rb +8 -0
  54. data/lib/insightly2/resources/opportunity_category.rb +8 -0
  55. data/lib/insightly2/resources/opportunity_state_reason.rb +8 -0
  56. data/lib/insightly2/resources/organisation.rb +8 -0
  57. data/lib/insightly2/resources/pipeline.rb +8 -0
  58. data/lib/insightly2/resources/pipeline_stage.rb +8 -0
  59. data/lib/insightly2/resources/project.rb +8 -0
  60. data/lib/insightly2/resources/project_category.rb +8 -0
  61. data/lib/insightly2/resources/relationship.rb +8 -0
  62. data/lib/insightly2/resources/tag.rb +8 -0
  63. data/lib/insightly2/resources/task.rb +8 -0
  64. data/lib/insightly2/resources/task_category.rb +8 -0
  65. data/lib/insightly2/resources/team.rb +8 -0
  66. data/lib/insightly2/resources/team_member.rb +8 -0
  67. data/lib/insightly2/resources/user.rb +8 -0
  68. data/lib/insightly2/resources.rb +33 -0
  69. data/lib/insightly2/utils/url_helper.rb +17 -0
  70. data/lib/insightly2/utils.rb +8 -0
  71. data/lib/insightly2/version.rb +3 -0
  72. data/lib/insightly2.rb +22 -0
  73. data/spec/fixtures/vcr_cassettes/create_comment_attachment.yml +42 -0
  74. data/spec/fixtures/vcr_cassettes/create_contact.yml +47 -0
  75. data/spec/fixtures/vcr_cassettes/create_contact_image.yml +42 -0
  76. data/spec/fixtures/vcr_cassettes/create_email_comment.yml +47 -0
  77. data/spec/fixtures/vcr_cassettes/create_event.yml +95 -0
  78. data/spec/fixtures/vcr_cassettes/create_file_category.yml +89 -0
  79. data/spec/fixtures/vcr_cassettes/create_note.yml +95 -0
  80. data/spec/fixtures/vcr_cassettes/create_note_comment.yml +47 -0
  81. data/spec/fixtures/vcr_cassettes/create_note_file.yml +42 -0
  82. data/spec/fixtures/vcr_cassettes/create_opportunity.yml +98 -0
  83. data/spec/fixtures/vcr_cassettes/create_opportunity_category.yml +89 -0
  84. data/spec/fixtures/vcr_cassettes/create_opportunity_image.yml +42 -0
  85. data/spec/fixtures/vcr_cassettes/create_organisation.yml +116 -0
  86. data/spec/fixtures/vcr_cassettes/create_organisation_image.yml +42 -0
  87. data/spec/fixtures/vcr_cassettes/create_project.yml +106 -0
  88. data/spec/fixtures/vcr_cassettes/create_project_category.yml +89 -0
  89. data/spec/fixtures/vcr_cassettes/create_project_image.yml +42 -0
  90. data/spec/fixtures/vcr_cassettes/create_task.yml +98 -0
  91. data/spec/fixtures/vcr_cassettes/create_task_category.yml +89 -0
  92. data/spec/fixtures/vcr_cassettes/create_task_comment.yml +47 -0
  93. data/spec/fixtures/vcr_cassettes/create_team.yml +92 -0
  94. data/spec/fixtures/vcr_cassettes/create_team_member.yml +89 -0
  95. data/spec/fixtures/vcr_cassettes/delete_comment.yml +42 -0
  96. data/spec/fixtures/vcr_cassettes/delete_contact.yml +42 -0
  97. data/spec/fixtures/vcr_cassettes/delete_contact_image.yml +42 -0
  98. data/spec/fixtures/vcr_cassettes/delete_email.yml +42 -0
  99. data/spec/fixtures/vcr_cassettes/delete_event.yml +42 -0
  100. data/spec/fixtures/vcr_cassettes/delete_file_category.yml +42 -0
  101. data/spec/fixtures/vcr_cassettes/delete_note.yml +42 -0
  102. data/spec/fixtures/vcr_cassettes/delete_opportunity.yml +42 -0
  103. data/spec/fixtures/vcr_cassettes/delete_opportunity_category.yml +42 -0
  104. data/spec/fixtures/vcr_cassettes/delete_opportunity_image.yml +42 -0
  105. data/spec/fixtures/vcr_cassettes/delete_organisation.yml +42 -0
  106. data/spec/fixtures/vcr_cassettes/delete_organisation_image.yml +42 -0
  107. data/spec/fixtures/vcr_cassettes/delete_project.yml +42 -0
  108. data/spec/fixtures/vcr_cassettes/delete_project_category.yml +42 -0
  109. data/spec/fixtures/vcr_cassettes/delete_project_image.yml +42 -0
  110. data/spec/fixtures/vcr_cassettes/delete_task.yml +42 -0
  111. data/spec/fixtures/vcr_cassettes/delete_task_category.yml +42 -0
  112. data/spec/fixtures/vcr_cassettes/delete_team.yml +42 -0
  113. data/spec/fixtures/vcr_cassettes/delete_team_member.yml +42 -0
  114. data/spec/fixtures/vcr_cassettes/get_comment.yml +47 -0
  115. data/spec/fixtures/vcr_cassettes/get_contact.yml +47 -0
  116. data/spec/fixtures/vcr_cassettes/get_contact_emails.yml +47 -0
  117. data/spec/fixtures/vcr_cassettes/get_contact_image.yml +44 -0
  118. data/spec/fixtures/vcr_cassettes/get_contact_notes.yml +48 -0
  119. data/spec/fixtures/vcr_cassettes/get_contact_tasks.yml +48 -0
  120. data/spec/fixtures/vcr_cassettes/get_contacts.yml +184 -0
  121. data/spec/fixtures/vcr_cassettes/get_countries.yml +85 -0
  122. data/spec/fixtures/vcr_cassettes/get_currencies.yml +124 -0
  123. data/spec/fixtures/vcr_cassettes/get_custom_field.yml +46 -0
  124. data/spec/fixtures/vcr_cassettes/get_custom_fields.yml +46 -0
  125. data/spec/fixtures/vcr_cassettes/get_email.yml +48 -0
  126. data/spec/fixtures/vcr_cassettes/get_email_comments.yml +49 -0
  127. data/spec/fixtures/vcr_cassettes/get_emails.yml +47 -0
  128. data/spec/fixtures/vcr_cassettes/get_event.yml +48 -0
  129. data/spec/fixtures/vcr_cassettes/get_events.yml +48 -0
  130. data/spec/fixtures/vcr_cassettes/get_file_attachment.yml +4057 -0
  131. data/spec/fixtures/vcr_cassettes/get_file_categories.yml +46 -0
  132. data/spec/fixtures/vcr_cassettes/get_file_category.yml +46 -0
  133. data/spec/fixtures/vcr_cassettes/get_note.yml +48 -0
  134. data/spec/fixtures/vcr_cassettes/get_note_comments.yml +48 -0
  135. data/spec/fixtures/vcr_cassettes/get_notes.yml +52 -0
  136. data/spec/fixtures/vcr_cassettes/get_opportunities.yml +81 -0
  137. data/spec/fixtures/vcr_cassettes/get_opportunity.yml +49 -0
  138. data/spec/fixtures/vcr_cassettes/get_opportunity_categories.yml +46 -0
  139. data/spec/fixtures/vcr_cassettes/get_opportunity_category.yml +46 -0
  140. data/spec/fixtures/vcr_cassettes/get_opportunity_emails.yml +48 -0
  141. data/spec/fixtures/vcr_cassettes/get_opportunity_image.yml +44 -0
  142. data/spec/fixtures/vcr_cassettes/get_opportunity_notes.yml +48 -0
  143. data/spec/fixtures/vcr_cassettes/get_opportunity_state_history.yml +83 -0
  144. data/spec/fixtures/vcr_cassettes/get_opportunity_state_reasons.yml +47 -0
  145. data/spec/fixtures/vcr_cassettes/get_opportunity_tasks.yml +49 -0
  146. data/spec/fixtures/vcr_cassettes/get_organisation.yml +55 -0
  147. data/spec/fixtures/vcr_cassettes/get_organisation_emails.yml +48 -0
  148. data/spec/fixtures/vcr_cassettes/get_organisation_image.yml +42 -0
  149. data/spec/fixtures/vcr_cassettes/get_organisation_notes.yml +47 -0
  150. data/spec/fixtures/vcr_cassettes/get_organisation_tasks.yml +48 -0
  151. data/spec/fixtures/vcr_cassettes/get_organisations.yml +2092 -0
  152. data/spec/fixtures/vcr_cassettes/get_pipeline.yml +46 -0
  153. data/spec/fixtures/vcr_cassettes/get_pipeline_stage.yml +46 -0
  154. data/spec/fixtures/vcr_cassettes/get_pipeline_stages.yml +49 -0
  155. data/spec/fixtures/vcr_cassettes/get_pipelines.yml +46 -0
  156. data/spec/fixtures/vcr_cassettes/get_project.yml +52 -0
  157. data/spec/fixtures/vcr_cassettes/get_project_categories.yml +46 -0
  158. data/spec/fixtures/vcr_cassettes/get_project_category.yml +46 -0
  159. data/spec/fixtures/vcr_cassettes/get_project_emails.yml +48 -0
  160. data/spec/fixtures/vcr_cassettes/get_project_image.yml +44 -0
  161. data/spec/fixtures/vcr_cassettes/get_project_notes.yml +47 -0
  162. data/spec/fixtures/vcr_cassettes/get_project_tasks.yml +48 -0
  163. data/spec/fixtures/vcr_cassettes/get_projects.yml +52 -0
  164. data/spec/fixtures/vcr_cassettes/get_task.yml +49 -0
  165. data/spec/fixtures/vcr_cassettes/get_task_categories.yml +47 -0
  166. data/spec/fixtures/vcr_cassettes/get_task_category.yml +46 -0
  167. data/spec/fixtures/vcr_cassettes/get_task_comments.yml +47 -0
  168. data/spec/fixtures/vcr_cassettes/get_tasks.yml +148 -0
  169. data/spec/fixtures/vcr_cassettes/get_team.yml +47 -0
  170. data/spec/fixtures/vcr_cassettes/get_team_member.yml +46 -0
  171. data/spec/fixtures/vcr_cassettes/get_team_members.yml +46 -0
  172. data/spec/fixtures/vcr_cassettes/get_teams.yml +47 -0
  173. data/spec/fixtures/vcr_cassettes/get_user.yml +48 -0
  174. data/spec/fixtures/vcr_cassettes/get_users.yml +48 -0
  175. data/spec/fixtures/vcr_cassettes/update_comment.yml +97 -0
  176. data/spec/fixtures/vcr_cassettes/update_contact.yml +94 -0
  177. data/spec/fixtures/vcr_cassettes/update_contact_image.yml +42 -0
  178. data/spec/fixtures/vcr_cassettes/update_event.yml +97 -0
  179. data/spec/fixtures/vcr_cassettes/update_file_category.yml +91 -0
  180. data/spec/fixtures/vcr_cassettes/update_note.yml +100 -0
  181. data/spec/fixtures/vcr_cassettes/update_opportunity.yml +100 -0
  182. data/spec/fixtures/vcr_cassettes/update_opportunity_category.yml +91 -0
  183. data/spec/fixtures/vcr_cassettes/update_opportunity_image.yml +42 -0
  184. data/spec/fixtures/vcr_cassettes/update_organisation.yml +118 -0
  185. data/spec/fixtures/vcr_cassettes/update_organisation_image.yml +42 -0
  186. data/spec/fixtures/vcr_cassettes/update_project.yml +109 -0
  187. data/spec/fixtures/vcr_cassettes/update_project_category.yml +91 -0
  188. data/spec/fixtures/vcr_cassettes/update_project_image.yml +42 -0
  189. data/spec/fixtures/vcr_cassettes/update_task.yml +100 -0
  190. data/spec/fixtures/vcr_cassettes/update_task_category.yml +91 -0
  191. data/spec/fixtures/vcr_cassettes/update_team.yml +94 -0
  192. data/spec/fixtures/vcr_cassettes/update_team_member.yml +91 -0
  193. data/spec/fixtures/vcr_cassettes/z_insightly_client_status_check.yml +48 -0
  194. data/spec/insightly2/client_spec.rb +12 -0
  195. data/spec/insightly2/dsl/comments_spec.rb +45 -0
  196. data/spec/insightly2/dsl/contacts_spec.rb +130 -0
  197. data/spec/insightly2/dsl/countries_spec.rb +14 -0
  198. data/spec/insightly2/dsl/currencies_spec.rb +14 -0
  199. data/spec/insightly2/dsl/custom_fields_spec.rb +25 -0
  200. data/spec/insightly2/dsl/emails_spec.rb +56 -0
  201. data/spec/insightly2/dsl/events_spec.rb +55 -0
  202. data/spec/insightly2/dsl/file_attachments_spec.rb +15 -0
  203. data/spec/insightly2/dsl/file_categories_spec.rb +55 -0
  204. data/spec/insightly2/dsl/notes_spec.rb +86 -0
  205. data/spec/insightly2/dsl/opportunities_spec.rb +143 -0
  206. data/spec/insightly2/dsl/opportunity_categories_spec.rb +55 -0
  207. data/spec/insightly2/dsl/opportunity_state_reasons_spec.rb +14 -0
  208. data/spec/insightly2/dsl/organisations_spec.rb +131 -0
  209. data/spec/insightly2/dsl/pipeline_stages_spec.rb +25 -0
  210. data/spec/insightly2/dsl/pipelines_spec.rb +25 -0
  211. data/spec/insightly2/dsl/project_categories_spec.rb +55 -0
  212. data/spec/insightly2/dsl/projects_spec.rb +131 -0
  213. data/spec/insightly2/dsl/task_categories_spec.rb +55 -0
  214. data/spec/insightly2/dsl/tasks_spec.rb +75 -0
  215. data/spec/insightly2/dsl/team_members_spec.rb +56 -0
  216. data/spec/insightly2/dsl/teams_spec.rb +55 -0
  217. data/spec/insightly2/dsl/users_spec.rb +25 -0
  218. data/spec/insightly2/resources/comment_spec.rb +27 -0
  219. data/spec/insightly2/resources/contact_spec.rb +28 -0
  220. data/spec/insightly2/resources/custom_field_spec.rb +22 -0
  221. data/spec/insightly2/resources/email_spec.rb +29 -0
  222. data/spec/insightly2/resources/event_spec.rb +29 -0
  223. data/spec/insightly2/resources/file_attachment_spec.rb +31 -0
  224. data/spec/insightly2/resources/file_category_spec.rb +21 -0
  225. data/spec/insightly2/resources/note_spec.rb +29 -0
  226. data/spec/insightly2/resources/opportunity_category_spec.rb +21 -0
  227. data/spec/insightly2/resources/opportunity_spec.rb +30 -0
  228. data/spec/insightly2/resources/organisation_spec.rb +29 -0
  229. data/spec/insightly2/resources/pipeline_spec.rb +21 -0
  230. data/spec/insightly2/resources/pipeline_stage_spec.rb +21 -0
  231. data/spec/insightly2/resources/project_category_spec.rb +21 -0
  232. data/spec/insightly2/resources/project_spec.rb +30 -0
  233. data/spec/insightly2/resources/task_category_spec.rb +21 -0
  234. data/spec/insightly2/resources/task_spec.rb +32 -0
  235. data/spec/insightly2/resources/team_member_spec.rb +21 -0
  236. data/spec/insightly2/resources/team_spec.rb +27 -0
  237. data/spec/insightly2/resources/user_spec.rb +29 -0
  238. data/spec/insightly2_spec.rb +15 -0
  239. data/spec/spec_helper.rb +20 -0
  240. metadata +551 -0
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::Resources::TaskCategory do
4
+ subject(:task_category) do
5
+ VCR.use_cassette('get_task_category') do
6
+ Insightly2.client.get_task_category(id: 1947437)
7
+ end
8
+ end
9
+
10
+ describe 'instance' do
11
+ it 'is decorated with TaskCategory object' do
12
+ expect(subject).to be_a(described_class)
13
+ end
14
+
15
+ %w(category_id category_name active background_color).each do |method|
16
+ it "responds to #{method}" do
17
+ expect(subject).to respond_to(method)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::Resources::Task do
4
+ subject(:task) do
5
+ VCR.use_cassette('get_task') do
6
+ Insightly2.client.get_task(id: 14694323)
7
+ end
8
+ end
9
+
10
+ describe 'instance' do
11
+ it 'is decorated with Task object' do
12
+ expect(subject).to be_a(described_class)
13
+ end
14
+
15
+ # TODO - title should be included here but there's a bug in the API response.
16
+ # Title is not uppercase unlike every other JSON attribute.
17
+ %w(task_id category_id due_date completed_date_utc publicly_visible completed
18
+ project_id details status priority percent_complete start_date assigned_by_user_id
19
+ parent_task_id owner_visible responsible_user_id owner_user_id date_created_utc
20
+ date_updated_utc tasklinks).each do |method|
21
+ it "responds to #{method}" do
22
+ expect(subject).to respond_to(method)
23
+ end
24
+ end
25
+
26
+ %w(date_created_utc date_updated_utc).each do |method|
27
+ it "deserialize attribute #{method} as time" do
28
+ expect(subject.public_send(method)).to be_a(Time)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::Resources::TeamMember do
4
+ subject(:team_member) do
5
+ VCR.use_cassette('get_team_member') do
6
+ Insightly2.client.get_team_member(id: 5016224)
7
+ end
8
+ end
9
+
10
+ describe 'instance' do
11
+ it 'is decorated with TeamMember object' do
12
+ expect(subject).to be_a(described_class)
13
+ end
14
+
15
+ %w(permission_id team_id member_user_id member_team_id).each do |method|
16
+ it "responds to #{method}" do
17
+ expect(subject).to respond_to(method)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::Resources::Team do
4
+ subject(:team) do
5
+ VCR.use_cassette('get_team') do
6
+ Insightly2.client.get_team(id: 2063767)
7
+ end
8
+ end
9
+
10
+ describe 'instance' do
11
+ it 'is decorated with Team object' do
12
+ expect(subject).to be_a(described_class)
13
+ end
14
+
15
+ %w(team_id team_name anonymous_team date_created_utc date_updated_utc teammembers).each do |method|
16
+ it "responds to #{method}" do
17
+ expect(subject).to respond_to(method)
18
+ end
19
+ end
20
+
21
+ %w(date_created_utc date_updated_utc).each do |method|
22
+ it "deserialize attribute #{method} as time" do
23
+ expect(subject.public_send(method)).to be_a(Time)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2::Resources::User do
4
+ subject(:user) do
5
+ VCR.use_cassette('get_user') do
6
+ Insightly2.client.get_user(id: 607181)
7
+ end
8
+ end
9
+
10
+ describe 'instance' do
11
+ it 'is decorated with User object' do
12
+ expect(subject).to be_a(described_class)
13
+ end
14
+
15
+ %w(user_id contact_id first_name last_name timezone_id email_address email_dropbox_identifier
16
+ administrator account_owner active date_created_utc date_updated_utc user_currency contact_display
17
+ contact_order task_week_start instance_id).each do |method|
18
+ it "responds to #{method}" do
19
+ expect(subject).to respond_to(method)
20
+ end
21
+ end
22
+
23
+ %w(date_created_utc date_updated_utc).each do |method|
24
+ it "deserialize attribute #{method} as time" do
25
+ expect(subject.public_send(method)).to be_a(Time)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Insightly2 do
4
+ it 'has a version number' do
5
+ expect(Insightly2::VERSION).not_to be nil
6
+ end
7
+
8
+ it 'provides way to set API key' do
9
+ expect(Insightly2).to respond_to(:api_key)
10
+ end
11
+
12
+ it 'provides shortcut for instantiating Client' do
13
+ expect(Insightly2.client).to be_a(Insightly2::Client)
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ require 'webmock/rspec'
2
+ require 'insightly2'
3
+ require 'vcr'
4
+ include Insightly2::Resources
5
+
6
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
7
+ cnf = YAML::load_file(File.join(APP_ROOT, 'config/gem_secret.yml'))
8
+ insightly_api_key = cnf['insightly_api_key']
9
+
10
+ VCR.configure do |c|
11
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
12
+ c.hook_into :webmock
13
+ c.filter_sensitive_data('<INSIGHTLY_API_KEY>') { insightly_api_key }
14
+ end
15
+
16
+ RSpec.configure do |config|
17
+ config.before do
18
+ Insightly2.api_key = insightly_api_key
19
+ end
20
+ end