Create models directly in migration specs
Instead of using the factories. Since the factories might be using columns that aren't available in the schema at version the particular spec is running in.
This commit is contained in:
parent
ba731b2ab2
commit
5ac98f9315
4 changed files with 31 additions and 29 deletions
|
@ -2,19 +2,20 @@ require 'spec_helper'
|
|||
|
||||
describe Gitlab::BackgroundMigration::CreateForkNetworkMembershipsRange, :migration, schema: 20170929131201 do
|
||||
let(:migration) { described_class.new }
|
||||
let(:projects) { table(:projects) }
|
||||
|
||||
let(:base1) { create(:project) }
|
||||
let(:base1_fork1) { create(:project) }
|
||||
let(:base1_fork2) { create(:project) }
|
||||
let(:base1) { projects.create }
|
||||
let(:base1_fork1) { projects.create }
|
||||
let(:base1_fork2) { projects.create }
|
||||
|
||||
let(:base2) { create(:project) }
|
||||
let(:base2_fork1) { create(:project) }
|
||||
let(:base2_fork2) { create(:project) }
|
||||
let(:base2) { projects.create }
|
||||
let(:base2_fork1) { projects.create }
|
||||
let(:base2_fork2) { projects.create }
|
||||
|
||||
let(:fork_of_fork) { create(:project) }
|
||||
let(:fork_of_fork2) { create(:project) }
|
||||
let(:second_level_fork) { create(:project) }
|
||||
let(:third_level_fork) { create(:project) }
|
||||
let(:fork_of_fork) { projects.create }
|
||||
let(:fork_of_fork2) { projects.create }
|
||||
let(:second_level_fork) { projects.create }
|
||||
let(:third_level_fork) { projects.create }
|
||||
|
||||
let(:fork_network1) { fork_networks.find_by(root_project_id: base1.id) }
|
||||
let(:fork_network2) { fork_networks.find_by(root_project_id: base2.id) }
|
||||
|
@ -97,7 +98,7 @@ describe Gitlab::BackgroundMigration::CreateForkNetworkMembershipsRange, :migrat
|
|||
end
|
||||
|
||||
it 'does not miss members for forks of forks for which the root was deleted' do
|
||||
forked_project_links.create(id: 9, forked_from_project_id: base1_fork1.id, forked_to_project_id: create(:project).id)
|
||||
forked_project_links.create(id: 9, forked_from_project_id: base1_fork1.id, forked_to_project_id: projects.create.id)
|
||||
base1.destroy
|
||||
|
||||
expect(migration.missing_members?(7, 10)).to be_falsy
|
||||
|
@ -105,8 +106,8 @@ describe Gitlab::BackgroundMigration::CreateForkNetworkMembershipsRange, :migrat
|
|||
|
||||
context 'with more forks' do
|
||||
before do
|
||||
forked_project_links.create(id: 9, forked_from_project_id: fork_of_fork.id, forked_to_project_id: create(:project).id)
|
||||
forked_project_links.create(id: 10, forked_from_project_id: fork_of_fork.id, forked_to_project_id: create(:project).id)
|
||||
forked_project_links.create(id: 9, forked_from_project_id: fork_of_fork.id, forked_to_project_id: projects.create.id)
|
||||
forked_project_links.create(id: 10, forked_from_project_id: fork_of_fork.id, forked_to_project_id: projects.create.id)
|
||||
end
|
||||
|
||||
it 'only processes a single batch of links at a time' do
|
||||
|
|
|
@ -225,7 +225,8 @@ describe Gitlab::BackgroundMigration::MigrateEventsToPushEventPayloads, :migrati
|
|||
let(:user_class) { table(:users) }
|
||||
let(:author) { build(:user).becomes(user_class).tap(&:save!).becomes(User) }
|
||||
let(:namespace) { create(:namespace, owner: author) }
|
||||
let(:project) { create(:project_empty_repo, namespace: namespace, creator: author) }
|
||||
let(:projects) { table(:projects) }
|
||||
let(:project) { projects.create(namespace_id: namespace.id, creator_id: author.id) }
|
||||
|
||||
# We can not rely on FactoryGirl as the state of Event may change in ways that
|
||||
# the background migration does not expect, hence we use the Event class of
|
||||
|
|
|
@ -2,10 +2,11 @@ require 'spec_helper'
|
|||
|
||||
describe Gitlab::BackgroundMigration::PopulateForkNetworksRange, :migration, schema: 20170929131201 do
|
||||
let(:migration) { described_class.new }
|
||||
let(:base1) { create(:project) }
|
||||
let(:projects) { table(:projects) }
|
||||
let(:base1) { projects.create }
|
||||
|
||||
let(:base2) { create(:project) }
|
||||
let(:base2_fork1) { create(:project) }
|
||||
let(:base2) { projects.create }
|
||||
let(:base2_fork1) { projects.create }
|
||||
|
||||
let!(:forked_project_links) { table(:forked_project_links) }
|
||||
let!(:fork_networks) { table(:fork_networks) }
|
||||
|
@ -18,10 +19,10 @@ describe Gitlab::BackgroundMigration::PopulateForkNetworksRange, :migration, sch
|
|||
# A normal fork link
|
||||
forked_project_links.create(id: 1,
|
||||
forked_from_project_id: base1.id,
|
||||
forked_to_project_id: create(:project).id)
|
||||
forked_to_project_id: projects.create.id)
|
||||
forked_project_links.create(id: 2,
|
||||
forked_from_project_id: base1.id,
|
||||
forked_to_project_id: create(:project).id)
|
||||
forked_to_project_id: projects.create.id)
|
||||
forked_project_links.create(id: 3,
|
||||
forked_from_project_id: base2.id,
|
||||
forked_to_project_id: base2_fork1.id)
|
||||
|
@ -29,10 +30,10 @@ describe Gitlab::BackgroundMigration::PopulateForkNetworksRange, :migration, sch
|
|||
# create a fork of a fork
|
||||
forked_project_links.create(id: 4,
|
||||
forked_from_project_id: base2_fork1.id,
|
||||
forked_to_project_id: create(:project).id)
|
||||
forked_to_project_id: projects.create.id)
|
||||
forked_project_links.create(id: 5,
|
||||
forked_from_project_id: create(:project).id,
|
||||
forked_to_project_id: create(:project).id)
|
||||
forked_from_project_id: projects.create.id,
|
||||
forked_to_project_id: projects.create.id)
|
||||
|
||||
# Stub out the calls to the other migrations
|
||||
allow(BackgroundMigrationWorker).to receive(:perform_in)
|
||||
|
@ -63,7 +64,7 @@ describe Gitlab::BackgroundMigration::PopulateForkNetworksRange, :migration, sch
|
|||
end
|
||||
|
||||
it 'creates a fork network for the fork of which the source was deleted' do
|
||||
fork = create(:project)
|
||||
fork = projects.create
|
||||
forked_project_links.create(id: 6, forked_from_project_id: 99999, forked_to_project_id: fork.id)
|
||||
|
||||
migration.perform(5, 8)
|
||||
|
|
|
@ -2,9 +2,10 @@ require 'spec_helper'
|
|||
require Rails.root.join('db', 'post_migrate', '20171013104327_migrate_gcp_clusters_to_new_clusters_architectures.rb')
|
||||
|
||||
describe MigrateGcpClustersToNewClustersArchitectures, :migration do
|
||||
let(:project) { create(:project) }
|
||||
let(:projects) { table(:projects) }
|
||||
let(:project) { projects.create }
|
||||
let(:user) { create(:user) }
|
||||
let(:service) { create(:kubernetes_service, project: project) }
|
||||
let(:service) { create(:kubernetes_service, project_id: project.id) }
|
||||
|
||||
context 'when cluster is being created' do
|
||||
let(:project_id) { project.id }
|
||||
|
@ -56,8 +57,7 @@ describe MigrateGcpClustersToNewClustersArchitectures, :migration do
|
|||
expect(cluster.provider_type).to eq('gcp')
|
||||
expect(cluster.platform_type).to eq('kubernetes')
|
||||
|
||||
expect(cluster.project).to eq(project)
|
||||
expect(project.clusters).to include(cluster)
|
||||
expect(cluster.project_ids).to include(project.id)
|
||||
|
||||
expect(cluster.provider_gcp.cluster).to eq(cluster)
|
||||
expect(cluster.provider_gcp.status).to eq(status)
|
||||
|
@ -133,8 +133,7 @@ describe MigrateGcpClustersToNewClustersArchitectures, :migration do
|
|||
expect(cluster.provider_type).to eq('gcp')
|
||||
expect(cluster.platform_type).to eq('kubernetes')
|
||||
|
||||
expect(cluster.project).to eq(project)
|
||||
expect(project.clusters).to include(cluster)
|
||||
expect(cluster.project_ids).to include(project.id)
|
||||
|
||||
expect(cluster.provider_gcp.cluster).to eq(cluster)
|
||||
expect(cluster.provider_gcp.status).to eq(status)
|
||||
|
|
Loading…
Reference in a new issue