From d751df6fd5a5ccb264631ab7042808c3b3d59b1e Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 16 May 2020 14:48:04 -0400 Subject: [PATCH] Add tests for copied values. --- js/test_cases/helpers_eq/README.md | 5 ++++ js/test_cases/helpers_eq/input1.json | 44 ++++++++++++++++++++++++++++ js/test_cases/helpers_eq/main.dust | 10 ++++++- js/test_cases/helpers_gt/input1.json | 42 ++++++++++++++++++++++++++ js/test_cases/helpers_gt/main.dust | 9 ++++++ js/test_cases/helpers_ne/input1.json | 44 ++++++++++++++++++++++++++++ js/test_cases/helpers_ne/main.dust | 10 ++++++- 7 files changed, 162 insertions(+), 2 deletions(-) diff --git a/js/test_cases/helpers_eq/README.md b/js/test_cases/helpers_eq/README.md index 42d393a..ddcf8e1 100644 --- a/js/test_cases/helpers_eq/README.md +++ b/js/test_cases/helpers_eq/README.md @@ -8,3 +8,8 @@ Can't Walk Theory Assuming a missing value = cantwalk and a non-existent key = cantwalk then their equality makes sense. The null tests have proven that absent parameters and missing values do not equal null and therefore it is not just making all falsey values equal. + +Non-Scalar Values +----------------- + +For non-scalar values, it seems that dust does mark two values as true if they have the same path, but otherwise they are not equal. diff --git a/js/test_cases/helpers_eq/input1.json b/js/test_cases/helpers_eq/input1.json index 0c96e44..bfbbd94 100644 --- a/js/test_cases/helpers_eq/input1.json +++ b/js/test_cases/helpers_eq/input1.json @@ -4,13 +4,57 @@ "alpha": 21, "beta": "21", "null": null, + "true_value": true, + "false_value": false, "array_lower": [ 3, 5, 7 ], + "copy_array_lower": [ + 3, + 5, + 7 + ], "array_higher": [ 8, 9 + ], + "some_obj": { + "name": "cat" + }, + "copy_some_obj": { + "name": "cat" + }, + "other_obj": { + "name": "dog" + }, + "array_of_some_obj": [ + { + "name": "cat" + }, + { + "name": "cat" + } + ], + "copy_array_of_some_obj": [ + { + "name": "cat" + }, + { + "name": "cat" + } + ], + "array_of_other_obj": [ + { + "name": "dog" + }, + { + "name": "dog" + } + ], + "array_of_strings": [ + "cat", + "dog" ] } diff --git a/js/test_cases/helpers_eq/main.dust b/js/test_cases/helpers_eq/main.dust index fd065f8..c1b8562 100644 --- a/js/test_cases/helpers_eq/main.dust +++ b/js/test_cases/helpers_eq/main.dust @@ -17,4 +17,12 @@ beta is {beta}{~n} {@eq key=null value=gamma}null equals a non-existent value{:else}null does not equal a non-existent value{/eq}{~n} {@eq}no parameters is true{:else}no parameters is false{/eq}{~n} {@eq key=array_lower value=array_higher}[3,5,7] is equal to [8,9]{:else}[3,5,7] does not equal [8,9]{/eq}{~n} -{@eq key=array_lower value=array_lower}[3,5,7] is equal to [3,5,7]{:else}[3,5,7] does not equal [3,5,7]{/eq}{~n} +{! non-scalar and copied value tests !} +{@eq key=array_lower value=array_lower}array_lower is equal to array_lower{:else}array_lower does not equal array_lower{/eq}{~n} +{@eq key=array_lower value=copy_array_lower}array_lower is equal to copy_array_lower{:else}array_lower does not equal copy_array_lower{/eq}{~n} +{@eq key=some_obj value=some_obj}some_obj is equal to some_obj{:else}some_obj does not equal some_obj{/eq}{~n} +{@eq key=some_obj value=copy_some_obj}some_obj is equal to copy_some_obj{:else}some_obj does not equal copy_some_obj{/eq}{~n} +{@eq key=some_obj value=other_obj}some_obj is equal to other_obj{:else}some_obj does not equal other_obj{/eq}{~n} +{@eq key=array_of_some_obj value=array_of_some_obj}array_of_some_obj is equal to array_of_some_obj{:else}array_of_some_obj does not equal array_of_some_obj{/eq}{~n} +{@eq key=array_of_some_obj value=copy_array_of_some_obj}array_of_some_obj is equal to copy_array_of_some_obj{:else}array_of_some_obj does not equal copy_array_of_some_obj{/eq}{~n} +{@eq key=array_of_some_obj value=array_of_other_obj}array_of_some_obj is equal to array_of_other_obj{:else}array_of_some_obj does not equal array_of_other_obj{/eq}{~n} diff --git a/js/test_cases/helpers_gt/input1.json b/js/test_cases/helpers_gt/input1.json index 4de7a58..bfbbd94 100644 --- a/js/test_cases/helpers_gt/input1.json +++ b/js/test_cases/helpers_gt/input1.json @@ -11,8 +11,50 @@ 5, 7 ], + "copy_array_lower": [ + 3, + 5, + 7 + ], "array_higher": [ 8, 9 + ], + "some_obj": { + "name": "cat" + }, + "copy_some_obj": { + "name": "cat" + }, + "other_obj": { + "name": "dog" + }, + "array_of_some_obj": [ + { + "name": "cat" + }, + { + "name": "cat" + } + ], + "copy_array_of_some_obj": [ + { + "name": "cat" + }, + { + "name": "cat" + } + ], + "array_of_other_obj": [ + { + "name": "dog" + }, + { + "name": "dog" + } + ], + "array_of_strings": [ + "cat", + "dog" ] } diff --git a/js/test_cases/helpers_gt/main.dust b/js/test_cases/helpers_gt/main.dust index 894cc88..9a4ffa8 100644 --- a/js/test_cases/helpers_gt/main.dust +++ b/js/test_cases/helpers_gt/main.dust @@ -24,3 +24,12 @@ beta is {beta}{~n} {@gt key=true_value value=false_value}true is greater than false{:else}true is less than or equal to false{/gt}{~n} {@gt key=array_lower value=array_higher}[3,5,7] is greater than [8,9]{:else}[3,5,7] is less than or equal to [8,9]{/gt}{~n} {@gt key=array_higher value=array_lower}[8,9] is greater than [3,5,7]{:else}[8,9] is less than or equal to [3,5,7]{/gt}{~n} +{! non-scalar and copied value tests !} +{@gt key=array_lower value=array_lower}array_lower is greater than array_lower{:else}array_lower is less than or equal to array_lower{/gt}{~n} +{@gt key=array_lower value=copy_array_lower}array_lower is greater than copy_array_lower{:else}array_lower is less than or equal to copy_array_lower{/gt}{~n} +{@gt key=some_obj value=some_obj}some_obj is greater than some_obj{:else}some_obj is less than or equal to some_obj{/gt}{~n} +{@gt key=some_obj value=copy_some_obj}some_obj is greater than copy_some_obj{:else}some_obj is less than or equal to copy_some_obj{/gt}{~n} +{@gt key=some_obj value=other_obj}some_obj is greater than other_obj{:else}some_obj is less than or equal to other_obj{/gt}{~n} +{@gt key=array_of_some_obj value=array_of_some_obj}array_of_some_obj is greater than array_of_some_obj{:else}array_of_some_obj is less than or equal to array_of_some_obj{/gt}{~n} +{@gt key=array_of_some_obj value=copy_array_of_some_obj}array_of_some_obj is greater than copy_array_of_some_obj{:else}array_of_some_obj is less than or equal to copy_array_of_some_obj{/gt}{~n} +{@gt key=array_of_some_obj value=array_of_other_obj}array_of_some_obj is greater than array_of_other_obj{:else}array_of_some_obj is less than or equal to array_of_other_obj{/gt}{~n} diff --git a/js/test_cases/helpers_ne/input1.json b/js/test_cases/helpers_ne/input1.json index 0c96e44..bfbbd94 100644 --- a/js/test_cases/helpers_ne/input1.json +++ b/js/test_cases/helpers_ne/input1.json @@ -4,13 +4,57 @@ "alpha": 21, "beta": "21", "null": null, + "true_value": true, + "false_value": false, "array_lower": [ 3, 5, 7 ], + "copy_array_lower": [ + 3, + 5, + 7 + ], "array_higher": [ 8, 9 + ], + "some_obj": { + "name": "cat" + }, + "copy_some_obj": { + "name": "cat" + }, + "other_obj": { + "name": "dog" + }, + "array_of_some_obj": [ + { + "name": "cat" + }, + { + "name": "cat" + } + ], + "copy_array_of_some_obj": [ + { + "name": "cat" + }, + { + "name": "cat" + } + ], + "array_of_other_obj": [ + { + "name": "dog" + }, + { + "name": "dog" + } + ], + "array_of_strings": [ + "cat", + "dog" ] } diff --git a/js/test_cases/helpers_ne/main.dust b/js/test_cases/helpers_ne/main.dust index 9796b47..d31e4b7 100644 --- a/js/test_cases/helpers_ne/main.dust +++ b/js/test_cases/helpers_ne/main.dust @@ -17,4 +17,12 @@ beta is {beta}{~n} {@ne key=null value=gamma}null does not equal non-existent value{:else}null equals a non-existent value{/ne}{~n} {@ne}no parameters is true{:else}no parameters is false{/ne}{~n} {@ne key=array_lower value=array_higher}[3,5,7] does not equal [8,9]{:else}[3,5,7] is equal to [8,9]{/ne}{~n} -{@ne key=array_lower value=array_lower}[3,5,7] does not equal [3,5,7]{:else}[3,5,7] is equal to [3,5,7]{/ne}{~n} +{! non-scalar and copied value tests !} +{@ne key=array_lower value=array_lower}array_lower does not equal array_lower{:else}array_lower is equals to array_lower{/ne}{~n} +{@ne key=array_lower value=copy_array_lower}array_lower does not equal copy_array_lower{:else}array_lower is equals to copy_array_lower{/ne}{~n} +{@ne key=some_obj value=some_obj}some_obj does not equal some_obj{:else}some_obj is equals to some_obj{/ne}{~n} +{@ne key=some_obj value=copy_some_obj}some_obj does not equal copy_some_obj{:else}some_obj is equals to copy_some_obj{/ne}{~n} +{@ne key=some_obj value=other_obj}some_obj does not equal other_obj{:else}some_obj is equals to other_obj{/ne}{~n} +{@ne key=array_of_some_obj value=array_of_some_obj}array_of_some_obj does not equal array_of_some_obj{:else}array_of_some_obj is equals to array_of_some_obj{/ne}{~n} +{@ne key=array_of_some_obj value=copy_array_of_some_obj}array_of_some_obj does not equal copy_array_of_some_obj{:else}array_of_some_obj is equals to copy_array_of_some_obj{/ne}{~n} +{@ne key=array_of_some_obj value=array_of_other_obj}array_of_some_obj does not equal array_of_other_obj{:else}array_of_some_obj is equals to array_of_other_obj{/ne}{~n}