summaryrefslogtreecommitdiff
path: root/spec/validators
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-08-26 14:36:54 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-08-26 14:36:54 +0000
commitdaf5ae5bd439f1f32363d410129d5b9e73fbb539 (patch)
tree6d670487dc3dccf1a0c3e6b8337e5b4ab9da4ee9 /spec/validators
parent6e8c2290dab8ae1612dff80e312911bc1147edaa (diff)
downloadgitlab-ce-daf5ae5bd439f1f32363d410129d5b9e73fbb539.tar.gz
Add latest changes from gitlab-org/security/gitlab@15-3-stable-ee
Diffstat (limited to 'spec/validators')
-rw-r--r--spec/validators/bytesize_validator_spec.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/validators/bytesize_validator_spec.rb b/spec/validators/bytesize_validator_spec.rb
new file mode 100644
index 00000000000..1914ccedd87
--- /dev/null
+++ b/spec/validators/bytesize_validator_spec.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe BytesizeValidator do
+ let(:model) do
+ Class.new do
+ include ActiveModel::Model
+ include ActiveModel::Validations
+
+ attr_accessor :content
+ alias_method :content_before_type_cast, :content
+
+ validates :content, bytesize: { maximum: -> { 7 } }
+ end.new
+ end
+
+ using RSpec::Parameterized::TableSyntax
+
+ where(:content, :validity, :errors) do
+ 'short' | true | {}
+ 'very long' | false | { content: ['is too long (9 Bytes). The maximum size is 7 Bytes.'] }
+ 'short😁' | false | { content: ['is too long (9 Bytes). The maximum size is 7 Bytes.'] }
+ 'short⇏' | false | { content: ['is too long (8 Bytes). The maximum size is 7 Bytes.'] }
+ end
+
+ with_them do
+ before do
+ model.content = content
+ model.validate
+ end
+
+ it { expect(model.valid?).to eq(validity) }
+ it { expect(model.errors.messages).to eq(errors) }
+ end
+end