diff options
Diffstat (limited to 'spec/models/programming_language_spec.rb')
-rw-r--r-- | spec/models/programming_language_spec.rb | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/spec/models/programming_language_spec.rb b/spec/models/programming_language_spec.rb index b202c10e30b..403cd77c707 100644 --- a/spec/models/programming_language_spec.rb +++ b/spec/models/programming_language_spec.rb @@ -3,6 +3,10 @@ require 'spec_helper' RSpec.describe ProgrammingLanguage do + let_it_be(:ruby) { create(:programming_language, name: 'Ruby') } + let_it_be(:python) { create(:programming_language, name: 'Python') } + let_it_be(:swift) { create(:programming_language, name: 'Swift') } + it { is_expected.to respond_to(:name) } it { is_expected.to respond_to(:color) } @@ -12,10 +16,6 @@ RSpec.describe ProgrammingLanguage do it { is_expected.not_to allow_value("#0z0000").for(:color) } describe '.with_name_case_insensitive scope' do - let_it_be(:ruby) { create(:programming_language, name: 'Ruby') } - let_it_be(:python) { create(:programming_language, name: 'Python') } - let_it_be(:swift) { create(:programming_language, name: 'Swift') } - it 'accepts a single name parameter' do expect(described_class.with_name_case_insensitive('swift')).to( contain_exactly(swift) @@ -28,4 +28,17 @@ RSpec.describe ProgrammingLanguage do ) end end + + describe '.most_popular' do + before do + create_list(:repository_language, 3, programming_language_id: ruby.id) + create(:repository_language, programming_language_id: python.id) + create_list(:repository_language, 2, programming_language_id: swift.id) + ApplicationRecord.connection.execute('analyze repository_languages') + end + + it 'returns the most popular programming languages' do + expect(described_class.most_popular(2)).to(contain_exactly(ruby, swift)) + end + end end |