diff options
author | Francisco Javier López <fjlopez@gitlab.com> | 2018-01-17 21:46:39 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-01-17 21:46:39 +0000 |
commit | 0869d94760b296075920a993eb84828b9ee193a0 (patch) | |
tree | ca58a0cc9b03331a454175f36b71b0a6a224d4ea /spec | |
parent | 56dc7222e30872bbfc45d004b0c1ac778c60a15c (diff) | |
download | gitlab-ce-0869d94760b296075920a993eb84828b9ee193a0.tar.gz |
[10.3] Fix bug in security release with deploy keys migration
Diffstat (limited to 'spec')
-rw-r--r-- | spec/migrations/populate_can_push_from_deploy_keys_projects_spec.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/migrations/populate_can_push_from_deploy_keys_projects_spec.rb b/spec/migrations/populate_can_push_from_deploy_keys_projects_spec.rb new file mode 100644 index 00000000000..0ff98933d5c --- /dev/null +++ b/spec/migrations/populate_can_push_from_deploy_keys_projects_spec.rb @@ -0,0 +1,43 @@ +require 'spec_helper' +require Rails.root.join('db', 'migrate', '20171215113714_populate_can_push_from_deploy_keys_projects.rb') + +describe PopulateCanPushFromDeployKeysProjects, :migration do + let(:migration) { described_class.new } + let(:deploy_keys) { table(:keys) } + let(:deploy_keys_projects) { table(:deploy_keys_projects) } + let(:projects) { table(:projects) } + + before do + deploy_keys.inheritance_column = nil + + projects.create!(id: 1, name: 'gitlab1', path: 'gitlab1') + (1..10).each do |index| + deploy_keys.create!(id: index, title: 'dummy', type: 'DeployKey', key: Spec::Support::Helpers::KeyGeneratorHelper.new(1024).generate + ' dummy@gitlab.com') + deploy_keys_projects.create!(id: index, deploy_key_id: index, project_id: 1) + end + end + + describe '#up' do + it 'migrates can_push from deploy_keys to deploy_keys_projects' do + deploy_keys.limit(5).update_all(can_push: true) + + expected = deploy_keys.order(:id).pluck(:id, :can_push) + + migration.up + + expect(deploy_keys_projects.order(:id).pluck(:deploy_key_id, :can_push)).to eq expected + end + end + + describe '#down' do + it 'migrates can_push from deploy_keys_projects to deploy_keys' do + deploy_keys_projects.limit(5).update_all(can_push: true) + + expected = deploy_keys_projects.order(:id).pluck(:deploy_key_id, :can_push) + + migration.down + + expect(deploy_keys.order(:id).pluck(:id, :can_push)).to eq expected + end + end +end |