Skip to content

Commit

Permalink
feat(APIv2): RHINENG-12453 enable filtering rules by rule_group_id
Browse files Browse the repository at this point in the history
  • Loading branch information
skateman committed Sep 11, 2024
1 parent 57e27c5 commit e1f6182
Show file tree
Hide file tree
Showing 4 changed files with 4,632 additions and 4,609 deletions.
1 change: 1 addition & 0 deletions app/models/v2/rule.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ def self.sorted_severities(table = arel_table)
searchable_by :title, %i[like unlike eq ne in notin]
searchable_by :severity, %i[eq ne in notin]
searchable_by :remediation_available, %i[eq]
searchable_by :rule_group_id, %i[eq]

# This field should be only available for rules that have a remediation available and it
# is bound to a context of a profile and a security guide. A single rule can belong to one
Expand Down
12 changes: 9 additions & 3 deletions spec/controllers/v2/rules_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@
context '/security_guides/:id/rules' do
describe 'GET index' do
let(:parent) { FactoryBot.create(:v2_security_guide) }
let(:extra_params) { { security_guide_id: parent.id } }
let(:rule_group) { FactoryBot.create(:v2_rule_group, security_guide: parent) }
let(:extra_params) { { security_guide_id: parent.id, rule_group: rule_group } }
let(:item_count) { 2 }
let(:items) do
FactoryBot.create_list(
Expand Down Expand Up @@ -77,7 +78,10 @@

describe 'GET index' do
let(:parent) { FactoryBot.create(:v2_profile) }
let(:extra_params) { { security_guide_id: parent.security_guide.id, profile_id: parent.id } }
let(:rule_group) { FactoryBot.create(:v2_rule_group, security_guide: parent.security_guide) }
let(:extra_params) do
{ security_guide_id: parent.security_guide.id, profile_id: parent.id, rule_group: rule_group }
end
let(:item_count) { 2 }

let(:items) do
Expand Down Expand Up @@ -174,11 +178,13 @@
end

describe 'GET index' do
let(:rule_group) { FactoryBot.create(:v2_rule_group, security_guide: parent.profile.security_guide) }
let(:extra_params) do
{
policy_id: parent.policy.id,
tailoring_id: parent.id,
security_guide_id: pw(parent.profile.security_guide_id)
security_guide_id: pw(parent.profile.security_guide_id),
rule_group: rule_group
}
end

Expand Down
16 changes: 16 additions & 0 deletions spec/fixtures/files/searchable/rules_controller.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -184,3 +184,19 @@
:tailoring_id: ${tailoring_id}
:remediation_available: false
:query: remediation_available = true

- :name: "equality search by rule_group_id"
:entities:
:found:
- :factory: :v2_rule
:security_guide_id: ${security_guide_id}
:parent_count: 0
:rule_group: ${rule_group}
:profile_id: ${profile_id}
:tailoring_id: ${tailoring_id}
:not_found:
- :factory: :v2_rule
:security_guide_id: ${security_guide_id}
:profile_id: ${profile_id}
:tailoring_id: ${tailoring_id}
:query: rule_group_id = ${rule_group.id}
Loading

0 comments on commit e1f6182

Please sign in to comment.