1# frozen_string_literal: true 2 3require 'spec_helper' 4 5RSpec.describe GitlabSchema.types['BoardList'] do 6 include GraphqlHelpers 7 include Gitlab::Graphql::Laziness 8 9 specify { expect(described_class.graphql_name).to eq('BoardList') } 10 11 it 'has specific fields' do 12 expected_fields = %w[id title list_type position label issues_count issues] 13 14 expect(described_class).to include_graphql_fields(*expected_fields) 15 end 16 17 describe 'issues field' do 18 subject { described_class.fields['issues'] } 19 20 it 'has a correct extension' do 21 is_expected.to have_graphql_extension(Gitlab::Graphql::Board::IssuesConnectionExtension) 22 end 23 end 24 25 describe 'title' do 26 subject(:field) { described_class.fields['title'] } 27 28 it 'preloads the label association' do 29 a, b, c = create_list(:list, 3).map { _1.class.find(_1.id) } 30 31 baseline = ActiveRecord::QueryRecorder.new { force(resolve_field(field, a)) } 32 33 expect do 34 [resolve_field(field, b), resolve_field(field, c)].each { force _1 } 35 end.not_to exceed_query_limit(baseline) 36 end 37 end 38end 39