diff options
Diffstat (limited to 'spec/lib/api/entities')
-rw-r--r-- | spec/lib/api/entities/basic_project_details_spec.rb | 27 | ||||
-rw-r--r-- | spec/lib/api/entities/bulk_import_spec.rb | 19 | ||||
-rw-r--r-- | spec/lib/api/entities/bulk_imports/entity_failure_spec.rb | 19 | ||||
-rw-r--r-- | spec/lib/api/entities/bulk_imports/entity_spec.rb | 26 | ||||
-rw-r--r-- | spec/lib/api/entities/ci/job_request/image_spec.rb (renamed from spec/lib/api/entities/job_request/image_spec.rb) | 2 | ||||
-rw-r--r-- | spec/lib/api/entities/ci/job_request/port_spec.rb (renamed from spec/lib/api/entities/job_request/port_spec.rb) | 2 | ||||
-rw-r--r-- | spec/lib/api/entities/group_detail_spec.rb | 19 | ||||
-rw-r--r-- | spec/lib/api/entities/plan_limit_spec.rb | 3 | ||||
-rw-r--r-- | spec/lib/api/entities/user_spec.rb | 2 |
9 files changed, 115 insertions, 4 deletions
diff --git a/spec/lib/api/entities/basic_project_details_spec.rb b/spec/lib/api/entities/basic_project_details_spec.rb new file mode 100644 index 00000000000..dc7c4fdce4e --- /dev/null +++ b/spec/lib/api/entities/basic_project_details_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe API::Entities::BasicProjectDetails do + let_it_be(:project) { create(:project) } + + let(:current_user) { project.owner } + + subject(:output) { described_class.new(project, current_user: current_user).as_json } + + describe '#default_branch' do + it 'delegates to Project#default_branch_or_main' do + expect(project).to receive(:default_branch_or_main).twice.and_call_original + + expect(output).to include(default_branch: project.default_branch_or_main) + end + + context 'anonymous user' do + let(:current_user) { nil } + + it 'is not included' do + expect(output.keys).not_to include(:default_branch) + end + end + end +end diff --git a/spec/lib/api/entities/bulk_import_spec.rb b/spec/lib/api/entities/bulk_import_spec.rb new file mode 100644 index 00000000000..2db6862b079 --- /dev/null +++ b/spec/lib/api/entities/bulk_import_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe API::Entities::BulkImport do + let_it_be(:import) { create(:bulk_import) } + + subject { described_class.new(import).as_json } + + it 'has the correct attributes' do + expect(subject).to include( + :id, + :status, + :source_type, + :created_at, + :updated_at + ) + end +end diff --git a/spec/lib/api/entities/bulk_imports/entity_failure_spec.rb b/spec/lib/api/entities/bulk_imports/entity_failure_spec.rb new file mode 100644 index 00000000000..adc8fdcdd9c --- /dev/null +++ b/spec/lib/api/entities/bulk_imports/entity_failure_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe API::Entities::BulkImports::EntityFailure do + let_it_be(:failure) { create(:bulk_import_failure) } + + subject { described_class.new(failure).as_json } + + it 'has the correct attributes' do + expect(subject).to include( + :pipeline_class, + :pipeline_step, + :exception_class, + :correlation_id_value, + :created_at + ) + end +end diff --git a/spec/lib/api/entities/bulk_imports/entity_spec.rb b/spec/lib/api/entities/bulk_imports/entity_spec.rb new file mode 100644 index 00000000000..f91ae1fc5a1 --- /dev/null +++ b/spec/lib/api/entities/bulk_imports/entity_spec.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe API::Entities::BulkImports::Entity do + let_it_be(:entity) { create(:bulk_import_entity) } + + subject { described_class.new(entity).as_json } + + it 'has the correct attributes' do + expect(subject).to include( + :id, + :bulk_import_id, + :status, + :source_full_path, + :destination_name, + :destination_namespace, + :parent_id, + :namespace_id, + :project_id, + :created_at, + :updated_at, + :failures + ) + end +end diff --git a/spec/lib/api/entities/job_request/image_spec.rb b/spec/lib/api/entities/ci/job_request/image_spec.rb index f13eab6a752..55aade03129 100644 --- a/spec/lib/api/entities/job_request/image_spec.rb +++ b/spec/lib/api/entities/ci/job_request/image_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe API::Entities::JobRequest::Image do +RSpec.describe API::Entities::Ci::JobRequest::Image do let(:ports) { [{ number: 80, protocol: 'http', name: 'name' }]} let(:image) { double(name: 'image_name', entrypoint: ['foo'], ports: ports)} let(:entity) { described_class.new(image) } diff --git a/spec/lib/api/entities/job_request/port_spec.rb b/spec/lib/api/entities/ci/job_request/port_spec.rb index 4820c4a691b..8e0d2cabcfc 100644 --- a/spec/lib/api/entities/job_request/port_spec.rb +++ b/spec/lib/api/entities/ci/job_request/port_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe ::API::Entities::JobRequest::Port do +RSpec.describe ::API::Entities::Ci::JobRequest::Port do let(:port) { double(number: 80, protocol: 'http', name: 'name')} let(:entity) { described_class.new(port) } diff --git a/spec/lib/api/entities/group_detail_spec.rb b/spec/lib/api/entities/group_detail_spec.rb new file mode 100644 index 00000000000..8fcb120c809 --- /dev/null +++ b/spec/lib/api/entities/group_detail_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe API::Entities::GroupDetail do + describe '#as_json' do + it 'includes prevent_sharing_groups_outside_hierarchy for a root group' do + group = create(:group) + + expect(described_class.new(group).as_json).to include(prevent_sharing_groups_outside_hierarchy: false) + end + + it 'excludes prevent_sharing_groups_outside_hierarchy for a subgroup' do + subgroup = build(:group, :nested) + + expect(described_class.new(subgroup).as_json.keys).not_to include(:prevent_sharing_groups_outside_hierarchy) + end + end +end diff --git a/spec/lib/api/entities/plan_limit_spec.rb b/spec/lib/api/entities/plan_limit_spec.rb index ee42c67f9b6..75e39e4f074 100644 --- a/spec/lib/api/entities/plan_limit_spec.rb +++ b/spec/lib/api/entities/plan_limit_spec.rb @@ -14,7 +14,8 @@ RSpec.describe API::Entities::PlanLimit do :maven_max_file_size, :npm_max_file_size, :nuget_max_file_size, - :pypi_max_file_size + :pypi_max_file_size, + :terraform_module_max_file_size ) end diff --git a/spec/lib/api/entities/user_spec.rb b/spec/lib/api/entities/user_spec.rb index e35deeb6263..860f007f284 100644 --- a/spec/lib/api/entities/user_spec.rb +++ b/spec/lib/api/entities/user_spec.rb @@ -9,7 +9,7 @@ RSpec.describe API::Entities::User do subject { described_class.new(user, current_user: current_user).as_json } it 'exposes correct attributes' do - expect(subject).to include(:bio, :location, :public_email, :skype, :linkedin, :twitter, :website_url, :organization, :job_title, :work_information) + expect(subject).to include(:bio, :location, :public_email, :skype, :linkedin, :twitter, :website_url, :organization, :job_title, :work_information, :pronouns) end it 'exposes created_at if the current user can read the user profile' do |