diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-28 18:09:35 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-28 18:09:35 +0300 |
commit | 42d13aebd3c47671337d871e8b349385dade5252 (patch) | |
tree | c15b971738677229f079feab81821611f92ad6c9 /spec/lib | |
parent | 0805030d634b48c8a44308330fe0d99ba8434f46 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/gitlab/i18n_spec.rb | 18 | ||||
-rw-r--r-- | spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb | 63 |
2 files changed, 76 insertions, 5 deletions
diff --git a/spec/lib/gitlab/i18n_spec.rb b/spec/lib/gitlab/i18n_spec.rb index ee10739195a..f34de298fc0 100644 --- a/spec/lib/gitlab/i18n_spec.rb +++ b/spec/lib/gitlab/i18n_spec.rb @@ -3,13 +3,21 @@ require 'spec_helper' RSpec.describe Gitlab::I18n do - let(:user) { create(:user, preferred_language: 'es') } + let(:user) { create(:user, preferred_language: :es) } describe '.selectable_locales' do - it 'does not return languages that should not be available in the UI' do - Gitlab::I18n::NOT_AVAILABLE_IN_UI.each do |language| - expect(described_class.selectable_locales).not_to include(language) - end + it 'does not return languages with low translation levels' do + stub_const( + 'Gitlab::I18n::TRANSLATION_LEVELS', + 'pt_BR' => 0, + 'en' => 100, + 'es' => 65 + ) + + expect(described_class.selectable_locales).to eq({ + 'en' => 'English', + 'es' => 'Spanish - espaƱol' + }) end end diff --git a/spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb b/spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb new file mode 100644 index 00000000000..cef303fb068 --- /dev/null +++ b/spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Sidebars::Projects::Menus::MergeRequestsMenu do + let_it_be(:project) { create(:project, :repository) } + + let(:user) { project.owner } + let(:context) { Sidebars::Projects::Context.new(current_user: user, container: project) } + + subject { described_class.new(context) } + + describe '#render?' do + context 'when repository is not present' do + let(:project) { build(:project) } + + it 'returns false' do + expect(subject.render?).to eq false + end + end + + context 'when repository is present' do + context 'when user can read merge requests' do + it 'returns true' do + expect(subject.render?).to eq true + end + end + + context 'when user cannot read merge requests' do + let(:user) { nil } + + it 'returns false' do + expect(subject.render?).to eq false + end + end + end + end + + describe '#pill_count' do + it 'returns zero when there are no open merge requests' do + expect(subject.pill_count).to eq 0 + end + + it 'memoizes the query' do + subject.pill_count + + control = ActiveRecord::QueryRecorder.new do + subject.pill_count + end + + expect(control.count).to eq 0 + end + + context 'when there are open merge requests' do + it 'returns the number of open merge requests' do + create_list(:merge_request, 2, :unique_branches, source_project: project, author: user, state: :opened) + create(:merge_request, source_project: project, state: :merged) + + expect(subject.pill_count).to eq 2 + end + end + end +end |