mirror of
https://github.com/divkit/divkit.git
synced 2026-05-07 20:02:32 +00:00
Fixed expression testing bug
commit_hash:72f9d6b06f945348aa53f98af755a36db489bae0
This commit is contained in:
@@ -104,11 +104,11 @@ private struct ExpressionTestCase: Decodable {
|
||||
} else {
|
||||
expression
|
||||
}
|
||||
return "\(formattedExpression) -> \(expected.description)"
|
||||
return "\(formattedExpression) -> \(expected.description): \(hashValue)"
|
||||
}
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case name, expression, variables, expected, platforms
|
||||
case expression, variables, expected, platforms
|
||||
}
|
||||
|
||||
func resolveValue(
|
||||
@@ -165,6 +165,20 @@ private struct ExpressionTestCase: Decodable {
|
||||
}
|
||||
}
|
||||
|
||||
extension ExpressionTestCase: Hashable {
|
||||
static func == (lhs: ExpressionTestCase, rhs: ExpressionTestCase) -> Bool {
|
||||
return lhs.expression == rhs.expression &&
|
||||
lhs.variables == rhs.variables &&
|
||||
lhs.expected.description == rhs.expected.description
|
||||
}
|
||||
|
||||
func hash(into hasher: inout Hasher) {
|
||||
hasher.combine(expression)
|
||||
hasher.combine(variables)
|
||||
hasher.combine(expected.description)
|
||||
}
|
||||
}
|
||||
|
||||
enum ExpectedValue: Decodable {
|
||||
case string(String)
|
||||
case double(Double)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"cases": [
|
||||
{
|
||||
"name": "getStringFromArray(array, 'index_out_of_bounds') => error",
|
||||
"expression": "@{getStringFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -22,7 +21,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getIntegerFromArray(array, 0) => integer",
|
||||
"expression": "@{getIntegerFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "integer",
|
||||
@@ -45,7 +43,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getIntegerFromArray(array, 'wrong_type_index') => error",
|
||||
"expression": "@{getIntegerFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -68,7 +65,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptIntegerFromArray(array, 'integer_index', 'fallback') => integer",
|
||||
"expression": "@{getOptIntegerFromArray(array, 1, 321)}",
|
||||
"expected": {
|
||||
"type": "integer",
|
||||
@@ -92,7 +88,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptIntegerFromArray(array, 'wrong_type_index', 'fallback') => fallback integer",
|
||||
"expression": "@{getOptIntegerFromArray(array, 0, 321)}",
|
||||
"expected": {
|
||||
"type": "integer",
|
||||
@@ -116,7 +111,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getNumberFromArray(array, 0) => number",
|
||||
"expression": "@{getNumberFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "number",
|
||||
@@ -139,7 +133,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getNumberFromArray(array, 'wrong_type_index') => error",
|
||||
"expression": "@{getNumberFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -162,7 +155,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptNumberFromArray(array, 'number_index', 'fallback') => number",
|
||||
"expression": "@{getOptNumberFromArray(array, 1, 321.00)}",
|
||||
"expected": {
|
||||
"type": "number",
|
||||
@@ -186,7 +178,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptNumberFromArray(array, 'wrong_type_index', 'fallback') => fallback number",
|
||||
"expression": "@{getOptNumberFromArray(array, 0, 321.00)}",
|
||||
"expected": {
|
||||
"type": "number",
|
||||
@@ -210,7 +201,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getStringFromArray(array, 0) => string",
|
||||
"expression": "@{getStringFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "string",
|
||||
@@ -233,7 +223,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getStringFromArray(array, 'wrong_type_index') => error",
|
||||
"expression": "@{getStringFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -256,7 +245,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptStringFromArray(array, 'string_index', 'fallback') => string",
|
||||
"expression": "@{getOptStringFromArray(array, 0, 'fallback')}",
|
||||
"expected": {
|
||||
"type": "string",
|
||||
@@ -280,7 +268,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptStringFromArray(array, 'wrong_type_index', 'fallback') => fallback string",
|
||||
"expression": "@{getOptStringFromArray(array, 1, 'fallback')}",
|
||||
"expected": {
|
||||
"type": "string",
|
||||
@@ -304,7 +291,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getBooleanFromArray(array, 0) => boolean",
|
||||
"expression": "@{getBooleanFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "boolean",
|
||||
@@ -327,7 +313,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getBooleanFromArray(array, 'wrong_type_index') => error",
|
||||
"expression": "@{getBooleanFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -350,7 +335,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptBooleanFromArray(array, 'boolean_index', 'fallback') => boolean",
|
||||
"expression": "@{getOptBooleanFromArray(array, 0, true)}",
|
||||
"expected": {
|
||||
"type": "boolean",
|
||||
@@ -373,7 +357,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptBooleanFromArray(array, 'wrong_type_index', 'fallback') => fallback boolean",
|
||||
"expression": "@{getOptBooleanFromArray(array, 0, true)}",
|
||||
"expected": {
|
||||
"type": "boolean",
|
||||
@@ -396,7 +379,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getColorFromArray(array, 0) => color",
|
||||
"expression": "@{getColorFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "color",
|
||||
@@ -419,7 +401,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getColorFromArray(array, 'wrong_type_index') => error",
|
||||
"expression": "@{getColorFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -442,7 +423,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptColorFromArray(array, 'color_index', 'color_fallback') => color",
|
||||
"expression": "@{getOptColorFromArray(array, 0, '#FF009988')}",
|
||||
"expected": {
|
||||
"type": "color",
|
||||
@@ -465,7 +445,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptColorFromArray(array, 'wrong_type_index', 'color_fallback') => fallback color",
|
||||
"expression": "@{getOptColorFromArray(array, 1, color_fallback)}",
|
||||
"expected": {
|
||||
"type": "color",
|
||||
@@ -494,7 +473,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptColorFromArray(array, 'wrong_type_index', 'color_fallback') => fallback string color",
|
||||
"expression": "@{getOptColorFromArray(array, 1, '#FF009988')}",
|
||||
"expected": {
|
||||
"type": "color",
|
||||
@@ -518,7 +496,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getUrlFromArray(array, 'url_index') => 'https://ya.ru'",
|
||||
"expression": "@{getUrlFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "url",
|
||||
@@ -541,7 +518,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getUrlFromArray(array, 'wrong_type_index') => error",
|
||||
"expression": "@{getUrlFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -564,7 +540,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptUrlFromArray(array, 'url_index', 'fallback') => 'https://ya.ru'",
|
||||
"expression": "@{getOptUrlFromArray(array, 0, 'https://fallback.ru')}",
|
||||
"expected": {
|
||||
"type": "url",
|
||||
@@ -587,7 +562,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptUrlFromArray(array, 'wrong_type_index', 'fallback') => 'https://fallback.ru'",
|
||||
"expression": "@{getOptUrlFromArray(array, 0, 'https://fallback.ru')}",
|
||||
"expected": {
|
||||
"type": "url",
|
||||
@@ -610,7 +584,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptUrlFromArray(array, 'url_index', toUrl('fallback')) => 'https://ya.ru'",
|
||||
"expression": "@{getOptUrlFromArray(array, 0, toUrl('https://fallback.ru'))}",
|
||||
"expected": {
|
||||
"type": "url",
|
||||
@@ -633,7 +606,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptUrlFromArray(array, 'wrong_type_index', toUrl('fallback')) => 'https://fallback.ru'",
|
||||
"expression": "@{getOptUrlFromArray(array, 0, toUrl('https://fallback.ru'))}",
|
||||
"expected": {
|
||||
"type": "url",
|
||||
@@ -656,7 +628,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getArrayFromArray(array, 'array_index') => array",
|
||||
"expression": "@{getArrayFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "array",
|
||||
@@ -685,7 +656,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getArrayFromArray(array, 'wrong_index') => error",
|
||||
"expression": "@{getArrayFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -708,7 +678,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptArrayFromArray(array, 'array_index') => array",
|
||||
"expression": "@{getOptArrayFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "array",
|
||||
@@ -737,7 +706,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptArrayFromArray(array, 'wrong_type_index') => []",
|
||||
"expression": "@{getOptArrayFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "array",
|
||||
@@ -761,7 +729,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getDictFromArray(array, 'dict_index') => dict",
|
||||
"expression": "@{getDictFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "dict",
|
||||
@@ -788,7 +755,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getDictFromArray(array, 'wrong_index') => error",
|
||||
"expression": "@{getDictFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -811,7 +777,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptDictFromArray(array, 'dict_index') => dict",
|
||||
"expression": "@{getOptDictFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "dict",
|
||||
@@ -838,7 +803,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getOptDictFromArray(array, 'wrong_type_index') => {}",
|
||||
"expression": "@{getOptDictFromArray(array, 0)}",
|
||||
"expected": {
|
||||
"type": "dict",
|
||||
@@ -862,7 +826,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "getDictFromArray(null_array, 0) => error",
|
||||
"expression": "@{getDictFromArray(null_array, 0)}",
|
||||
"expected": {
|
||||
"type": "error",
|
||||
@@ -885,7 +848,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "len(array) => 0",
|
||||
"expression": "@{len(array)}",
|
||||
"expected": {
|
||||
"type": "integer",
|
||||
@@ -906,7 +868,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "len(array) => 1",
|
||||
"expression": "@{len(array)}",
|
||||
"expected": {
|
||||
"type": "integer",
|
||||
@@ -929,7 +890,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "len(array) => 3",
|
||||
"expression": "@{len(array)}",
|
||||
"expected": {
|
||||
"type": "integer",
|
||||
|
||||
@@ -130,7 +130,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "color with format #ARGB to string => string",
|
||||
"expression": "@{toString(argb_color_var)}",
|
||||
"expected": {
|
||||
"type": "string",
|
||||
|
||||
Reference in New Issue
Block a user