diff options
| author | Robert | 2017-10-30 17:15:16 +0100 |
|---|---|---|
| committer | Robert | 2017-10-31 19:11:05 +0100 |
| commit | 0b8d57dd158611785451a5c0effebfa8c4eda9f2 (patch) | |
| tree | 75b48e524e6a631bad5884246e62a2567866243e | |
| parent | 8886b867d549cc501c17e4975ab813ce3fed3ac1 (diff) | |
| download | chouette-core-0b8d57dd158611785451a5c0effebfa8c4eda9f2.tar.bz2 | |
Refs: #4774@2h; Debugging feature specs, added ComplianceControl.subclass_patterns [amend me] [skip-ci]
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 |
