aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert2017-10-29 21:27:46 +0100
committerRobert2017-10-31 19:11:05 +0100
commit8886b867d549cc501c17e4975ab813ce3fed3ac1 (patch)
tree1c4aa09622e96bc07ed3df98e0c252a2ee4ff9d3
parentb1d432628e36d02a23324015f93d4b76a61433e7 (diff)
downloadchouette-core-8886b867d549cc501c17e4975ab813ce3fed3ac1.tar.bz2
Refs: #4774@3h;
Speced feature compliance_control_set/show and filtering on Severity MISSING: Object Filter needs 2B specified
-rw-r--r--app/helpers/compliance_control_blocks_helper.rb2
-rw-r--r--app/views/compliance_controls/_filters.html.slim4
-rw-r--r--spec/features/compliance_control_sets_spec.rb67
-rw-r--r--spec/features/complience_control_sets_spec.rb36
4 files changed, 70 insertions, 39 deletions
diff --git a/app/helpers/compliance_control_blocks_helper.rb b/app/helpers/compliance_control_blocks_helper.rb
index 5c279b33a..311e6fb46 100644
--- a/app/helpers/compliance_control_blocks_helper.rb
+++ b/app/helpers/compliance_control_blocks_helper.rb
@@ -7,4 +7,4 @@ module ComplianceControlBlocksHelper
"[" + t("enumerize.transport_mode.#{transport_mode}") + "]" + "[" + t("enumerize.transport_submode.#{transport_submode}") + "]"
end
end
-end \ No newline at end of file
+end
diff --git a/app/views/compliance_controls/_filters.html.slim b/app/views/compliance_controls/_filters.html.slim
index 75cb4b7f4..200aede7e 100644
--- a/app/views/compliance_controls/_filters.html.slim
+++ b/app/views/compliance_controls/_filters.html.slim
@@ -13,7 +13,7 @@
span.fa.fa-search
.ffg-row
- .form-group.togglable
+ .form-group.togglable#compliance_control_block-filter
= f.label t('activerecord.models.compliance_control_block.one'), required: false, class: 'control-label'
= f.input :compliance_control_block_id_eq_any,
collection: @compliance_control_set.compliance_control_blocks,
@@ -22,7 +22,7 @@
label_method: lambda {|w| ("<span>#{transport_mode(w.transport_mode, w.transport_submode)}</span>").html_safe},
required: false,
wrapper_html: {class: 'checkbox_list'}
- .form-group.togglable
+ .form-group.togglable#severity-filter
= f.label t('compliance_controls.filters.criticity'), required: false, class: 'control-label'
= f.input :criticity_eq_any,
collection: ComplianceControl.criticities,
diff --git a/spec/features/compliance_control_sets_spec.rb b/spec/features/compliance_control_sets_spec.rb
new file mode 100644
index 000000000..f52e2737e
--- /dev/null
+++ b/spec/features/compliance_control_sets_spec.rb
@@ -0,0 +1,67 @@
+RSpec.describe "ComplianceControlSets", type: :feature do
+
+ login_user
+
+ # We setup a control_set with two blocks and one direct control (meaning that it is not attached to a block)
+ # Then we add one control to the first block and two controls to the second block
+ let( :control_set ){ create :compliance_control_set, organisation: organisation }
+ let( :controls ){ control_set.compliance_controls }
+
+ 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'
+ blox.second.update transport_mode: 'train', transport_submode: 'train'
+
+ make_control
+ make_control blox.first, severity: :error
+ make_control blox.second, times: 2
+ end
+
+ describe 'show' do
+ before do
+ visit compliance_control_set_path( control_set )
+ end
+
+ it 'we can see the controls inside their blocks' do
+ controls.each do | control |
+ expect( page ).to have_content(control.code)
+ end
+ end
+
+ it 'we can apply a filter' do
+ within('#severity-filter') do
+ find('input[value="error"]').click
+ end
+ click_on('Filtrer')
+ controls_hash['error'].each do
+ expect( page ).to have_content(control.code)
+ end
+ controls_hash['warning'].each do
+ expect( page ).not_to have_content(control.code)
+ end
+ end
+
+ end
+
+ def make_control ccblock=nil, times: 1, severity: :warning
+ times.times do
+ make_one_control ccblock, severity
+ end
+ end
+
+ def make_one_control ccblock, severity
+ 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
+ end
+
+end
diff --git a/spec/features/complience_control_sets_spec.rb b/spec/features/complience_control_sets_spec.rb
deleted file mode 100644
index 0acf42d7f..000000000
--- a/spec/features/complience_control_sets_spec.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-RSpec.describe "ComplianceControlSets", type: :feature do
-
- login_user
-
- let( :control_set ){ create :compliance_control_set }
- let( :min_max_class ){ GenericAttributeControl::MinMax }
- let( :pattern_class ){ GenericAttributeControl::Pattern }
-
- let( :common_atts ){{
- compliance_control_set: control_set,
- }}
-
-
- let(:blox){
- 3.times.map{ | _ | create :compliance_control_block, compliance_control_set: control_set }
- }
-
- before do
- blox.each do | block |
- create( :generic_attribute_control_min_max, code: random_string, compliance_control_block: block, **common_atts )
- create( :generic_attribute_control_pattern, code: random_string, compliance_control_block: block, **common_atts )
- end
- end
-
- describe 'show' do
- it 'check setup' do
- each_kind_count = 3
- expect( min_max_class.count ).to eq(each_kind_count)
- expect( pattern_class.count ).to eq(each_kind_count)
- query = ComplianceControl.group(:compliance_control_block)
- require 'pry'; binding.pry
- end
-
- end
-
-end