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/lib
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/kubernetes/generic_secret_spec.rb24
-rw-r--r--spec/lib/gitlab/kubernetes/tls_secret_spec.rb32
-rw-r--r--spec/lib/gitlab/utils/deep_size_spec.rb38
3 files changed, 83 insertions, 11 deletions
diff --git a/spec/lib/gitlab/kubernetes/generic_secret_spec.rb b/spec/lib/gitlab/kubernetes/generic_secret_spec.rb
new file mode 100644
index 00000000000..fe1d4cc11e6
--- /dev/null
+++ b/spec/lib/gitlab/kubernetes/generic_secret_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe Gitlab::Kubernetes::GenericSecret do
+ let(:secret) { described_class.new(name, data, namespace) }
+ let(:name) { 'example-name' }
+ let(:data) { 'example-data' }
+ let(:namespace) { 'example-namespace' }
+
+ describe '#generate' do
+ subject { secret.generate }
+
+ let(:resource) do
+ ::Kubeclient::Resource.new(
+ type: 'Opaque',
+ metadata: { name: name, namespace: namespace },
+ data: data
+ )
+ end
+
+ it { is_expected.to eq(resource) }
+ end
+end
diff --git a/spec/lib/gitlab/kubernetes/tls_secret_spec.rb b/spec/lib/gitlab/kubernetes/tls_secret_spec.rb
new file mode 100644
index 00000000000..438a0dc79fc
--- /dev/null
+++ b/spec/lib/gitlab/kubernetes/tls_secret_spec.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe Gitlab::Kubernetes::TlsSecret do
+ let(:secret) { described_class.new(name, cert, key, namespace) }
+ let(:name) { 'example-name' }
+ let(:cert) { 'example-cert' }
+ let(:key) { 'example-key' }
+ let(:namespace) { 'example-namespace' }
+
+ let(:data) do
+ {
+ 'tls.crt': Base64.strict_encode64(cert),
+ 'tls.key': Base64.strict_encode64(key)
+ }
+ end
+
+ describe '#generate' do
+ subject { secret.generate }
+
+ let(:resource) do
+ ::Kubeclient::Resource.new(
+ type: 'kubernetes.io/tls',
+ metadata: { name: name, namespace: namespace },
+ data: data
+ )
+ end
+
+ it { is_expected.to eq(resource) }
+ end
+end
diff --git a/spec/lib/gitlab/utils/deep_size_spec.rb b/spec/lib/gitlab/utils/deep_size_spec.rb
index ccd202b33f7..5a155fb6c80 100644
--- a/spec/lib/gitlab/utils/deep_size_spec.rb
+++ b/spec/lib/gitlab/utils/deep_size_spec.rb
@@ -17,29 +17,45 @@ describe Gitlab::Utils::DeepSize do
let(:max_size) { 1.kilobyte }
let(:max_depth) { 10 }
- let(:deep_size) { described_class.new(data, max_size: max_size, max_depth: max_depth) }
- describe '#evaluate' do
- context 'when data within size and depth limits' do
- it 'returns true' do
- expect(deep_size).to be_valid
+ subject(:deep_size) { described_class.new(data, max_size: max_size, max_depth: max_depth) }
+
+ it { expect(described_class::DEFAULT_MAX_SIZE).to eq(1.megabyte) }
+ it { expect(described_class::DEFAULT_MAX_DEPTH).to eq(100) }
+
+ describe '#initialize' do
+ context 'when max_size is nil' do
+ let(:max_size) { nil }
+
+ it 'sets max_size to DEFAULT_MAX_SIZE' do
+ expect(subject.instance_variable_get(:@max_size)).to eq(described_class::DEFAULT_MAX_SIZE)
+ end
+ end
+
+ context 'when max_depth is nil' do
+ let(:max_depth) { nil }
+
+ it 'sets max_depth to DEFAULT_MAX_DEPTH' do
+ expect(subject.instance_variable_get(:@max_depth)).to eq(described_class::DEFAULT_MAX_DEPTH)
end
end
+ end
+
+ describe '#valid?' do
+ context 'when data within size and depth limits' do
+ it { is_expected.to be_valid }
+ end
context 'when data not within size limit' do
let(:max_size) { 200.bytes }
- it 'returns false' do
- expect(deep_size).not_to be_valid
- end
+ it { is_expected.not_to be_valid }
end
context 'when data not within depth limit' do
let(:max_depth) { 2 }
- it 'returns false' do
- expect(deep_size).not_to be_valid
- end
+ it { is_expected.not_to be_valid }
end
end