1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
# frozen_string_literal: true
require "spec_helper"
require_relative "./validator_helpers"
describe GraphQL::Schema::Validator::FormatValidator do
include ValidatorHelpers
expectations = [
{
config: { with: /\A[a-z]+\Z/ },
cases: [
{ query: "{ validated(value: \"abcd\") }", result: "abcd", error_messages: [] },
{ query: "{ validated(value: \"ABC\") }", result: nil, error_messages: ["value is invalid"] },
]
},
{
config: { with: /\A[a-z]+\Z/, allow_blank: true },
cases: [
{ query: "{ validated(value: \"abcd\") }", result: "abcd", error_messages: [] },
{ query: "{ validated(value: \"ABC\") }", result: nil, error_messages: ["value is invalid"] },
(String.method_defined?(:blank?) ?
{ query: "{ validated(value: \"\") }", result: "", error_messages: [] }
:
{ query: "{ validated(value: \"\") }", result: nil, error_messages: ["value is invalid"] }
),
]
},
{
config: { without: /[a-z]/ },
cases: [
{ query: "{ validated(value: \"abcd\") }", result: nil, error_messages: ["value is invalid"] },
{ query: "{ validated(value: null) }", result: nil, error_messages: ["value is invalid"] },
{ query: "{ validated(value: \"ABC\") }", result: "ABC", error_messages: [] },
]
},
]
build_tests(:format, String, expectations)
end
|