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
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-10-30 12:27:58 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-10-30 12:27:58 +0300
commitb539ac1d619c0aafe5988ab8b125a8b43b14d87f (patch)
treebe1924f2d30fb714e4efd7ffb486f25fa271cb55 /spec
parent4c016ad02422709d3a341215952a9b1cdb4a8451 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/factories/issues.rb1
-rw-r--r--spec/frontend/lib/utils/forms_spec.js22
-rw-r--r--spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb29
-rw-r--r--spec/lib/gitlab/cluster/mixins/unicorn_http_server_spec.rb37
-rw-r--r--spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb2
5 files changed, 67 insertions, 24 deletions
diff --git a/spec/factories/issues.rb b/spec/factories/issues.rb
index 46910078ee5..24c12a66599 100644
--- a/spec/factories/issues.rb
+++ b/spec/factories/issues.rb
@@ -6,6 +6,7 @@ FactoryBot.define do
project
author { project.creator }
updated_by { author }
+ relative_position { RelativePositioning::START_POSITION }
trait :confidential do
confidential { true }
diff --git a/spec/frontend/lib/utils/forms_spec.js b/spec/frontend/lib/utils/forms_spec.js
index cac17235f0d..07ba7c29dfc 100644
--- a/spec/frontend/lib/utils/forms_spec.js
+++ b/spec/frontend/lib/utils/forms_spec.js
@@ -70,5 +70,27 @@ describe('lib/utils/forms', () => {
bar: ['bar-value2', 'bar-value1'],
});
});
+
+ it('handles Microsoft Edge FormData.getAll() bug', () => {
+ const formData = [
+ { type: 'checkbox', name: 'foo', value: 'foo-value1' },
+ { type: 'text', name: 'bar', value: 'bar-value2' },
+ ];
+
+ const form = createDummyForm(formData);
+
+ jest
+ .spyOn(FormData.prototype, 'getAll')
+ .mockImplementation(name =>
+ formData.map(elem => (elem.name === name ? elem.value : undefined)),
+ );
+
+ const data = serializeForm(form);
+
+ expect(data).toEqual({
+ foo: 'foo-value1',
+ bar: 'bar-value2',
+ });
+ });
});
});
diff --git a/spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb b/spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb
index 1eddf488c5d..293df4ffed7 100644
--- a/spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb
+++ b/spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb
@@ -8,15 +8,28 @@ describe Gitlab::Cluster::Mixins::PumaCluster do
PUMA_STARTUP_TIMEOUT = 30
context 'when running Puma in Cluster-mode' do
- %i[USR1 USR2 INT HUP].each do |signal|
- it "for #{signal} does execute phased restart block" do
+ using RSpec::Parameterized::TableSyntax
+
+ where(:signal, :exitstatus, :termsig) do
+ # executes phased restart block
+ :USR1 | 140 | nil
+ :USR2 | 140 | nil
+ :INT | 140 | nil
+ :HUP | 140 | nil
+
+ # does not execute phased restart block
+ :TERM | nil | 15
+ end
+
+ with_them do
+ it 'properly handles process lifecycle' do
with_puma(workers: 1) do |pid|
Process.kill(signal, pid)
child_pid, child_status = Process.wait2(pid)
expect(child_pid).to eq(pid)
- expect(child_status).to be_exited
- expect(child_status.exitstatus).to eq(140)
+ expect(child_status.exitstatus).to eq(exitstatus)
+ expect(child_status.termsig).to eq(termsig)
end
end
end
@@ -62,8 +75,12 @@ describe Gitlab::Cluster::Mixins::PumaCluster do
Puma::Cluster.prepend(#{described_class})
- Gitlab::Cluster::LifecycleEvents.on_before_phased_restart do
- exit(140)
+ mutex = Mutex.new
+
+ Gitlab::Cluster::LifecycleEvents.on_before_graceful_shutdown do
+ mutex.synchronize do
+ exit(140)
+ end
end
# redirect stderr to stdout
diff --git a/spec/lib/gitlab/cluster/mixins/unicorn_http_server_spec.rb b/spec/lib/gitlab/cluster/mixins/unicorn_http_server_spec.rb
index 2b3a267991c..7fa80c14bdc 100644
--- a/spec/lib/gitlab/cluster/mixins/unicorn_http_server_spec.rb
+++ b/spec/lib/gitlab/cluster/mixins/unicorn_http_server_spec.rb
@@ -5,31 +5,30 @@ require 'spec_helper'
# For easier debugging set `UNICORN_DEBUG=1`
describe Gitlab::Cluster::Mixins::UnicornHttpServer do
- UNICORN_STARTUP_TIMEOUT = 10
+ UNICORN_STARTUP_TIMEOUT = 30
context 'when running Unicorn' do
- %i[USR2].each do |signal|
- it "for #{signal} does execute phased restart block" do
- with_unicorn(workers: 1) do |pid|
- Process.kill(signal, pid)
+ using RSpec::Parameterized::TableSyntax
- child_pid, child_status = Process.wait2(pid)
- expect(child_pid).to eq(pid)
- expect(child_status).to be_exited
- expect(child_status.exitstatus).to eq(140)
- end
- end
+ where(:signal, :exitstatus, :termsig) do
+ # executes phased restart block
+ :USR2 | 140 | nil
+ :QUIT | 140 | nil
+
+ # does not execute phased restart block
+ :INT | 0 | nil
+ :TERM | 0 | nil
end
- %i[QUIT TERM INT].each do |signal|
- it "for #{signal} does not execute phased restart block" do
+ with_them do
+ it 'properly handles process lifecycle' do
with_unicorn(workers: 1) do |pid|
Process.kill(signal, pid)
child_pid, child_status = Process.wait2(pid)
expect(child_pid).to eq(pid)
- expect(child_status).to be_exited
- expect(child_status.exitstatus).to eq(0)
+ expect(child_status.exitstatus).to eq(exitstatus)
+ expect(child_status.termsig).to eq(termsig)
end
end
end
@@ -74,8 +73,12 @@ describe Gitlab::Cluster::Mixins::UnicornHttpServer do
Unicorn::HttpServer.prepend(#{described_class})
- Gitlab::Cluster::LifecycleEvents.on_before_phased_restart do
- exit(140)
+ mutex = Mutex.new
+
+ Gitlab::Cluster::LifecycleEvents.on_before_graceful_shutdown do
+ mutex.synchronize do
+ exit(140)
+ end
end
# redirect stderr to stdout
diff --git a/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb b/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb
index 66ea390a2bf..f48cd096a98 100644
--- a/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb
+++ b/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb
@@ -69,7 +69,7 @@ describe Gitlab::Metrics::RequestsRackMiddleware do
expected_labels = []
described_class::HTTP_METHODS.each do |method, statuses|
statuses.each do |status|
- expected_labels << { method: method, status: status }
+ expected_labels << { method: method, status: status.to_i }
end
end