daisybill_api 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +6 -6
  3. data/lib/daisybill_api.rb +5 -5
  4. data/lib/daisybill_api/configuration.rb +3 -3
  5. data/lib/daisybill_api/data.rb +2 -2
  6. data/lib/daisybill_api/data/client.rb +18 -12
  7. data/lib/daisybill_api/data/url.rb +2 -2
  8. data/lib/daisybill_api/ext.rb +5 -5
  9. data/lib/daisybill_api/ext/associations.rb +1 -0
  10. data/lib/daisybill_api/ext/attributes.rb +2 -2
  11. data/lib/daisybill_api/ext/attributes/type_castings.rb +10 -4
  12. data/lib/daisybill_api/ext/crud.rb +12 -11
  13. data/lib/daisybill_api/ext/crud/create.rb +2 -2
  14. data/lib/daisybill_api/ext/crud/update.rb +1 -1
  15. data/lib/daisybill_api/ext/crud/write_off.rb +11 -0
  16. data/lib/daisybill_api/ext/links.rb +3 -3
  17. data/lib/daisybill_api/ext/links/link.rb +2 -2
  18. data/lib/daisybill_api/models.rb +31 -26
  19. data/lib/daisybill_api/models/attachment.rb +3 -2
  20. data/lib/daisybill_api/models/base.rb +1 -1
  21. data/lib/daisybill_api/models/bill.rb +23 -10
  22. data/lib/daisybill_api/models/bill_mailing_address.rb +16 -0
  23. data/lib/daisybill_api/models/bill_payment.rb +6 -5
  24. data/lib/daisybill_api/models/bill_submission.rb +2 -2
  25. data/lib/daisybill_api/models/billing_provider.rb +10 -10
  26. data/lib/daisybill_api/models/claim_adjustment_reason.rb +11 -0
  27. data/lib/daisybill_api/models/claims_administrator.rb +2 -1
  28. data/lib/daisybill_api/models/contact.rb +19 -11
  29. data/lib/daisybill_api/models/error_report.rb +30 -0
  30. data/lib/daisybill_api/models/injury.rb +1 -0
  31. data/lib/daisybill_api/models/paper_eor.rb +6 -3
  32. data/lib/daisybill_api/models/patient.rb +4 -3
  33. data/lib/daisybill_api/models/payer.rb +3 -1
  34. data/lib/daisybill_api/models/pharmacy_bill.rb +20 -8
  35. data/lib/daisybill_api/models/place_of_service.rb +4 -3
  36. data/lib/daisybill_api/models/prescribing_provider.rb +2 -2
  37. data/lib/daisybill_api/models/referring_provider.rb +2 -2
  38. data/lib/daisybill_api/models/remittance.rb +3 -3
  39. data/lib/daisybill_api/models/rendering_provider.rb +2 -2
  40. data/lib/daisybill_api/models/request_for_second_review.rb +3 -3
  41. data/lib/daisybill_api/models/service_line_item_payment.rb +14 -0
  42. data/lib/daisybill_api/models/task.rb +26 -0
  43. data/lib/daisybill_api/models/user.rb +16 -0
  44. data/lib/daisybill_api/version.rb +1 -1
  45. data/spec/daisybill_api/configuration_spec.rb +3 -3
  46. data/spec/daisybill_api/data/client_spec.rb +44 -38
  47. data/spec/daisybill_api/data/rest_client/payload_spec.rb +6 -6
  48. data/spec/daisybill_api/data/url_spec.rb +6 -6
  49. data/spec/daisybill_api/ext/attributes/attribute_spec.rb +32 -32
  50. data/spec/daisybill_api/ext/attributes/type_castings_spec.rb +22 -18
  51. data/spec/daisybill_api/ext/links/link_spec.rb +15 -15
  52. data/spec/daisybill_api/ext/pageable_collection_spec.rb +1 -1
  53. data/spec/daisybill_api/models/address_spec.rb +1 -1
  54. data/spec/daisybill_api/models/attachment_spec.rb +3 -3
  55. data/spec/daisybill_api/models/bill_mailing_address_spec.rb +6 -0
  56. data/spec/daisybill_api/models/bill_payment_spec.rb +5 -3
  57. data/spec/daisybill_api/models/bill_spec.rb +6 -4
  58. data/spec/daisybill_api/models/bill_submission_spec.rb +2 -2
  59. data/spec/daisybill_api/models/billing_provider_spec.rb +2 -2
  60. data/spec/daisybill_api/models/claim_number_verification_spec.rb +1 -1
  61. data/spec/daisybill_api/models/claims_administrator_spec.rb +3 -2
  62. data/spec/daisybill_api/models/contact_spec.rb +29 -3
  63. data/spec/daisybill_api/models/disputed_service_spec.rb +1 -1
  64. data/spec/daisybill_api/models/employer_spec.rb +1 -1
  65. data/spec/daisybill_api/models/error_report_spec.rb +10 -0
  66. data/spec/daisybill_api/models/injury_spec.rb +2 -1
  67. data/spec/daisybill_api/models/paper_eor_spec.rb +4 -3
  68. data/spec/daisybill_api/models/patient_spec.rb +4 -4
  69. data/spec/daisybill_api/models/payer_spec.rb +3 -2
  70. data/spec/daisybill_api/models/{pharamcy_bill_spec.rb → pharmacy_bill_spec.rb} +7 -6
  71. data/spec/daisybill_api/models/place_of_service_spec.rb +5 -5
  72. data/spec/daisybill_api/models/prescribing_provider_spec.rb +2 -2
  73. data/spec/daisybill_api/models/referring_provider_spec.rb +2 -2
  74. data/spec/daisybill_api/models/remittance_spec.rb +2 -2
  75. data/spec/daisybill_api/models/rendering_provider_spec.rb +2 -2
  76. data/spec/daisybill_api/models/request_for_second_review_spec.rb +2 -2
  77. data/spec/daisybill_api/models/service_line_item_payment_spec.rb +6 -0
  78. data/spec/daisybill_api/models/service_line_item_spec.rb +1 -1
  79. data/spec/daisybill_api/models/task_spec.rb +19 -0
  80. data/spec/daisybill_api/models/user_spec.rb +14 -0
  81. data/spec/daisybill_api_spec.rb +10 -10
  82. metadata +21 -4
