mirror of
https://github.com/penpot/penpot.git
synced 2026-11-13 05:22:03 +00:00
* ✨ Add unit tests for the token name schema Cover make-token-name-schema, the schema that rejects a token name whose path clashes with an existing token or group. The lower-level token-name-path-exists? already had a test; the schema that composes it did not. The cases pin an exact duplicate, a token inside a token, a token name that collides with a group, an existing child path, valid siblings, the fail-closed nil tree, invalid syntax and the length limit. This is the unit-test base for reducing the 15 group-name-clash e2e cases to two. AI-assisted-by: deepseek-v4.1-flash * ♻️ Remove duplicate token tests and fix the spread step The three top-level tests duplicated the ones inside the creation describe; only the indentation differed. Keep the originals. The shadow token test labelled "Valid spread" filled the blur field, so the token under test ended with blur 0 and the spread never changed. Fill spread instead and expect the referenced token to resolve with Blur: 4. AI-assisted-by: deepseek-v4.1-flash * ♻️ Reduce the token group-name-clash e2e matrix to two tests The fifteen cases repeated the same setup and only changed the token type and value. The rule is now covered by the token name schema unit test, so keep two representatives: thirteen simple types in one test with a test.step each, and the two composite forms (Typography and Shadow) in a second test. The helper no longer re-runs the file setup, so each test loads the page once: 15 page loads become 2 and the block drops from 433 s to about 21 s. AI-assisted-by: deepseek-v4.1-flash * ♻️ Cover the numeric token creation types in one test The nine creation tests repeated the same validation ladder and only changed the token label and placeholder. Run the ladder once in the border radius step, keep the reference token creation, and create the other eight types with a test.step each. The new helpers split the flow: open the form, assert the ladder, save a token. The e2e drops from nine page loads to one. AI-assisted-by: deepseek-v4.1-flash * ♻️ Reduce the remapping e2e spec to three tests Keep one remapping flow per token shape: box shadow with alias references, border radius with a value change, and a group rename with undo. The two cancel paths lose their own page loads and become steps inside the shadow test: close keeps the original name, and "don't remap" renames the token and breaks the reference. The deleted typography and shadow applied-shape cases exercise the same data path, which the remapping unit tests already cover. AI-assisted-by: deepseek-v4.1-flash * ♻️ Shrink the tooltip and numeric-revert e2e tests The tooltip test asserted five message shapes over eleven layer selections. Keep the three that have no unit test: a deleted token, a reference outside the active sets, and a token in an inactive set. Each is one step with a pill label and its tooltip text. Three of its five messages were already covered by the token pill unit test, including both resolved-value cases. Keep one numeric-revert test and drop the fixed sleeps: await the value with toHaveValue instead. Division by zero and the min/max clamp are unit-tested in the numeric input tests. AI-assisted-by: deepseek-v4.1-flash