mirror of
https://github.com/cypress-io/cypress.git
synced 2026-02-19 21:51:16 -06:00
79 lines
1.9 KiB
CoffeeScript
79 lines
1.9 KiB
CoffeeScript
_ = require("lodash")
|
|
errors = require("../errors")
|
|
|
|
## validation functions take a key and a value and should:
|
|
## - return true if it passes validation
|
|
## - return an error message if it fails validation
|
|
|
|
error = (key, value, type) ->
|
|
"Expected '#{key}' to be #{type}. Instead the value was: #{JSON.stringify(value)}"
|
|
|
|
isFullyQualifiedUrl = (value) ->
|
|
isString(value) and /^https?\:\/\//.test(value)
|
|
|
|
isArrayOfStrings = (value) ->
|
|
isArray(value) and _.every(value, isString)
|
|
|
|
isFalse = (value) ->
|
|
value is false
|
|
|
|
isArray = _.isArray
|
|
isNumber = _.isFinite
|
|
isString = _.isString
|
|
|
|
module.exports = {
|
|
isNumber: (key, value) ->
|
|
if not value? or isNumber(value)
|
|
true
|
|
else
|
|
error(key, value, "a number")
|
|
|
|
isNumberOrFalse: (key, value) ->
|
|
if isNumber(value) or isFalse(value)
|
|
true
|
|
else
|
|
error(key, value, "a number or false")
|
|
|
|
isFullyQualifiedUrl: (key, value) ->
|
|
if not value? or isFullyQualifiedUrl(value)
|
|
return true
|
|
else
|
|
error(key, value, "a fully qualified URL (starting with http:// or https://)")
|
|
|
|
isBoolean: (key, value) ->
|
|
if not value? or _.isBoolean(value)
|
|
true
|
|
else
|
|
error(key, value, "a boolean")
|
|
|
|
isPlainObject: (key, value) ->
|
|
if not value? or _.isPlainObject(value)
|
|
true
|
|
else
|
|
error(key, value, "a plain object")
|
|
|
|
isString: (key, value) ->
|
|
if not value? or isString(value)
|
|
true
|
|
else
|
|
error(key, value, "a string")
|
|
|
|
isArray: (key, value) ->
|
|
if not value? or isArray(value)
|
|
true
|
|
else
|
|
error(key, value, "an array")
|
|
|
|
isStringOrFalse: (key, value) ->
|
|
if isString(value) or isFalse(value)
|
|
true
|
|
else
|
|
error(key, value, "a string or false")
|
|
|
|
isStringOrArrayOfStrings: (key, value) ->
|
|
if isString(value) or isArrayOfStrings(value)
|
|
true
|
|
else
|
|
error(key, value, "a string or an array of strings")
|
|
}
|