Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generate unique items for arrays with the "uniqueItems" property
This re-calculates the values of an array if the "uniqueItems" property is set and a non-unique item has been generated. This has been to help resolve flaky tests that expect a random array and occasionally fail due to the generation of an array with collisions. As there is a risk that this can produce an eternal loop I've put in a check that if there are very number of attempts to generate the unique value then it should abort. This does produce a risk of failure if there is a low amount of variance in the allowed variables. This is to resolve issues such as: ``` GovukSchemas::InvalidContentGenerated: An invalid content item was generated. This probably means there's a bug in the generator that causes it to output invalid values. Below you'll find the generated payload, the validation errors and the schema that was used. ... Validation errors: -------------------------- [ { "schema": "869a7d30-f94e-5044-84e7-dc3c01c8f1ba#", "fragment": "#/details/featured_attachments", "message": "The property '#/details/featured_attachments' contained duplicated array values in schema 869a7d30-f94e-5044-84e7-dc3c01c8f1ba#", "failed_attribute": "UniqueItems" }, { "schema": "869a7d30-f94e-5044-84e7-dc3c01c8f1ba", "fragment": "#/details/featured_attachments", "message": "The property '#/details/featured_attachments' contained duplicated array values in schema 869a7d30-f94e-5044-84e7-dc3c01c8f1ba", "failed_attribute": "UniqueItems" } ] ```
- Loading branch information