-
Notifications
You must be signed in to change notification settings - Fork 0
Description
-
Add JSONPath selector tests for unusual traits, e.g.
sómêthing,$sometrait,何か. -
Extract whatever is useful from this AI analysis:
Suggested new test cases by ChatGPT
-
Ensure choice when priorities clash
When two or more feature overrides share the same priority, which one should be selected in evaluation?
-
Ensure segment override only applies to the intended feature
An override on string_feature must not affect evaluation of integer_feature.
-
Ensure deterministic selection at split boundaries
When the hash falls exactly on a split boundary (e.g. 0.3, 0.6), confirm which variant is chosen.
-
Ensure variants with weight 0 are never selected
Verify that a variant defined with 0% allocation is consistently excluded from results.
-
Ensure variant choice is stable for an identity
Repeated evaluations for the same identity must always return the same variant.
-
Ensure NOT_EQUAL operator works correctly
Trait not equal to value should satisfy/fail as expected.
-
Ensure CONTAINS works on strings and arrays
Rule should match both substring in string and membership in array.
-
Ensure IN fails when value is not present
A property not found in the list should result in no match.
-
Ensure IS_SET fails when property is missing
If the trait is absent, IS_SET should evaluate to false.
-
Ensure IS_NOT_SET fails when property exists
If the trait is present, IS_NOT_SET should evaluate to false.
-
Ensure environment name mismatch fails
A rule depending on $.environment.name should not match if the environment name differs.
-
Ensure identity identifier mismatch fails
A rule on $.identity.identifier should not match if the identifier differs.
-
Ensure boolean feature is evaluated correctly
Add a root-level boolean feature to confirm true/false values are handled.
-
Ensure float feature stored as number is evaluated correctly
A float defined as numeric (not string) should evaluate without issue.
-
Ensure type mismatch is handled safely
Trait value "42" (string) compared against a number should not cause an error.
-
Ensure override enables a disabled root feature
A root-level disabled feature should be enabled if a segment provides an override.
-
Ensure empty rules segment always applies
A segment with no conditions but with an override should always apply.
-
Ensure OVERRIDE reason is produced when expected
A feature value from a segment override should return reason OVERRIDE.
-
Ensure invalid operator fails gracefully
An unsupported operator should not break evaluation and should return safe defaults.
-
-
Any other suggestions?
A later goal is #13.