aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert2017-10-30 17:15:16 +0100
committerRobert2017-10-31 19:11:05 +0100
commit0b8d57dd158611785451a5c0effebfa8c4eda9f2 (patch)
tree75b48e524e6a631bad5884246e62a2567866243e
parent8886b867d549cc501c17e4975ab813ce3fed3ac1 (diff)
downloadchouette-core-0b8d57dd158611785451a5c0effebfa8c4eda9f2.tar.bz2
Refs: #4774@2h; Debugging feature specs, added ComplianceControl.subclass_patterns [amend me] [skip-ci]
-rw-r--r--app/helpers/compliance_controls_helper.rb2
-rw-r--r--app/models/compliance_control.rb41
-rw-r--r--spec/features/compliance_control_sets_spec.rb33
-rw-r--r--spec/models/compliance_control_class_level_defaults/compliance_control_subclass_pattern_spec.rb17
4 files changed, 69 insertions, 24 deletions
diff --git a/app/helpers/compliance_controls_helper.rb b/app/helpers/compliance_controls_helper.rb
new file mode 100644
index 000000000..ee7e56514
--- /dev/null
+++ b/app/helpers/compliance_controls_helper.rb
@@ -0,0 +1,2 @@
+module ComplianceControlsHelper
+end
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
index e00a2c109..49fb6513f 100644
--- a/app/models/compliance_control.rb
+++ b/app/models/compliance_control.rb
@@ -11,6 +11,17 @@ class ComplianceControl < ActiveRecord::Base
ComplianceControlPolicy
end
+ def subclass_patterns
+ {
+ generic: 'Generic',
+ journey_pattern: 'JourneyPattern',
+ line: 'Line',
+ route: 'Route',
+ routing_constraint_zone: 'RoutingConstraint',
+ vehicle_journey: 'VehicleJourney'
+ }
+ end
+
def inherited(child)
child.instance_eval do
def model_name
@@ -35,23 +46,23 @@ class ComplianceControl < ActiveRecord::Base
validates :compliance_control_set, presence: true
validate def coherent_control_set
- return true if compliance_control_block_id.nil?
- ids = [compliance_control_block.compliance_control_set_id, compliance_control_set_id]
- return true if ids.first == ids.last
- names = ids.map{|id| ComplianceControlSet.find(id).name}
- errors.add(:coherent_control_set,
- I18n.t('compliance_controls.errors.incoherent_control_sets',
- indirect_set_name: names.first,
- direct_set_name: names.last))
- end
+ return true if compliance_control_block_id.nil?
+ ids = [compliance_control_block.compliance_control_set_id, compliance_control_set_id]
+ return true if ids.first == ids.last
+ names = ids.map{|id| ComplianceControlSet.find(id).name}
+ errors.add(:coherent_control_set,
+ I18n.t('compliance_controls.errors.incoherent_control_sets',
+ indirect_set_name: names.first,
+ direct_set_name: names.last))
+end
- def initialize(attributes = {})
- super
- self.name ||= I18n.t("activerecord.models.#{self.class.name.underscore}.one")
- self.code ||= self.class.default_code
- self.origin_code ||= self.class.default_code
- end
+def initialize(attributes = {})
+ super
+ self.name ||= I18n.t("activerecord.models.#{self.class.name.underscore}.one")
+ self.code ||= self.class.default_code
+ self.origin_code ||= self.class.default_code
+end
end
diff --git a/spec/features/compliance_control_sets_spec.rb b/spec/features/compliance_control_sets_spec.rb
index f52e2737e..cbe73f866 100644
--- a/spec/features/compliance_control_sets_spec.rb
+++ b/spec/features/compliance_control_sets_spec.rb
@@ -10,8 +10,6 @@ RSpec.describe "ComplianceControlSets", type: :feature do
let(:blox){
2.times.map{ | _ | create :compliance_control_block, compliance_control_set: control_set }
}
- let( :controls_hash ){ Hash.new{ |h, k| h[k] = [] } }
-
before do
blox.first.update transport_mode: 'bus', transport_submode: 'bus'
@@ -33,19 +31,39 @@ RSpec.describe "ComplianceControlSets", type: :feature do
end
end
- it 'we can apply a filter' do
+ it 'we can apply a severity filter' do
+ controls.take(2).each do | control |
+ control.update criticity: 'error'
+ end
within('#severity-filter') do
find('input[value="error"]').click
end
click_on('Filtrer')
- controls_hash['error'].each do
+ controls.take(2).each do | control |
expect( page ).to have_content(control.code)
end
- controls_hash['warning'].each do
+ controls.drop(2).each do | control |
expect( page ).not_to have_content(control.code)
end
end
+ # it 'we can apply a subclass filter' do
+ # controls.first.update(origin_code: 'x-Route-y')
+ # controls.second.update(origin_code: 'x-Line-y')
+
+ # within('#subclass-filter') do
+ # find('input[value="Itinéraire"]').click
+ # find('input[value="Ligne"]').click
+ # end
+ # click_on('Filtrer')
+ # controls.take(2).each do | control |
+ # expect( page ).to have_content(control.code)
+ # end
+ # controls.drop(2).each do | control |
+ # expect( page ).not_to have_content(control.code)
+ # end
+ # end
+
end
def make_control ccblock=nil, times: 1, severity: :warning
@@ -58,10 +76,7 @@ RSpec.describe "ComplianceControlSets", type: :feature do
create( :generic_attribute_control_min_max,
code: random_string,
compliance_control_block: ccblock,
- compliance_control_set: control_set,
- criticity: severity ).tap do | ctrl |
- controls_hash[severity] << ctrl
- end
+ compliance_control_set: control_set)
end
end
diff --git a/spec/models/compliance_control_class_level_defaults/compliance_control_subclass_pattern_spec.rb b/spec/models/compliance_control_class_level_defaults/compliance_control_subclass_pattern_spec.rb
new file mode 100644
index 000000000..868eca984
--- /dev/null
+++ b/spec/models/compliance_control_class_level_defaults/compliance_control_subclass_pattern_spec.rb
@@ -0,0 +1,17 @@
+RSpec.describe ComplianceControl do
+ let( :subject ){ described_class.subclass_patterns }
+
+ context 'subclass_patterns' do
+ it 'are correctly defined' do
+ expect_it.to eq(
+ generic: 'Generic',
+ journey_pattern: 'JourneyPattern',
+ line: 'Line',
+ route: 'Route',
+ routing_constraint_zone: 'RoutingConstraint',
+ vehicle_journey: 'VehicleJourney'
+ )
+ end
+ end
+
+end