@@ -1,7 +1,7 @@
1
1
  module DaisybillApi
2
2
  module Models
3
3
  class ReferringProvider < DaisybillApi::Models::Base
4
- path_prefix '/billing_providers', :billing_provider_id
4
+ path_prefix "/billing_providers", :billing_provider_id
5
5
  rest_actions :index, :show, :create, :update
6
6
 
7
7
  attribute :id, :integer, readonly: true
@@ -15,7 +15,7 @@ module DaisybillApi
15
15
  active: :boolean
16
16
  )
17
17
 
18
- link :billing_provider, class: 'BillingProvider'
18
+ link :billing_provider, class: "BillingProvider"
19
19
  end
20
20
  end
21
21
  end
@@ -1,7 +1,7 @@
1
1
  module DaisybillApi
2
2
  module Models
3
3
  class Remittance < DaisybillApi::Models::Base
4
- path_prefix '/billing_providers', :billing_provider_id
4
+ path_prefix "/billing_providers", :billing_provider_id
5
5
  rest_actions :index, :show, :create
6
6
  attributes id: :integer, readonly: true
7
7
  attributes(
@@ -12,9 +12,9 @@ module DaisybillApi
12
12
  bill_payments: [DaisybillApi::Models::BillPayment]
13
13
  )
14
14
 
15
- has_many :paper_eors, class: 'PaperEor'
15
+ has_many :paper_eors, class: "PaperEor"
16
16
 
17
- link :billing_provider, class: 'BillingProvider'
17
+ link :billing_provider, class: "BillingProvider"
18
18
  end
19
19
  end
20
20
  end
@@ -1,7 +1,7 @@
1
1
  module DaisybillApi
2
2
  module Models
3
3
  class RenderingProvider < DaisybillApi::Models::Base
4
- path_prefix '/billing_providers', :billing_provider_id
4
+ path_prefix "/billing_providers", :billing_provider_id
5
5
  rest_actions :index, :show, :create, :update
6
6
 
7
7
  attribute :id, :integer, readonly: true
@@ -17,7 +17,7 @@ module DaisybillApi
17
17
  active: :boolean
18
18
  )
19
19
 
