Skip to content
代码片段 群组 项目
提交 72be69cd 编辑于 作者: Matt Kasa's avatar Matt Kasa
浏览文件

Merge branch '390856-convert-the-schema-validation-framework-into-a-gem-3' into 'master'

Resolve "Remove Schema Inconsistency model"

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126299



Merged-by: default avatarMatt Kasa <mkasa@gitlab.com>
Approved-by: default avatarMatt Kasa <mkasa@gitlab.com>
Reviewed-by: default avatarLeonardo da Rosa <ldarosa@gitlab.com>
Co-authored-by: default avatardfrazao-gitlab <dfrazao@gitlab.com>
No related branches found
No related tags found
无相关合并请求
# frozen_string_literal: true
module Gitlab
module Database
module SchemaValidation
class SchemaInconsistency < ApplicationRecord
self.table_name = :schema_inconsistencies
belongs_to :issue
validates :object_name, :valitador_name, :table_name, :diff, presence: true
scope :with_open_issues, -> { joins(:issue).where('issue.state_id': Issue.available_states[:opened]) }
end
end
end
end
# frozen_string_literal: true
FactoryBot.define do
factory :schema_inconsistency, class: '::Gitlab::Database::SchemaValidation::SchemaInconsistency' do
issue factory: :issue
object_name { 'name' }
table_name { 'table' }
valitador_name { 'validator' }
diff { 'diff' }
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Database::SchemaValidation::SchemaInconsistency, type: :model, feature_category: :database do
it { is_expected.to be_a ApplicationRecord }
describe 'associations' do
it { is_expected.to belong_to(:issue) }
end
describe "Validations" do
it { is_expected.to validate_presence_of(:object_name) }
it { is_expected.to validate_presence_of(:valitador_name) }
it { is_expected.to validate_presence_of(:table_name) }
it { is_expected.to validate_presence_of(:diff) }
end
describe 'scopes' do
describe '.with_open_issues' do
subject(:inconsistencies) { described_class.with_open_issues }
let(:closed_issue) { create(:issue, :closed) }
let(:open_issue) { create(:issue, :opened) }
let!(:schema_inconsistency_with_issue_closed) do
create(:schema_inconsistency, object_name: 'index_name', table_name: 'achievements',
valitador_name: 'different_definition_indexes', issue: closed_issue)
end
let!(:schema_inconsistency_with_issue_opened) do
create(:schema_inconsistency, object_name: 'index_name', table_name: 'achievements',
valitador_name: 'different_definition_indexes', issue: open_issue)
end
it 'returns only schema inconsistencies with GitLab issues open' do
expect(inconsistencies).to eq([schema_inconsistency_with_issue_opened])
end
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册