From e9df8093e8262f15ca396624185f0e9de6aacb77 Mon Sep 17 00:00:00 2001 From: Paulo Andre Azevedo Quirino Date: Tue, 24 Sep 2024 14:59:30 +0100 Subject: [PATCH] Remove more dupes --- .../_shared/hooks/DataTypes/testUtils.js | 87 ++++++++----------- 1 file changed, 34 insertions(+), 53 deletions(-) diff --git a/src/editors/_shared/hooks/DataTypes/testUtils.js b/src/editors/_shared/hooks/DataTypes/testUtils.js index d817491a..8e4cb4de 100644 --- a/src/editors/_shared/hooks/DataTypes/testUtils.js +++ b/src/editors/_shared/hooks/DataTypes/testUtils.js @@ -44,37 +44,43 @@ export function testStringInput(DataType, stringValue, realValue) { }); } +function validateSuit(type, returns, startIndex = 0) { + const i = startIndex; + + type.validate({}).then(res => expect(res.success).toBe(returns[i + 0])); + type.validate([]).then(res => expect(res.success).toBe(returns[i + 1])); + type.validate(undefined).then(res => expect(res.success).toBe(returns[i + 2])); + type.validate(null).then(res => expect(res.success).toBe(returns[i + 3])); + type.validate(false).then(res => expect(res.success).toBe(returns[i + 4])); + type.validate(true).then(res => expect(res.success).toBe(returns[i + 5])); + type.validate(3).then(res => expect(res.success).toBe(returns[i + 6])); + type.validate({a: 1}).then(res => expect(res.success).toBe(returns[i + 7])); + type.validate({a: [1, 2]}).then(res => expect(res.success).toBe(returns[i + 8])); + type.validate({a: [1, 2], b: {}}).then(res => expect(res.success).toBe(returns[i + 9])); + type.validate([1]).then(res => expect(res.success).toBe(returns[i + 10])); + type.validate([[1, 2]]).then(res => expect(res.success).toBe(returns[i + 11])); + type.validate([[1, 2], {}]).then(res => expect(res.success).toBe(returns[i + 12])); + + type.validate("{}").then(res => expect(res.success).toBe(returns[i + 13])); + type.validate("[]").then(res => expect(res.success).toBe(returns[i + 14])); + type.validate("").then(res => expect(res.success).toBe(returns[i + 15])); + type.validate("null").then(res => expect(res.success).toBe(returns[i + 16])); + type.validate("False").then(res => expect(res.success).toBe(returns[i + 17])); + type.validate("True").then(res => expect(res.success).toBe(returns[i + 18])); + type.validate("3").then(res => expect(res.success).toBe(returns[i + 19])); + type.validate('{"a": 1}').then(res => expect(res.success).toBe(returns[i + 20])); + type.validate('{"a": [1, 2]}').then(res => expect(res.success).toBe(returns[i + 21])); + type.validate('{"a": [1, 2], "b": {}}').then(res => expect(res.success).toBe(returns[i + 22])); + type.validate("[1]").then(res => expect(res.success).toBe(returns[i + 23])); + type.validate("[[1, 2]]").then(res => expect(res.success).toBe(returns[i + 24])); + type.validate("[[1, 2], {}]").then(res => expect(res.success).toBe(returns[i + 25])); +} + export function testValidation(DataType, returns, unparsed, parsed, strUnparsed) { test("Validation for real objects", () => { const type = new DataType({}); - type.validate({}).then(res => expect(res.success).toBe(returns[0])); - type.validate([]).then(res => expect(res.success).toBe(returns[1])); - type.validate(undefined).then(res => expect(res.success).toBe(returns[2])); - type.validate(null).then(res => expect(res.success).toBe(returns[3])); - type.validate(false).then(res => expect(res.success).toBe(returns[4])); - type.validate(true).then(res => expect(res.success).toBe(returns[5])); - type.validate(3).then(res => expect(res.success).toBe(returns[6])); - type.validate({a: 1}).then(res => expect(res.success).toBe(returns[7])); - type.validate({a: [1, 2]}).then(res => expect(res.success).toBe(returns[8])); - type.validate({a: [1, 2], b: {}}).then(res => expect(res.success).toBe(returns[9])); - type.validate([1]).then(res => expect(res.success).toBe(returns[10])); - type.validate([[1, 2]]).then(res => expect(res.success).toBe(returns[11])); - type.validate([[1, 2], {}]).then(res => expect(res.success).toBe(returns[12])); - - type.validate("{}").then(res => expect(res.success).toBe(returns[13])); - type.validate("[]").then(res => expect(res.success).toBe(returns[14])); - type.validate("").then(res => expect(res.success).toBe(returns[15])); - type.validate("null").then(res => expect(res.success).toBe(returns[16])); - type.validate("False").then(res => expect(res.success).toBe(returns[17])); - type.validate("True").then(res => expect(res.success).toBe(returns[18])); - type.validate("3").then(res => expect(res.success).toBe(returns[19])); - type.validate("{a: 1}").then(res => expect(res.success).toBe(returns[20])); - type.validate("{a: [1, 2]}").then(res => expect(res.success).toBe(returns[21])); - type.validate("{a: [1, 2], b: {}}").then(res => expect(res.success).toBe(returns[22])); - type.validate("[1]").then(res => expect(res.success).toBe(returns[23])); - type.validate("[[1, 2]]").then(res => expect(res.success).toBe(returns[24])); - type.validate("[[1, 2], {}]").then(res => expect(res.success).toBe(returns[25])); + validateSuit(type, returns, 0); if (strUnparsed) { expect(type.parsing.parse(unparsed)).toStrictEqual(unparsed); @@ -88,33 +94,8 @@ export function testValidation(DataType, returns, unparsed, parsed, strUnparsed) test("Validation (onlyStrings)", () => { const type = new DataType({ onlyStrings: true }); - type.validate({}).then(res => expect(res.success).toBe(returns[26])); - type.validate([]).then(res => expect(res.success).toBe(returns[27])); - type.validate(undefined).then(res => expect(res.success).toBe(returns[28])); - type.validate(null).then(res => expect(res.success).toBe(returns[29])); - type.validate(false).then(res => expect(res.success).toBe(returns[30])); - type.validate(true).then(res => expect(res.success).toBe(returns[31])); - type.validate(3).then(res => expect(res.success).toBe(returns[32])); - type.validate({a: 1}).then(res => expect(res.success).toBe(returns[33])); - type.validate({a: [1, 2]}).then(res => expect(res.success).toBe(returns[34])); - type.validate({a: [1, 2], b: {}}).then(res => expect(res.success).toBe(returns[35])); - type.validate([1]).then(res => expect(res.success).toBe(returns[36])); - type.validate([[1, 2]]).then(res => expect(res.success).toBe(returns[37])); - type.validate([[1, 2], {}]).then(res => expect(res.success).toBe(returns[38])); + validateSuit(type, returns, 26); - type.validate("{}").then(res => expect(res.success).toBe(returns[39])); - type.validate("[]").then(res => expect(res.success).toBe(returns[40])); - type.validate("").then(res => expect(res.success).toBe(returns[41])); - type.validate("null").then(res => expect(res.success).toBe(returns[42])); - type.validate("False").then(res => expect(res.success).toBe(returns[43])); - type.validate("True").then(res => expect(res.success).toBe(returns[44])); - type.validate("3").then(res => expect(res.success).toBe(returns[45])); - type.validate('{"a": 1}').then(res => expect(res.success).toBe(returns[46])); - type.validate('{"a": [1, 2]}').then(res => expect(res.success).toBe(returns[47])); - type.validate('{"a": [1, 2], "b": {}}').then(res => expect(res.success).toBe(returns[48])); - type.validate("[1]").then(res => expect(res.success).toBe(returns[49])); - type.validate("[[1, 2]]").then(res => expect(res.success).toBe(returns[50])); - type.validate("[[1, 2], {}]").then(res => expect(res.success).toBe(returns[51])); type.validate("None").then(res => expect(res.success).toBe(returns[52])); if (strUnparsed) {