20
- link :billing_provider, class: 'BillingProvider'
20
+ link :billing_provider, class: "BillingProvider"
21
21
  end
22
22
  end
23
23
  end
@@ -2,8 +2,8 @@ module DaisybillApi
2
2
  module Models
3
3
  class RequestForSecondReview < DaisybillApi::Models::Base
4
4
  rest_actions :create
5
- self.path = '/requests_for_second_review'
6
- path_prefix '/bills', :bill_id
5
+ self.path = "/requests_for_second_review"
6
+ path_prefix "/bills", :bill_id
7
7
 
8
8
  attributes(
9
9
  id: :integer,
@@ -15,7 +15,7 @@ module DaisybillApi
15
15
  disputed_services: [DaisybillApi::Models::DisputedService]
16
16
  )
17
17
 
18
- link :bill, class: 'Bill'
18
+ link :bill, class: "Bill"
19
19
  end
20
20
  end
21
21
  end
@@ -0,0 +1,14 @@
1
+ module DaisybillApi
2
+ module Models
3
+ class ServiceLineItemPayment < DaisybillApi::Models::Base
4
+ attributes(
5
+ service_line_item_id: :integer,
6
+ procedure_code: :string,
7
+ units: :float,
8
+ payment_amount_cents: :integer,
9
+ claim_adjustment_reasons: [DaisybillApi::Models::ClaimAdjustmentReason],
10
+ readonly: true
11
+ )
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,26 @@
1
+ module DaisybillApi
2
+ module Models
3
+ class Task < DaisybillApi::Models::Base
4
+ path_prefix "/bills", :bill_id
5
+ rest_actions :index, :show, :create, :update
6
+
7
+ attributes(
8
+ id: :integer,
9
+ readonly: true
10
+ )
11
+
12
+ attributes(
13
+ assigned_user_id: :integer,
14
+ bill_id: :integer,
15
+ completed_by_id: :integer,
16
+ completed_on: :date,
17
+ due_date: :date,
18
+ message: :string
19
+ )
20
+
21
+ link :assigned_user, class: "User"
22
+ link :bill, class: "Bill"
23
+ link :completed_by, class: "User"
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ module DaisybillApi
2
+ module Models
3
+ class User < DaisybillApi::Models::Base
4
+ rest_actions :show, :index
5
+
6
+ attributes(
7
+ id: :integer,
8
+ first_name: :string,
9
+ last_name: :string,
10
+ email: :string,
11
+ active: :boolean,
12
+ readonly: true
13
+ )
14
+ end
15
+ end
16
+ end
@@ -1,3 +1,3 @@
1
1
  module DaisybillApi
2
- VERSION = '0.1.4'
2
+ VERSION = "0.1.5"
3
3
  end
@@ -1,12 +1,12 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe DaisybillApi::Configuration do
4
4
  let(:config) { DaisybillApi::Configuration.new }
5
5
 
6
- context 'default values' do
6
+ context "default values" do
7
7
  it { expect(config.api_token).to be_nil }
8
8
  it { expect(config.port).to eq 443 }
9
- it { expect(config.host).to eq 'go.daisybill.com' }
9
+ it { expect(config.host).to eq "go.daisybill.com" }
10
10
  it { expect(config.logger).to be_a Logger }
11
11
  end
12
12
  it "when logger was set to nil" do
@@ -1,100 +1,106 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
- shared_examples_for 'returned error with status' do |status|
3
+ shared_examples_for "returned error with status" do |status|
4
4
  its(:status) { is_expected.to eq status }
5
5
  its(:response) { is_expected.to be_a Hash }
6
- its(:response) { is_expected.to have_key('error') }
6
+ its(:response) { is_expected.to have_key("error") }
7
7
  end
8
8
 
9
9
  describe DaisybillApi::Data::Client, :vcr do
10
10
  let(:method) { :get }
11
11
  let(:params) { {} }
12
- let(:path) { '/billing_providers/25' }
12
+ let(:path) { "/billing_providers/25" }
13
13
 
14
14
  subject { DaisybillApi::Data::Client.new(method, path, params) }
15
15
 
16
- context 'when everything fine' do
16
+ context "when everything fine" do
17
17
  it { is_expected.to be_success }
18
18
  its(:response) { is_expected.to be_a Hash }
