summaryrefslogtreecommitdiff
path: root/spec/serializers/environment_serializer_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/serializers/environment_serializer_spec.rb')
-rw-r--r--spec/serializers/environment_serializer_spec.rb50
1 files changed, 17 insertions, 33 deletions
diff --git a/spec/serializers/environment_serializer_spec.rb b/spec/serializers/environment_serializer_spec.rb
index 1eba9ae4e5e..985e18f27a0 100644
--- a/spec/serializers/environment_serializer_spec.rb
+++ b/spec/serializers/environment_serializer_spec.rb
@@ -3,8 +3,10 @@
require 'spec_helper'
RSpec.describe EnvironmentSerializer do
- let(:user) { create(:user) }
- let(:project) { create(:project) }
+ include CreateEnvironmentsHelpers
+
+ let_it_be(:user) { create(:user) }
+ let_it_be(:project, reload: true) { create(:project, :repository) }
let(:json) do
described_class
@@ -12,43 +14,18 @@ RSpec.describe EnvironmentSerializer do
.represent(resource)
end
- before do
+ before_all do
project.add_developer(user)
end
- context 'when there is a single object provided' do
- let(:project) { create(:project, :repository) }
- let(:deployable) { create(:ci_build) }
- let(:deployment) do
- create(:deployment, :success,
- deployable: deployable,
- user: user,
- project: project,
- sha: project.commit.id)
- end
-
- let(:resource) { deployment.environment }
-
- before do
- create(:ci_build, :manual, name: 'manual1', pipeline: deployable.pipeline)
- end
-
- it 'contains important elements of environment' do
- expect(json)
- .to include(:name, :external_url, :environment_path, :last_deployment)
- end
+ it_behaves_like 'avoid N+1 on environments serialization'
- it 'contains relevant information about last deployment' do
- last_deployment = json.fetch(:last_deployment)
+ context 'when there is a collection of objects provided' do
+ let(:resource) { project.environments }
- expect(last_deployment)
- .to include(:ref, :user, :commit, :deployable, :manual_actions)
+ before_all do
+ create_list(:environment, 2, project: project)
end
- end
-
- context 'when there is a collection of objects provided' do
- let(:project) { create(:project) }
- let(:resource) { create_list(:environment, 2) }
it 'contains important elements of environment' do
expect(json.first)
@@ -207,4 +184,11 @@ RSpec.describe EnvironmentSerializer do
end
end
end
+
+ def create_environment_with_associations(project)
+ create(:environment, project: project).tap do |environment|
+ create(:deployment, :success, environment: environment, project: project)
+ create(:deployment, :running, environment: environment, project: project)
+ end
+ end
end