easy-resources 0.5.4 → 0.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/easy/resources/version.rb +1 -1
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/config/manifest.js +3 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/javascripts/cable.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
- data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
- data/spec/dummy/app/controllers/application_controller.rb +2 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/jobs/application_job.rb +2 -0
- data/spec/dummy/app/mailers/application_mailer.rb +4 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +15 -0
- data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +36 -0
- data/spec/dummy/bin/update +31 -0
- data/spec/dummy/bin/yarn +11 -0
- data/spec/dummy/config.ru +5 -0
- data/spec/dummy/config/application.rb +19 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/cable.yml +10 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +61 -0
- data/spec/dummy/config/environments/production.rb +94 -0
- data/spec/dummy/config/environments/test.rb +46 -0
- data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy/config/initializers/assets.rb +14 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/new_framework_defaults_5_2.rb +38 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +33 -0
- data/spec/dummy/config/puma.rb +34 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/spring.rb +6 -0
- data/spec/dummy/config/storage.yml +34 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/test.log +0 -0
- data/spec/dummy/package.json +5 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/spec/dummy/public/apple-touch-icon.png +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/easy_resources_spec.rb +8 -0
- data/spec/fixtures/files/easy_contact.json +71 -0
- data/spec/fixtures/files/easy_contact/show.xml +48 -0
- data/spec/fixtures/files/easy_crm_case.json +41 -0
- data/spec/fixtures/files/easy_crm_case/show.xml +36 -0
- data/spec/fixtures/files/easy_server/index.xml +36 -0
- data/spec/fixtures/files/easy_server/show.xml +33 -0
- data/spec/fixtures/files/easy_web_application/index.xml +32 -0
- data/spec/fixtures/files/easy_web_application/show.json +54 -0
- data/spec/fixtures/files/easy_web_application/show.xml +16 -0
- data/spec/fixtures/files/easy_web_application/with_custom_fields.xml +0 -0
- data/spec/fixtures/files/easy_web_application/with_easy_contact.xml +17 -0
- data/spec/fixtures/files/easy_web_application/with_easy_crm_case.xml +17 -0
- data/spec/fixtures/files/easy_web_application/with_ewaa.xml +7 -0
- data/spec/fixtures/files/issue.json +56 -0
- data/spec/fixtures/files/issue/show.xml +31 -0
- data/spec/fixtures/files/project.json +40 -0
- data/spec/fixtures/files/project/show.xml +32 -0
- data/spec/models/easy-resources/redmine/easy_contact_spec.rb +26 -0
- data/spec/models/easy-resources/redmine/easy_crm_case_spec.rb +19 -0
- data/spec/models/easy-resources/redmine/easy_web_application_activity_spec.rb +6 -0
- data/spec/models/easy-resources/redmine/easy_web_application_spec.rb +59 -0
- data/spec/models/easy-resources/redmine/issue_spec.rb +15 -0
- data/spec/models/easy-resources/redmine/project_spec.rb +11 -0
- data/spec/models/easy-resources/redmine/redmine_base_spec.rb +8 -0
- data/spec/models/easy-resources/resource_spec.rb +42 -0
- data/spec/spec_helper.rb +24 -0
- data/spec/support/active_resource.rb +57 -0
- data/spec/support/fixtures.rb +5 -0
- data/spec/support/redmine_active_resource.rb +28 -0
- metadata +173 -3
@@ -0,0 +1,16 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<easy_web_application>
|
3
|
+
<id>65739</id>
|
4
|
+
<easy_external_id>3955</easy_external_id>
|
5
|
+
<application_type>trial</application_type>
|
6
|
+
<url>lukas.easyproject.cz</url>
|
7
|
+
<status>running</status>
|
8
|
+
<monitored>false</monitored>
|
9
|
+
<version>2017.1.3 (03.02)</version>
|
10
|
+
<easy_server id="22" host_name="bigdemo.cz" type="application" server_type="bigdemo"/>
|
11
|
+
<author id="14" name="Anonymní"/>
|
12
|
+
<internal_user_limit>0</internal_user_limit>
|
13
|
+
<git_repository type="string">git@git.easy.cz:package.git</git_repository>
|
14
|
+
<created_at>2018-03-22T09:10:47Z</created_at>
|
15
|
+
<updated_at>2018-05-24T10:55:28Z</updated_at>
|
16
|
+
</easy_web_application>
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<easy_web_application>
|
3
|
+
<id>65739</id>
|
4
|
+
<easy_external_id>3955</easy_external_id>
|
5
|
+
<application_type>trial</application_type>
|
6
|
+
<url>lukas.easyproject.cz</url>
|
7
|
+
<status>running</status>
|
8
|
+
<monitored>false</monitored>
|
9
|
+
<version>2017.1.3 (03.02)</version>
|
10
|
+
<easy_server id="309" host_name="bigdemo.easyproject.cz" type="application" server_type="bigdemo"/>
|
11
|
+
<easy_contact id="2" name="Lukas"/>
|
12
|
+
<author id="14" name="Anonymní"/>
|
13
|
+
<internal_user_limit>0</internal_user_limit>
|
14
|
+
<git_repository type="string">git@git.easy.cz:easyproject_com/stable.git</git_repository>
|
15
|
+
<created_at>2018-03-22T09:10:47Z</created_at>
|
16
|
+
<updated_at>2018-05-24T10:55:28Z</updated_at>
|
17
|
+
</easy_web_application>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<easy_web_application>
|
3
|
+
<id>65739</id>
|
4
|
+
<easy_external_id>3955</easy_external_id>
|
5
|
+
<application_type>trial</application_type>
|
6
|
+
<url>lukas.easyproject.cz</url>
|
7
|
+
<status>running</status>
|
8
|
+
<monitored>false</monitored>
|
9
|
+
<version>2017.1.3 (03.02)</version>
|
10
|
+
<easy_server id="309" host_name="bigdemo.easyproject.cz" type="application" server_type="bigdemo"/>
|
11
|
+
<author id="14" name="Anonymní"/>
|
12
|
+
<easy_crm_case id="5" name="Lukas CRM"/>
|
13
|
+
<internal_user_limit>0</internal_user_limit>
|
14
|
+
<git_repository type="string">git@git.easy.cz:easyproject_com/stable.git</git_repository>
|
15
|
+
<created_at>2018-03-22T09:10:47Z</created_at>
|
16
|
+
<updated_at>2018-05-24T10:55:28Z</updated_at>
|
17
|
+
</easy_web_application>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<easy-web-application>
|
3
|
+
<url>awesome.ewa</url>
|
4
|
+
<easy-web-application-activities-attributes>
|
5
|
+
<activities-count-in-day type="integer">13</activities-count-in-day>
|
6
|
+
</easy-web-application-activities-attributes>
|
7
|
+
</easy-web-application>
|
@@ -0,0 +1,56 @@
|
|
1
|
+
{
|
2
|
+
"issue": {
|
3
|
+
"id": 4,
|
4
|
+
"project": {
|
5
|
+
"id": 1,
|
6
|
+
"name": "Default Project"
|
7
|
+
},
|
8
|
+
"tracker": {
|
9
|
+
"id": 1,
|
10
|
+
"name": "Task"
|
11
|
+
},
|
12
|
+
"status": {
|
13
|
+
"id": 2,
|
14
|
+
"name": "New"
|
15
|
+
},
|
16
|
+
"css_classes": "issue tracker-1 status-2 priority-20 priority-highest multieditable-container scheme scheme-0",
|
17
|
+
"priority": {
|
18
|
+
"id": 20,
|
19
|
+
"name": "Urgent"
|
20
|
+
},
|
21
|
+
"author": {
|
22
|
+
"id": 4,
|
23
|
+
"name": "Anonymous"
|
24
|
+
},
|
25
|
+
"assigned_to": {
|
26
|
+
"id": 1,
|
27
|
+
"name": "Easy Dummy",
|
28
|
+
"avatar_urls": {
|
29
|
+
"original": "/images/easy_images/easy_avatars/12/original/6541c74165cdea9842feca299a861244.jpg?1489412181",
|
30
|
+
"large": "/images/easy_images/easy_avatars/12/large/6541c74165cdea9842feca299a861244.jpg?1489412181",
|
31
|
+
"medium": "/images/easy_images/easy_avatars/12/medium/6541c74165cdea9842feca299a861244.jpg?1489412181",
|
32
|
+
"small": "/images/easy_images/easy_avatars/12/small/6541c74165cdea9842feca299a861244.jpg?1489412181"
|
33
|
+
}
|
34
|
+
},
|
35
|
+
"fixed_version": {
|
36
|
+
"id": 1,
|
37
|
+
"name": "Milestone 1"
|
38
|
+
},
|
39
|
+
"subject": "Default task 2",
|
40
|
+
"description": "Et aut omnis sed. Aut accusamus ut porro ipsa blanditiis deserunt perspiciatis nostrum. Reiciendis reiciendis nulla tempore ut. Dicta et velit ad aut quasi. Omnis porro ut et est molestiae.",
|
41
|
+
"start_date": "2018-01-21",
|
42
|
+
"due_date": "2018-03-13",
|
43
|
+
"done_ratio": 70,
|
44
|
+
"estimated_hours": 100.0,
|
45
|
+
"spent_hours": 0.0,
|
46
|
+
"total_spent_hours": 0.0,
|
47
|
+
"created_on": "2017-11-28T23:00:00Z",
|
48
|
+
"updated_on": "2017-01-02T23:00:00Z",
|
49
|
+
"closed_on": "2017-12-30T13:12:32Z",
|
50
|
+
"easy_sprint": {
|
51
|
+
"id": 1,
|
52
|
+
"name": "Sprint 1",
|
53
|
+
"due_date": "2018-01-18"
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<issue>
|
3
|
+
<id>3356</id>
|
4
|
+
<project id="110" name="Partner Program Implementation"/>
|
5
|
+
<tracker id="1" name="Task"/>
|
6
|
+
<status id="1" name="New"/>
|
7
|
+
<css_classes>issue tracker-1 status-1 priority-15 priority-highest parent created-by-me multieditable-container scheme
|
8
|
+
scheme-1
|
9
|
+
</css_classes>
|
10
|
+
<priority id="15" name="DO IT NOW"/>
|
11
|
+
<author id="5" name="Manager Manager"/>
|
12
|
+
<subject>Identify areas for partnerships</subject>
|
13
|
+
<description></description>
|
14
|
+
<start_date>2018-05-21</start_date>
|
15
|
+
<due_date/>
|
16
|
+
<done_ratio>13</done_ratio>
|
17
|
+
<is_private>false</is_private>
|
18
|
+
<is_favorited>false</is_favorited>
|
19
|
+
<estimated_hours/>
|
20
|
+
<total_estimated_hours>0</total_estimated_hours>
|
21
|
+
<spent_hours>0.0</spent_hours>
|
22
|
+
<total_spent_hours>0.0</total_spent_hours>
|
23
|
+
<custom_fields type="array">
|
24
|
+
<custom_field id="85" name="Skill 1 required?" internal_name="" field_format="bool">
|
25
|
+
<value>0</value>
|
26
|
+
</custom_field>
|
27
|
+
</custom_fields>
|
28
|
+
<created_on>2017-11-29T15:39:24Z</created_on>
|
29
|
+
<updated_on>2017-11-30T12:52:52Z</updated_on>
|
30
|
+
<closed_on/>
|
31
|
+
</issue>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{
|
2
|
+
"project": {
|
3
|
+
"id": 1,
|
4
|
+
"name": "Default Project",
|
5
|
+
"identifier": "1",
|
6
|
+
"description": "\u003cp\u003eHere comes a short description of your project\u003c/p\u003e\r\n",
|
7
|
+
"homepage": "",
|
8
|
+
"parent": {
|
9
|
+
"id": 2,
|
10
|
+
"name": "Sample project"
|
11
|
+
},
|
12
|
+
"status": 1,
|
13
|
+
"is_public": true,
|
14
|
+
"author": {
|
15
|
+
"id": 1,
|
16
|
+
"name": "Easy Admin",
|
17
|
+
"easy_external_id": null
|
18
|
+
},
|
19
|
+
"sum_time_entries": 115.0,
|
20
|
+
"sum_estimated_hours": 520.0,
|
21
|
+
"custom_fields": [
|
22
|
+
{
|
23
|
+
"id": 35,
|
24
|
+
"name": "Project contact",
|
25
|
+
"internal_name": null,
|
26
|
+
"field_format": "easy_lookup"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"id": 36,
|
30
|
+
"name": "Test autoincrement",
|
31
|
+
"internal_name": null,
|
32
|
+
"field_format": "autoincrement",
|
33
|
+
"value": ""
|
34
|
+
}
|
35
|
+
],
|
36
|
+
"created_on": "2017-11-28T23:00:00Z",
|
37
|
+
"updated_on": "2017-11-28T23:00:00Z",
|
38
|
+
"start_date": "2017-11-23"
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project>
|
3
|
+
<id>3</id>
|
4
|
+
<name>3. IT Projects</name>
|
5
|
+
<identifier>asddt</identifier>
|
6
|
+
<description><p>This root project contains program that usually solved within IT department of companies</p>
|
7
|
+
</description>
|
8
|
+
<homepage></homepage>
|
9
|
+
<status>1</status>
|
10
|
+
<is_public>false</is_public>
|
11
|
+
<easy_is_easy_template>false</easy_is_easy_template>
|
12
|
+
<easy_start_date/>
|
13
|
+
<easy_due_date/>
|
14
|
+
<easy_external_id/>
|
15
|
+
<author id="1" name="System Administrator" easy_external_id=""/>
|
16
|
+
<sum_time_entries>0.0</sum_time_entries>
|
17
|
+
<sum_estimated_hours>1200.0</sum_estimated_hours>
|
18
|
+
<currency>EUR</currency>
|
19
|
+
<custom_fields type="array">
|
20
|
+
<custom_field id="87" name="Project Manager" internal_name="" field_format="easy_lookup"></custom_field>
|
21
|
+
<custom_field id="88" name="Industry" internal_name="" field_format="list">
|
22
|
+
<value></value>
|
23
|
+
</custom_field>
|
24
|
+
<custom_field id="84" name="Project Phase" internal_name="" field_format="list">
|
25
|
+
<value></value>
|
26
|
+
</custom_field>
|
27
|
+
</custom_fields>
|
28
|
+
<created_on>2017-09-27T13:35:12Z</created_on>
|
29
|
+
<updated_on>2017-11-29T07:40:21Z</updated_on>
|
30
|
+
<start_date/>
|
31
|
+
<due_date/>
|
32
|
+
</project>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
RSpec.describe Easy::Resources::Redmine::EasyContact do
|
2
|
+
include_context "redmine active resource shares" do
|
3
|
+
let(:entity_name) { 'easy_contact' }
|
4
|
+
end
|
5
|
+
|
6
|
+
it 'get contact' do
|
7
|
+
expect(find_entity).not_to be_nil
|
8
|
+
end
|
9
|
+
|
10
|
+
it '#name' do
|
11
|
+
expect(find_entity.name).to eq 'Darth Maul'
|
12
|
+
end
|
13
|
+
|
14
|
+
# it '#url' do
|
15
|
+
# expect(find_entity.url).to eq 'darth-maul.dummy.com'
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# it '#client?' do
|
19
|
+
# expect(find_entity.client?).to be_truthy
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# it '#demo?' do
|
23
|
+
# expect(find_entity.demo?).to be_falsey
|
24
|
+
# end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
RSpec.describe Easy::Resources::Redmine::EasyCrmCase do
|
2
|
+
include_context "redmine active resource shares" do
|
3
|
+
let(:entity_name) { 'easy_crm_case' }
|
4
|
+
end
|
5
|
+
|
6
|
+
|
7
|
+
it 'get crm case' do
|
8
|
+
expect(find_entity.name).not_to be_empty
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'crm case has project' do
|
12
|
+
expect(find_entity.project).to be_a Easy::Resources::Redmine::Project
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'crm case has customer' do
|
16
|
+
expect(find_entity.customer).to be_a Easy::Resources::Redmine::EasyContact
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
RSpec.shared_examples "optional reference" do |name|
|
2
|
+
describe "##{name}" do
|
3
|
+
it 'not include in request' do
|
4
|
+
expect(find_entity.send(name)).to be_nil
|
5
|
+
end
|
6
|
+
|
7
|
+
it 'is include in request' do
|
8
|
+
expect(find_entity("with_#{name}").send(name)).to be_a "Easy::Resources::Redmine::#{name.to_s.classify}".constantize
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec.describe Easy::Resources::Redmine::EasyWebApplication do
|
14
|
+
include_context "redmine active resource shares" do
|
15
|
+
let(:entity_name) { 'easy_web_application' }
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'get ewa' do
|
19
|
+
expect(find_entity.attributes).to include *%w[id url git_repository version application_type created_at]
|
20
|
+
expect(find_entity.git_branch).to be_nil
|
21
|
+
expect(find_entity.name).not_to be_empty
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'ewa has easy_server' do
|
25
|
+
expect(find_entity.easy_server).to be_a Easy::Resources::Redmine::EasyServer
|
26
|
+
end
|
27
|
+
|
28
|
+
include_examples "optional reference", :easy_crm_case
|
29
|
+
include_examples "optional reference", :easy_contact
|
30
|
+
|
31
|
+
describe ".get_all" do
|
32
|
+
|
33
|
+
it "with block" do
|
34
|
+
stub_xml(path: "easy_web_applications.xml", source_file: "index", response_headers: { 'Total' => '4' })
|
35
|
+
stub_xml(path: "easy_web_applications.xml?page=2", source_file: "index")
|
36
|
+
expect(described_class.get_all.count).to eq 4
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it "create EWA" do
|
41
|
+
stub_xml(method: :post, path: "easy_web_applications.xml", request_body: { easy_web_application: { url: "xxx" } }.to_xml, response_body: "")
|
42
|
+
ewa = described_class.new(url: "xxx")
|
43
|
+
expect { ewa.save }.not_to raise_error
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "easy_web_application_activity" do
|
47
|
+
subject { described_class.new(url: "awesome.ewa") }
|
48
|
+
|
49
|
+
it "update EWA with activity" do
|
50
|
+
req = ActiveResource::Request.new(:post, "/easy_web_applications.xml", file_fixture("easy_web_application/with_ewaa.xml").read, { "Content-Type" => "application/xml", "X-Redmine-API-Key" => api_key })
|
51
|
+
res = ActiveResource::Response.new("", 201, {})
|
52
|
+
ActiveResource::HttpMock.respond_to({ req => res })
|
53
|
+
subject.easy_web_application_activities_attributes = { activities_count_in_day: 13 }
|
54
|
+
subject.save
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
RSpec.describe Easy::Resources::Redmine::Issue do
|
2
|
+
include_context "redmine active resource shares" do
|
3
|
+
let(:entity_name) { 'issue' }
|
4
|
+
end
|
5
|
+
|
6
|
+
|
7
|
+
it 'get issue' do
|
8
|
+
expect(find_entity.subject).not_to be_empty
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'issue has project' do
|
12
|
+
expect(find_entity.project).to be_a Easy::Resources::Redmine::Project
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class DummyResource < Easy::Resource
|
2
|
+
self.site = "easyredmine.com"
|
3
|
+
self.format = :json
|
4
|
+
end
|
5
|
+
RSpec.describe Easy::Resource do
|
6
|
+
subject { DummyResource.new({ id: 1 }, true) }
|
7
|
+
let(:value) { { att: 1 } }
|
8
|
+
|
9
|
+
it "#becomes" do
|
10
|
+
target_class = Easy::Resources::Redmine::Issue
|
11
|
+
expect(subject.becomes(target_class)).to be_a(target_class).and have_attributes id: 1
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#update_column" do
|
15
|
+
it "json" do
|
16
|
+
expect(subject).to receive(:patch).with nil, {}, value.to_json
|
17
|
+
subject.update_column :att, 1
|
18
|
+
end
|
19
|
+
|
20
|
+
it "xml" do
|
21
|
+
allow(DummyResource).to receive(:format).and_return ActiveResource::Formats::XmlFormat
|
22
|
+
expect(subject).to receive(:patch).with nil, {}, value.to_xml(root: "dummy-resource")
|
23
|
+
subject.update_column :att, 1
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#patch" do
|
29
|
+
let(:connection) { double "ActiveResource::Connection" }
|
30
|
+
before(:each) { allow(subject).to receive(:connection).and_return connection }
|
31
|
+
|
32
|
+
it "update columns" do
|
33
|
+
expect(connection).to receive(:patch).with "easyredmine.com/dummy_resources/1.json", value.to_json, {}
|
34
|
+
subject.update_columns value
|
35
|
+
end
|
36
|
+
|
37
|
+
it "custom url" do
|
38
|
+
expect(connection).to receive(:patch).with "easyredmine.com/dummy_resources/1/deployed.json", "", {}
|
39
|
+
subject.patch "deployed"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
2
|
+
require "simplecov"
|
3
|
+
SimpleCov.start 'rails'
|
4
|
+
|
5
|
+
require "bundler/setup"
|
6
|
+
require "webmock/rspec"
|
7
|
+
|
8
|
+
require_relative "../spec/dummy/config/environment"
|
9
|
+
|
10
|
+
require "rspec/rails"
|
11
|
+
require "active_resource_response/http_mock"
|
12
|
+
|
13
|
+
Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
|
14
|
+
|
15
|
+
RSpec.configure do |config|
|
16
|
+
|
17
|
+
# Disable RSpec exposing methods globally on `Module` and `main`
|
18
|
+
config.disable_monkey_patching!
|
19
|
+
|
20
|
+
config.expect_with :rspec do |c|
|
21
|
+
c.syntax = :expect
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|