Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /spec/presenters
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'spec/presenters')
-rw-r--r--spec/presenters/alert_management/alert_presenter_spec.rb1
-rw-r--r--spec/presenters/blob_presenter_spec.rb137
-rw-r--r--spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb3
-rw-r--r--spec/presenters/ci/pipeline_presenter_spec.rb2
-rw-r--r--spec/presenters/group_member_presenter_spec.rb2
-rw-r--r--spec/presenters/label_presenter_spec.rb1
-rw-r--r--spec/presenters/packages/composer/packages_presenter_spec.rb1
-rw-r--r--spec/presenters/packages/conan/package_presenter_spec.rb1
-rw-r--r--spec/presenters/packages/detail/package_presenter_spec.rb2
-rw-r--r--spec/presenters/packages/npm/package_presenter_spec.rb9
-rw-r--r--spec/presenters/packages/nuget/search_results_presenter_spec.rb1
-rw-r--r--spec/presenters/project_presenter_spec.rb8
-rw-r--r--spec/presenters/prometheus_alert_presenter_spec.rb1
-rw-r--r--spec/presenters/release_presenter_spec.rb1
-rw-r--r--spec/presenters/service_hook_presenter_spec.rb2
-rw-r--r--spec/presenters/snippet_blob_presenter_spec.rb39
-rw-r--r--spec/presenters/terraform/modules_presenter_spec.rb22
-rw-r--r--spec/presenters/user_presenter_spec.rb1
-rw-r--r--spec/presenters/web_hook_log_presenter_spec.rb4
19 files changed, 163 insertions, 75 deletions
diff --git a/spec/presenters/alert_management/alert_presenter_spec.rb b/spec/presenters/alert_management/alert_presenter_spec.rb
index 243301502ce..21c0cb3fead 100644
--- a/spec/presenters/alert_management/alert_presenter_spec.rb
+++ b/spec/presenters/alert_management/alert_presenter_spec.rb
@@ -20,6 +20,7 @@ RSpec.describe AlertManagement::AlertPresenter do
end
let_it_be(:alert) { create(:alert_management_alert, project: project, payload: payload) }
+
let(:alert_url) { "http://localhost/#{project.full_path}/-/alert_management/#{alert.iid}/details" }
subject(:presenter) { described_class.new(alert) }
diff --git a/spec/presenters/blob_presenter_spec.rb b/spec/presenters/blob_presenter_spec.rb
index 47402fea2b5..38bdf3b9364 100644
--- a/spec/presenters/blob_presenter_spec.rb
+++ b/spec/presenters/blob_presenter_spec.rb
@@ -2,52 +2,96 @@
require 'spec_helper'
-RSpec.describe BlobPresenter, :seed_helper do
- let(:repository) { Gitlab::Git::Repository.new('default', TEST_REPO_PATH, '', 'group/project') }
-
- let(:git_blob) do
- Gitlab::Git::Blob.find(
- repository,
- 'fa1b1e6c004a68b7d8763b86455da9e6b23e36d6',
- 'files/ruby/regex.rb'
- )
+RSpec.describe BlobPresenter do
+ let_it_be(:project) { create(:project, :repository) }
+ let_it_be(:user) { project.owner }
+
+ let(:repository) { project.repository }
+ let(:blob) { repository.blob_at('HEAD', 'files/ruby/regex.rb') }
+
+ subject(:presenter) { described_class.new(blob, current_user: user) }
+
+ describe '#web_url' do
+ it { expect(presenter.web_url).to eq("http://localhost/#{project.full_path}/-/blob/#{blob.commit_id}/#{blob.path}") }
+ end
+
+ describe '#web_path' do
+ it { expect(presenter.web_path).to eq("/#{project.full_path}/-/blob/#{blob.commit_id}/#{blob.path}") }
end
- let(:blob) { Blob.new(git_blob) }
+ describe '#edit_blob_path' do
+ it { expect(presenter.edit_blob_path).to eq("/#{project.full_path}/-/edit/#{blob.commit_id}/#{blob.path}") }
+ end
- describe '.web_url' do
- let(:project) { create(:project, :repository) }
- let(:repository) { project.repository }
- let(:blob) { Gitlab::Graphql::Representation::TreeEntry.new(repository.tree.blobs.first, repository) }
+ describe '#raw_path' do
+ it { expect(presenter.raw_path).to eq("/#{project.full_path}/-/raw/#{blob.commit_id}/#{blob.path}") }
+ end
- subject { described_class.new(blob) }
+ describe '#replace_path' do
+ it { expect(presenter.replace_path).to eq("/#{project.full_path}/-/create/#{blob.commit_id}/#{blob.path}") }
+ end
- it { expect(subject.web_url).to eq("http://localhost/#{project.full_path}/-/blob/#{blob.commit_id}/#{blob.path}") }
+ describe '#ide_edit_path' do
+ it { expect(presenter.ide_edit_path).to eq("/-/ide/project/#{project.full_path}/edit/HEAD/-/files/ruby/regex.rb") }
end
- describe '#web_path' do
- let(:project) { create(:project, :repository) }
- let(:repository) { project.repository }
- let(:blob) { Gitlab::Graphql::Representation::TreeEntry.new(repository.tree.blobs.first, repository) }
+ describe '#fork_and_edit_path' do
+ it 'generates expected URI + query' do
+ uri = URI.parse(presenter.fork_and_edit_path)
+ query = Rack::Utils.parse_query(uri.query)
+
+ expect(uri.path).to eq("/#{project.full_path}/-/forks")
+ expect(query).to include('continue[to]' => presenter.edit_blob_path, 'namespace_key' => user.namespace_id.to_s)
+ end
- subject { described_class.new(blob) }
+ context 'current_user is nil' do
+ let(:user) { nil }
- it { expect(subject.web_path).to eq("/#{project.full_path}/-/blob/#{blob.commit_id}/#{blob.path}") }
+ it { expect(presenter.fork_and_edit_path).to be_nil }
+ end
+ end
+
+ describe '#ide_fork_and_edit_path' do
+ it 'generates expected URI + query' do
+ uri = URI.parse(presenter.ide_fork_and_edit_path)
+ query = Rack::Utils.parse_query(uri.query)
+
+ expect(uri.path).to eq("/#{project.full_path}/-/forks")
+ expect(query).to include('continue[to]' => presenter.ide_edit_path, 'namespace_key' => user.namespace_id.to_s)
+ end
+
+ context 'current_user is nil' do
+ let(:user) { nil }
+
+ it { expect(presenter.ide_fork_and_edit_path).to be_nil }
+ end
+ end
+
+ context 'given a Gitlab::Graphql::Representation::TreeEntry' do
+ let(:blob) { Gitlab::Graphql::Representation::TreeEntry.new(super(), repository) }
+
+ describe '#web_url' do
+ it { expect(presenter.web_url).to eq("http://localhost/#{project.full_path}/-/blob/#{blob.commit_id}/#{blob.path}") }
+ end
+
+ describe '#web_path' do
+ it { expect(presenter.web_path).to eq("/#{project.full_path}/-/blob/#{blob.commit_id}/#{blob.path}") }
+ end
end
describe '#highlight' do
- subject { described_class.new(blob) }
+ let(:git_blob) { blob.__getobj__ }
it 'returns highlighted content' do
expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: nil)
- subject.highlight
+ presenter.highlight
end
it 'returns plain content when :plain is true' do
expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: true, language: nil)
- subject.highlight(plain: true)
+ presenter.highlight(plain: true)
end
context '"to" param is present' do
@@ -60,7 +104,7 @@ RSpec.describe BlobPresenter, :seed_helper do
it 'returns limited highlighted content' do
expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', "line one\n", plain: nil, language: nil)
- subject.highlight(to: 1)
+ presenter.highlight(to: 1)
end
end
@@ -72,7 +116,46 @@ RSpec.describe BlobPresenter, :seed_helper do
it 'passes language to inner call' do
expect(Gitlab::Highlight).to receive(:highlight).with('files/ruby/regex.rb', git_blob.data, plain: nil, language: 'ruby')
- subject.highlight
+ presenter.highlight
+ end
+ end
+ end
+
+ describe '#plain_data' do
+ let(:blob) { repository.blob_at('HEAD', file) }
+
+ subject { described_class.new(blob).plain_data }
+
+ context 'when blob is binary' do
+ let(:file) { 'files/images/logo-black.png' }
+
+ it 'returns nil' do
+ expect(subject).to be_nil
+ end
+ end
+
+ context 'when blob is markup' do
+ let(:file) { 'README.md' }
+
+ it 'returns plain content' do
+ expect(subject).to include('<span id="LC1" class="line" lang="markdown">')
+ end
+ end
+
+ context 'when blob has syntax' do
+ let(:file) { 'files/ruby/regex.rb' }
+
+ it 'returns highlighted syntax content' do
+ expect(subject)
+ .to include '<span id="LC1" class="line" lang="ruby"><span class="k">module</span> <span class="nn">Gitlab</span>'
+ end
+ end
+
+ context 'when blob has plain data' do
+ let(:file) { 'LICENSE' }
+
+ it 'returns plain text highlighted content' do
+ expect(subject).to include('<span id="LC1" class="line" lang="plaintext">The MIT License (MIT)</span>')
end
end
end
diff --git a/spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb b/spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb
index 06d5422eed3..94a743d4d89 100644
--- a/spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb
+++ b/spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb
@@ -4,11 +4,12 @@ require 'spec_helper'
RSpec.describe Ci::PipelineArtifacts::CodeQualityMrDiffPresenter do
let(:pipeline_artifact) { create(:ci_pipeline_artifact, :with_codequality_mr_diff_report) }
+ let(:merge_request) { double(id: 123456789, new_paths: filenames) }
subject(:presenter) { described_class.new(pipeline_artifact) }
describe '#for_files' do
- subject(:quality_data) { presenter.for_files(filenames) }
+ subject(:quality_data) { presenter.for_files(merge_request) }
context 'when code quality has data' do
context 'when filenames is empty' do
diff --git a/spec/presenters/ci/pipeline_presenter_spec.rb b/spec/presenters/ci/pipeline_presenter_spec.rb
index 5cb9d340e06..2d3c0d85eda 100644
--- a/spec/presenters/ci/pipeline_presenter_spec.rb
+++ b/spec/presenters/ci/pipeline_presenter_spec.rb
@@ -8,6 +8,7 @@ RSpec.describe Ci::PipelinePresenter do
let_it_be(:user) { create(:user) }
let_it_be_with_reload(:project) { create(:project, :test_repo) }
let_it_be_with_reload(:pipeline) { create(:ci_pipeline, project: project) }
+
let(:current_user) { user }
subject(:presenter) do
@@ -246,6 +247,7 @@ RSpec.describe Ci::PipelinePresenter do
context 'permissions' do
let_it_be_with_refind(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline, source_project: project) }
+
let(:pipeline) { merge_request.all_pipelines.take }
shared_examples 'private merge requests' do
diff --git a/spec/presenters/group_member_presenter_spec.rb b/spec/presenters/group_member_presenter_spec.rb
index 6bd3005fbb6..352f81356e0 100644
--- a/spec/presenters/group_member_presenter_spec.rb
+++ b/spec/presenters/group_member_presenter_spec.rb
@@ -142,7 +142,7 @@ RSpec.describe GroupMemberPresenter do
let(:expected_roles) { { 'Developer' => 30, 'Maintainer' => 40, 'Owner' => 50, 'Reporter' => 20 } }
before do
- entity.parent = group
+ entity.update!(parent: group)
end
end
end
diff --git a/spec/presenters/label_presenter_spec.rb b/spec/presenters/label_presenter_spec.rb
index 44c68a6102f..bab0d9a1065 100644
--- a/spec/presenters/label_presenter_spec.rb
+++ b/spec/presenters/label_presenter_spec.rb
@@ -7,6 +7,7 @@ RSpec.describe LabelPresenter do
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, group: group) }
+
let(:label) { build_stubbed(:label, project: project).present(issuable_subject: project) }
let(:group_label) { build_stubbed(:group_label, group: group).present(issuable_subject: project) }
diff --git a/spec/presenters/packages/composer/packages_presenter_spec.rb b/spec/presenters/packages/composer/packages_presenter_spec.rb
index c1d8c9816a6..1f638e5b935 100644
--- a/spec/presenters/packages/composer/packages_presenter_spec.rb
+++ b/spec/presenters/packages/composer/packages_presenter_spec.rb
@@ -9,6 +9,7 @@ RSpec.describe ::Packages::Composer::PackagesPresenter do
let_it_be(:json) { { 'name' => package_name } }
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, :custom_repo, files: { 'composer.json' => json.to_json }, group: group) }
+
let!(:package1) { create(:composer_package, :with_metadatum, project: project, name: package_name, version: '1.0.0', json: json) }
let!(:package2) { create(:composer_package, :with_metadatum, project: project, name: package_name, version: '2.0.0', json: json) }
diff --git a/spec/presenters/packages/conan/package_presenter_spec.rb b/spec/presenters/packages/conan/package_presenter_spec.rb
index dad9460c8eb..6d82c5ef547 100644
--- a/spec/presenters/packages/conan/package_presenter_spec.rb
+++ b/spec/presenters/packages/conan/package_presenter_spec.rb
@@ -7,6 +7,7 @@ RSpec.describe ::Packages::Conan::PackagePresenter do
let_it_be(:package) { create(:conan_package) }
let_it_be(:project) { package.project }
let_it_be(:conan_package_reference) { '123456789'}
+
let(:params) { { package_scope: :instance } }
shared_examples 'no existing package' do
diff --git a/spec/presenters/packages/detail/package_presenter_spec.rb b/spec/presenters/packages/detail/package_presenter_spec.rb
index 4c3e0228583..d8f1c98e762 100644
--- a/spec/presenters/packages/detail/package_presenter_spec.rb
+++ b/spec/presenters/packages/detail/package_presenter_spec.rb
@@ -50,6 +50,7 @@ RSpec.describe ::Packages::Detail::PackagePresenter do
name: package.name,
package_files: expected_package_files,
package_type: package.package_type,
+ status: package.status,
project_id: package.project_id,
tags: package.tags.as_json,
updated_at: package.updated_at,
@@ -125,6 +126,7 @@ RSpec.describe ::Packages::Detail::PackagePresenter do
context 'with nuget_metadatum' do
let_it_be(:package) { create(:nuget_package, project: project) }
let_it_be(:nuget_metadatum) { create(:nuget_metadatum, package: package) }
+
let(:expected_package_details) { super().merge(nuget_metadatum: nuget_metadatum) }
it 'returns nuget_metadatum' do
diff --git a/spec/presenters/packages/npm/package_presenter_spec.rb b/spec/presenters/packages/npm/package_presenter_spec.rb
index 0e8cda5bafd..e524edaadc6 100644
--- a/spec/presenters/packages/npm/package_presenter_spec.rb
+++ b/spec/presenters/packages/npm/package_presenter_spec.rb
@@ -5,6 +5,7 @@ require 'spec_helper'
RSpec.describe ::Packages::Npm::PackagePresenter do
let_it_be(:project) { create(:project) }
let_it_be(:package_name) { "@#{project.root_namespace.path}/test" }
+
let!(:package1) { create(:npm_package, version: '1.0.4', project: project, name: package_name) }
let!(:package2) { create(:npm_package, version: '1.0.6', project: project, name: package_name) }
let!(:latest_package) { create(:npm_package, version: '1.0.11', project: project, name: package_name) }
@@ -16,8 +17,8 @@ RSpec.describe ::Packages::Npm::PackagePresenter do
context 'for packages without dependencies' do
it { is_expected.to be_a(Hash) }
- it { expect(subject[package1.version]).to match_schema('public_api/v4/packages/npm_package_version') }
- it { expect(subject[package2.version]).to match_schema('public_api/v4/packages/npm_package_version') }
+ it { expect(subject[package1.version].with_indifferent_access).to match_schema('public_api/v4/packages/npm_package_version') }
+ it { expect(subject[package2.version].with_indifferent_access).to match_schema('public_api/v4/packages/npm_package_version') }
described_class::NPM_VALID_DEPENDENCY_TYPES.each do |dependency_type|
it { expect(subject.dig(package1.version, dependency_type)).to be nil }
@@ -31,8 +32,8 @@ RSpec.describe ::Packages::Npm::PackagePresenter do
end
it { is_expected.to be_a(Hash) }
- it { expect(subject[package1.version]).to match_schema('public_api/v4/packages/npm_package_version') }
- it { expect(subject[package2.version]).to match_schema('public_api/v4/packages/npm_package_version') }
+ it { expect(subject[package1.version].with_indifferent_access).to match_schema('public_api/v4/packages/npm_package_version') }
+ it { expect(subject[package2.version].with_indifferent_access).to match_schema('public_api/v4/packages/npm_package_version') }
described_class::NPM_VALID_DEPENDENCY_TYPES.each do |dependency_type|
it { expect(subject.dig(package1.version, dependency_type.to_s)).to be_any }
end
diff --git a/spec/presenters/packages/nuget/search_results_presenter_spec.rb b/spec/presenters/packages/nuget/search_results_presenter_spec.rb
index fed20c8e39d..39ec7251dfd 100644
--- a/spec/presenters/packages/nuget/search_results_presenter_spec.rb
+++ b/spec/presenters/packages/nuget/search_results_presenter_spec.rb
@@ -11,6 +11,7 @@ RSpec.describe Packages::Nuget::SearchResultsPresenter do
let_it_be(:packages_c) { create_list(:nuget_package, 5, project: project, name: 'DummyPackageC') }
let_it_be(:search_results) { OpenStruct.new(total_count: 3, results: [package_a, packages_b, packages_c].flatten) }
let_it_be(:presenter) { described_class.new(search_results) }
+
let(:total_count) { presenter.total_count }
let(:data) { presenter.data }
diff --git a/spec/presenters/project_presenter_spec.rb b/spec/presenters/project_presenter_spec.rb
index a9a5ecb3299..c834e183e5e 100644
--- a/spec/presenters/project_presenter_spec.rb
+++ b/spec/presenters/project_presenter_spec.rb
@@ -72,6 +72,7 @@ RSpec.describe ProjectPresenter do
context 'when repository is not empty' do
let_it_be(:project) { create(:project, :public, :repository) }
+
let(:release) { create(:release, project: project, author: user) }
it 'returns files and readme if user has repository access' do
@@ -271,6 +272,7 @@ RSpec.describe ProjectPresenter do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository) }
let_it_be(:release) { create(:release, project: project, author: user) }
+
let(:presenter) { described_class.new(project, current_user: user) }
describe '#files_anchor_data' do
@@ -792,6 +794,12 @@ RSpec.describe ProjectPresenter do
end
end
+ describe '#add_code_quality_ci_yml_path' do
+ subject { presenter.add_code_quality_ci_yml_path }
+
+ it { is_expected.to match(/code_quality_walkthrough=true.*template=Code-Quality/) }
+ end
+
describe 'empty_repo_upload_experiment?' do
subject { presenter.empty_repo_upload_experiment? }
diff --git a/spec/presenters/prometheus_alert_presenter_spec.rb b/spec/presenters/prometheus_alert_presenter_spec.rb
index b9f18e2be28..739bbaeb98f 100644
--- a/spec/presenters/prometheus_alert_presenter_spec.rb
+++ b/spec/presenters/prometheus_alert_presenter_spec.rb
@@ -12,6 +12,7 @@ RSpec.describe PrometheusAlertPresenter do
subject { presenter.humanized_text }
let_it_be(:prometheus_metric) { create(:prometheus_metric, project: project) }
+
let(:prometheus_alert) { create(:prometheus_alert, operator: operator, project: project, environment: environment, prometheus_metric: prometheus_metric) }
let(:operator) { :gt }
diff --git a/spec/presenters/release_presenter_spec.rb b/spec/presenters/release_presenter_spec.rb
index 4bf12183eff..97c05a1b7a2 100644
--- a/spec/presenters/release_presenter_spec.rb
+++ b/spec/presenters/release_presenter_spec.rb
@@ -6,6 +6,7 @@ RSpec.describe ReleasePresenter do
include Gitlab::Routing.url_helpers
let_it_be(:project) { create(:project, :repository) }
+
let(:developer) { create(:user) }
let(:guest) { create(:user) }
let(:user) { developer }
diff --git a/spec/presenters/service_hook_presenter_spec.rb b/spec/presenters/service_hook_presenter_spec.rb
index adef34a882b..bc6e505d9e1 100644
--- a/spec/presenters/service_hook_presenter_spec.rb
+++ b/spec/presenters/service_hook_presenter_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe ServiceHookPresenter do
let(:web_hook_log) { create(:web_hook_log, web_hook: service_hook) }
- let(:service_hook) { create(:service_hook, service: service) }
+ let(:service_hook) { create(:service_hook, integration: service) }
let(:service) { create(:drone_ci_service, project: project) }
let(:project) { create(:project) }
diff --git a/spec/presenters/snippet_blob_presenter_spec.rb b/spec/presenters/snippet_blob_presenter_spec.rb
index 83fe37effc0..42eca6b5a49 100644
--- a/spec/presenters/snippet_blob_presenter_spec.rb
+++ b/spec/presenters/snippet_blob_presenter_spec.rb
@@ -80,45 +80,6 @@ RSpec.describe SnippetBlobPresenter do
end
end
- describe '#plain_data' do
- let(:blob) { blob_at(file) }
-
- subject { described_class.new(blob).plain_data }
-
- context 'when blob is binary' do
- let(:file) { 'files/images/logo-black.png' }
-
- it 'returns nil' do
- expect(subject).to be_nil
- end
- end
-
- context 'when blob is markup' do
- let(:file) { 'README.md' }
-
- it 'returns plain content' do
- expect(subject).to include('<span id="LC1" class="line" lang="markdown">')
- end
- end
-
- context 'when blob has syntax' do
- let(:file) { 'files/ruby/regex.rb' }
-
- it 'returns highlighted syntax content' do
- expect(subject)
- .to include '<span id="LC1" class="line" lang="ruby"><span class="k">module</span> <span class="nn">Gitlab</span>'
- end
- end
-
- context 'when blob has plain data' do
- let(:file) { 'LICENSE' }
-
- it 'returns plain text highlighted content' do
- expect(subject).to include('<span id="LC1" class="line" lang="plaintext">The MIT License (MIT)</span>')
- end
- end
- end
-
describe 'route helpers' do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
diff --git a/spec/presenters/terraform/modules_presenter_spec.rb b/spec/presenters/terraform/modules_presenter_spec.rb
new file mode 100644
index 00000000000..f5ad53e16ca
--- /dev/null
+++ b/spec/presenters/terraform/modules_presenter_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ::Terraform::ModulesPresenter do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:module_system) { 'my-system' }
+ let_it_be(:package_name) { "my-module/#{module_system}" }
+ let_it_be(:package1) { create(:terraform_module_package, version: '1.0.1', project: project, name: package_name) }
+ let_it_be(:package2) { create(:terraform_module_package, version: '1.0.10', project: project, name: package_name) }
+
+ let(:packages) { project.packages.terraform_module.with_name(package_name) }
+ let(:presenter) { described_class.new(packages, module_system) }
+
+ describe '#modules' do
+ subject { presenter.modules }
+
+ it { is_expected.to be_an(Array) }
+ it { expect(subject.first).to be_a(Hash) }
+ it { expect(subject).to match_schema('public_api/v4/packages/terraform/modules/v1/modules') }
+ end
+end
diff --git a/spec/presenters/user_presenter_spec.rb b/spec/presenters/user_presenter_spec.rb
index fdc20216a02..9c51c0b0078 100644
--- a/spec/presenters/user_presenter_spec.rb
+++ b/spec/presenters/user_presenter_spec.rb
@@ -4,6 +4,7 @@ require 'spec_helper'
RSpec.describe UserPresenter do
let_it_be(:user) { create(:user) }
+
subject(:presenter) { described_class.new(user) }
describe '#web_path' do
diff --git a/spec/presenters/web_hook_log_presenter_spec.rb b/spec/presenters/web_hook_log_presenter_spec.rb
index 68c8c6e2a1b..ec930be266d 100644
--- a/spec/presenters/web_hook_log_presenter_spec.rb
+++ b/spec/presenters/web_hook_log_presenter_spec.rb
@@ -18,7 +18,7 @@ RSpec.describe WebHookLogPresenter do
end
context 'service hook' do
- let(:web_hook) { create(:service_hook, service: service) }
+ let(:web_hook) { create(:service_hook, integration: service) }
let(:service) { create(:drone_ci_service, project: project) }
it { is_expected.to eq(project_service_hook_log_path(project, service, web_hook_log)) }
@@ -38,7 +38,7 @@ RSpec.describe WebHookLogPresenter do
end
context 'service hook' do
- let(:web_hook) { create(:service_hook, service: service) }
+ let(:web_hook) { create(:service_hook, integration: service) }
let(:service) { create(:drone_ci_service, project: project) }
it { is_expected.to eq(retry_project_service_hook_log_path(project, service, web_hook_log)) }