Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/presenters/projects/settings/deploy_keys_presenter_spec.rb')
-rw-r--r--spec/presenters/projects/settings/deploy_keys_presenter_spec.rb45
1 files changed, 43 insertions, 2 deletions
diff --git a/spec/presenters/projects/settings/deploy_keys_presenter_spec.rb b/spec/presenters/projects/settings/deploy_keys_presenter_spec.rb
index 7a679a03b53..0d340c5e713 100644
--- a/spec/presenters/projects/settings/deploy_keys_presenter_spec.rb
+++ b/spec/presenters/projects/settings/deploy_keys_presenter_spec.rb
@@ -3,17 +3,58 @@
require 'spec_helper'
RSpec.describe Projects::Settings::DeployKeysPresenter do
- let(:project) { create(:project) }
- let(:user) { create(:user) }
+ let_it_be(:project, refind: true) { create(:project) }
+ let_it_be(:other_project) { create(:project) }
+ let_it_be(:user) { create(:user) }
subject(:presenter) do
described_class.new(project, current_user: user)
end
+ before_all do
+ project.add_maintainer(user)
+ other_project.add_maintainer(user)
+ end
+
it 'inherits from Gitlab::View::Presenter::Simple' do
expect(described_class.superclass).to eq(Gitlab::View::Presenter::Simple)
end
+ describe 'deploy key groups' do
+ let_it_be(:deploy_key) { create(:deploy_key, projects: [project]) }
+ let_it_be(:other_deploy_key) { create(:deploy_key, projects: [other_project]) }
+ let_it_be(:public_deploy_key) { create(:deploy_key, public: true) }
+ let_it_be(:unrelated_project) { create(:project, :private) }
+ let_it_be(:unrelated_deploy_key) { create(:deploy_key, projects: [unrelated_project]) }
+
+ context 'with enabled keys' do
+ it 'returns correct deploy keys' do
+ expect(presenter.enabled_keys).to eq([deploy_key])
+ expect(presenter.enabled_keys_size).to eq(1)
+ end
+ end
+
+ context 'with available keys' do
+ it 'returns correct deploy keys' do
+ expect(presenter.available_keys).to eq([other_deploy_key, public_deploy_key])
+ end
+ end
+
+ context 'with available project keys' do
+ it 'returns correct deploy keys' do
+ expect(presenter.available_project_keys).to eq([other_deploy_key])
+ expect(presenter.available_project_keys_size).to eq(1)
+ end
+ end
+
+ context 'with available public keys' do
+ it 'returns correct deploy keys' do
+ expect(presenter.available_public_keys).to eq([public_deploy_key])
+ expect(presenter.available_public_keys_size).to eq(1)
+ end
+ end
+ end
+
describe '#enabled_keys' do
let!(:deploy_key) { create(:deploy_key, public: true) }