From 93b9bfd93a841b7f86e6aeab3f9c5e9ede3a4503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roger=20R=C3=BCttimann?= Date: Thu, 30 Aug 2018 12:53:06 +0000 Subject: Allow whitelisting for "external collaborator by default" setting --- spec/validators/js_regex_validator_spec.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 spec/validators/js_regex_validator_spec.rb (limited to 'spec/validators') diff --git a/spec/validators/js_regex_validator_spec.rb b/spec/validators/js_regex_validator_spec.rb new file mode 100644 index 00000000000..aeb55cdc0e5 --- /dev/null +++ b/spec/validators/js_regex_validator_spec.rb @@ -0,0 +1,27 @@ +require 'spec_helper' + +describe JsRegexValidator do + describe '#validates_each' do + using RSpec::Parameterized::TableSyntax + + let(:validator) { described_class.new(attributes: [:user_default_internal_regex]) } + let(:application_setting) { build(:application_setting, user_default_external: true) } + + where(:user_default_internal_regex, :result) do + nil | [] + '' | [] + '(?#comment)' | ['Regex Pattern (?#comment) can not be expressed in Javascript'] + '(?(a)b|c)' | ['invalid conditional pattern: /(?(a)b|c)/i'] + '[a-z&&[^uo]]' | ["Dropped unsupported set intersection '[a-z&&[^uo]]' at index 0", + "Dropped unsupported nested negative set data '[^uo]' at index 6"] + end + + with_them do + it 'generates correct errors' do + validator.validate_each(application_setting, :user_default_internal_regex, user_default_internal_regex) + + expect(application_setting.errors[:user_default_internal_regex]).to eq result + end + end + end +end -- cgit v1.2.1