Skip to content

Commit

Permalink
Remove more dupes
Browse files Browse the repository at this point in the history
  • Loading branch information
Paulo Andre Azevedo Quirino committed Sep 24, 2024
1 parent 0ed03a8 commit e9df809
Showing 1 changed file with 34 additions and 53 deletions.
87 changes: 34 additions & 53 deletions src/editors/_shared/hooks/DataTypes/testUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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) {
Expand Down

0 comments on commit e9df809

Please sign in to comment.