gitlab-ce/spec/support/shared_examples/security/policies_shared_examples.rb

49 lines
1.7 KiB
Ruby

# frozen_string_literal: true
# Requires the url to the policies list:
# - path_to_policies_list
RSpec.shared_examples 'policies list' do
before do
allow_next_found_instance_of(Security::OrchestrationPolicyConfiguration) do |policy|
allow(policy).to receive(:policy_configuration_valid?).and_return(true)
allow(policy).to receive(:policy_hash).and_return(policy_yaml)
allow(policy).to receive(:policy_last_updated_at).and_return(Time.current)
end
sign_in(owner)
stub_licensed_features(security_orchestration_policies: true)
end
it "shows the policies list with policies" do
visit(path_to_policies_list)
# Scan Execution Policy from ee/spec/fixtures/security_orchestration.yml
expect(page).to have_content 'Run DAST in every pipeline'
# Scan Result Policy from ee/spec/fixtures/security_orchestration.yml
expect(page).to have_content 'critical vulnerability CS approvals'
end
end
# Requires the url to the policy editor:
# - path_to_policy_editor
RSpec.shared_examples 'policy editor' do
before do
sign_in(owner)
stub_licensed_features(security_orchestration_policies: true)
end
it "can create a policy when a policy project exists" do
visit(path_to_policy_editor)
page.within(".gl-card:nth-child(1)") do
click_button _('Select policy')
end
fill_in _('Name'), with: 'Prevent vulnerabilities'
click_button _('Select scan type')
select_listbox_item _('Security Scan')
page.within(find_by_testid('actions-section')) do
click_button _('Remove')
end
click_button _('Configure with a merge request')
expect(page).to have_current_path(project_merge_request_path(policy_management_project, 1))
end
end