19
- its(:response) { is_expected.to have_key('id') }
20
- its(:response) { is_expected.to have_key('name') }
21
- its(:response) { is_expected.to have_key('fein') }
19
+ its(:response) { is_expected.to have_key("id") }
20
+ its(:response) { is_expected.to have_key("name") }
21
+ its(:response) { is_expected.to have_key("fein") }
22
22
  end
23
23
 
24
- context 'when incorrect API token' do
25
- before { DaisybillApi.configuration.api_token = 'incorrect token' }
24
+ context "when incorrect API token" do
25
+ before { DaisybillApi.configuration.api_token = "incorrect token" }
26
26
 
27
- it_behaves_like 'returned error with status', '401'
27
+ it_behaves_like "returned error with status", "401"
28
28
  end
29
29
 
30
- context 'when incorrect url' do
31
- let(:path) { '/incorrect/url' }
30
+ context "when incorrect url" do
31
+ let(:path) { "/incorrect/url" }
32
32
 
33
- it_behaves_like 'returned error with status', '401'
33
+ it_behaves_like "returned error with status", "401"
34
34
  end
35
35
 
36
- context 'when invalid params' do
37
- let(:params) { { created_on: 'invalid' } }
38
- let(:path) { '/invalid/params' }
36
+ context "when invalid params" do
37
+ let(:params) { { created_on: "invalid" } }
38
+ let(:path) { "/invalid/params" }
39
39
 
40
- it_behaves_like 'returned error with status', '403'
40
+ it_behaves_like "returned error with status", "403"
41
41
  end
42
42
 
43
- context 'when record was not found' do
44
- let(:path) { '/billing_providers/unknown-id' }
43
+ context "when record was not found" do
44
+ let(:path) { "/billing_providers/unknown-id" }
45
45
 
46
- it_behaves_like 'returned error with status', '404'
46
+ it_behaves_like "returned error with status", "404"
47
47
  end
48
48
 
49
- context 'when server raised error' do
50
- let(:path) { '/raised/error' }
49
+ context "when method is not allowed" do
50
+ let(:method) { :post }
51
51
 
52
- it_behaves_like 'returned error with status', '500'
52
+ it_behaves_like "returned error with status", "405"
53
53
  end
54
54
 
55
- context '.build' do
56
- subject { -> { described_class.build :method, '/path' } }
55
+ context "when server raised error" do
56
+ let(:path) { "/raised/error" }
57
+
58
+ it_behaves_like "returned error with status", "500"
59
+ end
60
+
61
+ context ".build" do
62
+ subject { -> { described_class.build :method, "/path" } }
57
63
  let(:status) { 200 }
58
- let(:message) { '' }
64
+ let(:message) { "" }
59
65
 
60
66
  before do
61
- client = doubled_client(status, { 'error' => message })
67
+ client = doubled_client(status, { "error" => message })
62
68
  allow(DaisybillApi::Data::Client).to receive(:new).and_return(client)
63
69
  end
64
70
 
65
71
  it { is_expected.not_to raise_error }
66
72
 
67
- context 'when bad request' do
73
+ context "when bad request" do
68
74
  let(:status) { 400 }
69
- let(:message) { 'invalid record' }
75
+ let(:message) { "invalid record" }
70
76
 
71
77
  it { is_expected.not_to raise_error }
72
78
  end
73
79
 
74
- context 'when unauthorized' do
80
+ context "when unauthorized" do
75
81
  let(:status) { 401 }
76
- let(:message) { 'invalid or missed api token' }
82
+ let(:message) { "invalid or missed api token" }
77
83
 
78
84
  it { is_expected.to raise_error(DaisybillApi::Data::Client::UnauthorizedError).with_message(message) }
79
85
  end
80
86
 
81
- context 'when forbidden' do
87
+ context "when forbidden" do
82
88
  let(:status) { 403 }
83
- let(:message) { 'invalid params or incorrect url endpoint' }
89
+ let(:message) { "invalid params or incorrect url endpoint" }
84
90
 
85
91
  it { is_expected.to raise_error(DaisybillApi::Data::Client::InvalidParams).with_message(message) }
86
92
  end
87
93
 
88
- context 'when page not found' do
94
+ context "when page not found" do
89
95
  let(:status) { 404 }
