diff options
Diffstat (limited to 'spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb')
-rw-r--r-- | spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb b/spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb new file mode 100644 index 00000000000..057e95eb158 --- /dev/null +++ b/spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe AddDefaultProjectApprovalRulesVulnAllowed do + let(:namespaces) { table(:namespaces) } + let(:projects) { table(:projects) } + let(:namespace) { namespaces.create!(name: 'namespace', path: 'namespace') } + let(:project) { projects.create!(name: 'project', path: 'project', namespace_id: namespace.id) } + let(:approval_project_rules) { table(:approval_project_rules) } + + it 'updates records when vulnerabilities_allowed is nil' do + records_to_migrate = 10 + + records_to_migrate.times do |i| + approval_project_rules.create!(name: "rule #{i}", project_id: project.id) + end + + expect { migrate! } + .to change { approval_project_rules.where(vulnerabilities_allowed: nil).count } + .from(records_to_migrate) + .to(0) + end + + it 'defaults vulnerabilities_allowed to 0' do + approval_project_rule = approval_project_rules.create!(name: "new rule", project_id: project.id) + + expect(approval_project_rule.vulnerabilities_allowed).to be_nil + + migrate! + + expect(approval_project_rule.reload.vulnerabilities_allowed).to eq(0) + end +end |