aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcedricnjanga2017-12-27 17:57:37 +0100
committercedricnjanga2017-12-29 11:09:59 +0100
commit99fd5d5cd8885cff6cb3a182212e6b5c1b5f1363 (patch)
tree3a2eab6a612605a03874f8e6b8d6a291ae09a657
parent33dafabfca862d3d1ee79c656071acce2ade1fb7 (diff)
downloadchouette-core-99fd5d5cd8885cff6cb3a182212e6b5c1b5f1363.tar.bz2
Refs #5415 fix ComplianceControl#show for controls which dont have dynamic attributes
-rw-r--r--app/models/compliance_control.rb2
-rw-r--r--spec/models/compliance_control_spec.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
index 3fcf26f5d..2bde5b95a 100644
--- a/app/models/compliance_control.rb
+++ b/app/models/compliance_control.rb
@@ -6,7 +6,7 @@ class ComplianceControl < ActiveRecord::Base
def prerequisite; I18n.t('compliance_controls.metas.no_prerequisite'); end
def predicate; I18n.t("compliance_controls.#{self.name.underscore}.description") end
def dynamic_attributes
- stored_attributes[:control_attributes]
+ stored_attributes[:control_attributes] || []
end
def policy_class
diff --git a/spec/models/compliance_control_spec.rb b/spec/models/compliance_control_spec.rb
index 4267459ea..5cffba58d 100644
--- a/spec/models/compliance_control_spec.rb
+++ b/spec/models/compliance_control_spec.rb
@@ -1,5 +1,15 @@
RSpec.describe ComplianceControl, type: :model do
+ context 'dynamic attributes' do
+ let(:compliance_control1) { build_stubbed :compliance_control }
+ let(:compliance_control2) { build_stubbed :compliance_control, type: 'VehicleJouneyControl::TimeTable' }
+
+ it 'should always return a array' do
+ expect(compliance_control1.class.dynamic_attributes).to be_kind_of Array
+ expect(compliance_control2.class.dynamic_attributes).to be_kind_of Array
+ end
+ end
+
context 'standard validation' do
let(:compliance_control) { build_stubbed :compliance_control }