90
- let(:response) { { error: 'Record Not Found' } }
96
+ let(:response) { { error: "Record Not Found" } }
91
97
 
92
98
  it { is_expected.to_not raise_error }
93
99
  end
94
100
 
95
- context 'when internal server error' do
101
+ context "when internal server error" do
96
102
  let(:status) { 500 }
97
- let(:message) { 'Internal Server Error' }
103
+ let(:message) { "Internal Server Error" }
98
104
 
99
105
  it { is_expected.to raise_error(DaisybillApi::Data::Client::InternalServerError).with_message(message) }
100
106
  end
@@ -1,17 +1,17 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe RestClient::Payload do
4
4
  subject { RestClient::Payload.generate(params).to_s }
5
5
 
6
- context 'when collection of hashes' do
6
+ context "when collection of hashes" do
7
7
  let(:params) { { collection: [{ a: 1, b: 2 }, { a: 3, b: 4 }] } }
8
8
 
9
- it { is_expected.to eq 'collection[][a]=1&collection[][b]=2&collection[][a]=3&collection[][b]=4' }
9
+ it { is_expected.to eq "collection[][a]=1&collection[][b]=2&collection[][a]=3&collection[][b]=4" }
10
10
  end
11
11
 
12
- context 'when value is nil' do
13
- let(:params) { { empty: '', nil: nil, zero: 0 } }
12
+ context "when value is nil" do
13
+ let(:params) { { empty: "", nil: nil, zero: 0 } }
14
14
 
15
- it { is_expected.to eq 'empty=&nil&zero=0' }
15
+ it { is_expected.to eq "empty=&nil&zero=0" }
16
16
  end
17
17
  end
@@ -1,13 +1,13 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe DaisybillApi::Data::Url do
4
- before { DaisybillApi.configure { |c| c.api_token = 'token' } }
5
- let(:path) { 'billing_providers' }
4
+ before { DaisybillApi.configure { |c| c.api_token = "token" } }
5
+ let(:path) { "billing_providers" }
6
6
  let(:params) { { page: 1, per_page: 20 } }
7
7
 
8
8
  subject { DaisybillApi::Data::Url.build(path, params).to_s }
9
9
 
10
- it { is_expected.to include 'page=1' }
11
- it { is_expected.to include 'per_page=20' }
12
- it { is_expected.to include 'api_token=token' }
10
+ it { is_expected.to include "page=1" }
11
+ it { is_expected.to include "per_page=20" }
12
+ it { is_expected.to include "api_token=token" }
13
13
  end
@@ -1,71 +1,71 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe DaisybillApi::Ext::Attributes::Attribute do
4
- let(:name) { 'description' }
4
+ let(:name) { "description" }
5
5
  let(:type) { :string }
6
6
  let(:options) { {} }
7
7
  subject { described_class.new name, type, options }
8
8
 
9
- it '#value=' do
10
- expect(DaisybillApi::Ext::Attributes::TypeCastings).to receive(:convert_to).with('value', :string)
11
- subject.value = 'value'
9
+ it "#value=" do
10
+ expect(DaisybillApi::Ext::Attributes::TypeCastings).to receive(:convert_to).with("value", :string)
11
+ subject.value = "value"
12
12
  end
13
13
 
14
- context 'value' do
14
+ context "value" do
15
15
  let(:type) { [:integer] }
16
16
 
17
17
  its(:value) { is_expected.to eq [] }
18
18
  end
19
19
 
20
- context '#param_name' do
20
+ context "#param_name" do
21
21
  subject { super().param_name }
22
22
 
23
- it { is_expected.to eq 'description' }
23
+ it { is_expected.to eq "description" }
24
24
 
25
- context 'when type is model' do
25
+ context "when type is model" do
26
26
  let(:type) { DaisybillApi::Models::Address }
27
27
 
28
- it { is_expected.to eq 'description_attributes' }
28
+ it { is_expected.to eq "description_attributes" }
29
29
  end
30
30
 
31
- context 'when type is a simple collection' do
31
+ context "when type is a simple collection" do
32
32
  let(:type) { [:integer] }
33
33
 
34
- it { is_expected.to eq 'description' }
34
+ it { is_expected.to eq "description" }
35
35
  end
36
36
 
37
- context 'when type is a collection of models' do
37
+ context "when type is a collection of models" do
38
38
  let(:type) { [DaisybillApi::Models::Address] }
39
39
 
40
- it { is_expected.to eq 'description_attributes' }
40
+ it { is_expected.to eq "description_attributes" }
41
41
  end
42
42
  end
43
43
 
44
- context '#param_value' do
45
- let(:value) { 'value' }
44
+ context "#param_value" do
45
+ let(:value) { "value" }
46
46
  before { subject.value = value }
47
47
 
48
- it { expect(subject.param_value).to eq 'value' }
48
+ it { expect(subject.param_value).to eq "value" }
49
49
 
50
- context 'when type is model' do
50
+ context "when type is model" do
51
51
  let(:type) { DaisybillApi::Models::Address }
52
- let(:attrs) { { 'address_1' => 'addr1', 'address_2' => nil, 'city' => 'NY', 'state' => 'NY', 'zip_code' => '123'} }
52
+ let(:attrs) { { "address_1" => "addr1", "address_2" => nil, "city" => "NY", "state" => "NY", "zip_code" => "123"} }
53
53
  let(:value) { type.new attrs }
54
54
 
55
55
  its(:param_value) { is_expected.to eq attrs }
56
56
  end
57
57
 
58
- context 'when type is collection' do
58
+ context "when type is collection" do
59
59
  let(:type) { [:integer] }
60
60
  let(:value) { %w(13 666) }
61
61
 
62
62
  its(:param_value) { is_expected.to eq [13, 666] }
63
63
  end
64
64
 
65
- context 'when type is collection of models' do
65
+ context "when type is collection of models" do
66
66
  let(:type) { [DaisybillApi::Models::Address] }
67
- let(:attrs1) { { 'address_1' => 'addr1', 'address_2' => 'addr2', 'city' => 'City', 'state' => 'st', 'zip_code' => '123' } }
68
- let(:attrs2) { { 'address_1' => 'addr3', 'address_2' => 'addr4', 'city' => 'city', 'state' => 'St', 'zip_code' => '456' } }
67
+ let(:attrs1) { { "address_1" => "addr1", "address_2" => "addr2", "city" => "City", "state" => "st", "zip_code" => "123" } }
68
+ let(:attrs2) { { "address_1" => "addr3", "address_2" => "addr4", "city" => "city", "state" => "St", "zip_code" => "456" } }
69
69
  let(:value) do
70
70
  [
71
71
  DaisybillApi::Models::Address.new(attrs1),
@@ -77,41 +77,41 @@ describe DaisybillApi::Ext::Attributes::Attribute do
77
77
  end
78
78
  end
79
79
 
80
- context '#to_param' do
81
- context 'when not readonly' do
80
+ context "#to_param" do
81
+ context "when not readonly" do
82
82
  before { allow(subject).to receive(:readonly?).and_return(false) }
83
- it 'must call param_name method' do
83
+ it "must call param_name method" do
84
84
  expect(subject).to receive(:param_name)
85
85
  subject.to_param
86
86
  end
87
87
 
88
- it 'must call param_name method' do
88
+ it "must call param_name method" do
89
89
  expect(subject).to receive(:param_value)
90
90
  subject.to_param
91
91
  end
92
92
  end
93
93
 
94
- context 'when readonly' do
94
+ context "when readonly" do
95
95
  before { allow(subject).to receive(:readonly?).and_return(true) }
96
96
 
97
- it 'must not call param_name method' do
97
+ it "must not call param_name method" do
98
98
  expect(subject).to_not receive(:param_name)
99
99
  subject.to_param
100
100
  end
101
101
 
102
- it 'must not call param_name method' do
102
+ it "must not call param_name method" do
103
103
  expect(subject).to_not receive(:param_value)
104
104
  subject.to_param
105
105
  end
106
106
  end
107
107
  end
108
108
 
109
- context '#readonly?' do
109
+ context "#readonly?" do
110
110
  subject { super().readonly? }
111
111
 
112
112
  it { is_expected.to be_falsey }
113
113
 
114
- context 'when readonly passed' do
114
+ context "when readonly passed" do
115
115
  let(:options) { { readonly: true } }
116
116
 
117
117
  it { is_expected.to be_truthy }