Commit
+61 -10 +/-3 browse
1 | diff --git a/src/props.easing.css b/src/props.easing.css |
2 | index d0d0362..9e90ebb 100644 |
3 | --- a/src/props.easing.css |
4 | +++ b/src/props.easing.css |
5 | @@ -44,11 +44,11 @@ |
6 | --ease-elastic-3: var(--ease-elastic-out-3); |
7 | --ease-elastic-4: var(--ease-elastic-out-4); |
8 | --ease-elastic-5: var(--ease-elastic-out-5); |
9 | - --ease-squish-1: var(--elastic-in-out-1); |
10 | - --ease-squish-2: var(--elastic-in-out-2); |
11 | - --ease-squish-3: var(--elastic-in-out-3); |
12 | - --ease-squish-4: var(--elastic-in-out-4); |
13 | - --ease-squish-5: var(--elastic-in-out-5); |
14 | + --ease-squish-1: var(--ease-elastic-in-out-1); |
15 | + --ease-squish-2: var(--ease-elastic-in-out-2); |
16 | + --ease-squish-3: var(--ease-elastic-in-out-3); |
17 | + --ease-squish-4: var(--ease-elastic-in-out-4); |
18 | + --ease-squish-5: var(--ease-elastic-in-out-5); |
19 | --ease-spring-1: linear( |
20 | 0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%, |
21 | 0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, |
22 | diff --git a/src/props.easing.js b/src/props.easing.js |
23 | index bb583ec..bfaf0e0 100644 |
24 | --- a/src/props.easing.js |
25 | +++ b/src/props.easing.js |
26 | @@ -53,11 +53,11 @@ export default { |
27 | '--ease-elastic-4': 'var(--ease-elastic-out-4)', |
28 | '--ease-elastic-5': 'var(--ease-elastic-out-5)', |
29 | |
30 | - '--ease-squish-1': 'var(--elastic-in-out-1)', |
31 | - '--ease-squish-2': 'var(--elastic-in-out-2)', |
32 | - '--ease-squish-3': 'var(--elastic-in-out-3)', |
33 | - '--ease-squish-4': 'var(--elastic-in-out-4)', |
34 | - '--ease-squish-5': 'var(--elastic-in-out-5)', |
35 | + '--ease-squish-1': 'var(--ease-elastic-in-out-1)', |
36 | + '--ease-squish-2': 'var(--ease-elastic-in-out-2)', |
37 | + '--ease-squish-3': 'var(--ease-elastic-in-out-3)', |
38 | + '--ease-squish-4': 'var(--ease-elastic-in-out-4)', |
39 | + '--ease-squish-5': 'var(--ease-elastic-in-out-5)', |
40 | |
41 | '--ease-spring-1': `linear( |
42 | 0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%, |
43 | diff --git a/test/basic.test.cjs b/test/basic.test.cjs |
44 | index 917fe98..4719fb3 100644 |
45 | --- a/test/basic.test.cjs |
46 | +++ b/test/basic.test.cjs |
47 | @@ -56,4 +56,55 @@ test('Should produce optional mask props', async t => { |
48 | test('Should produce typings files', async t => { |
49 | t.assert(fs.existsSync('./dist/open-props.module.d.ts')) |
50 | t.assert(fs.existsSync('./src/props.sizes.d.ts')) |
51 | + }) |
52 | + |
53 | + test('References should be valid', async t => { |
54 | + const formatter = new Intl.ListFormat(); |
55 | + const defined = new Set(); |
56 | + const referenced = new Set(); |
57 | + const referencedBy = new Map(); |
58 | + |
59 | + for (const [prop, value] of Object.entries(OpenProps)) { |
60 | + // Add all defined variables to the defined set |
61 | + defined.add(prop) |
62 | + |
63 | + if (typeof value !== 'string') { |
64 | + continue; |
65 | + } |
66 | + |
67 | + // Find all references to other variables: var(...) |
68 | + const matches = value.matchAll(/var\(([^)]+)\)/g); |
69 | + |
70 | + if (!matches) { |
71 | + continue; |
72 | + } |
73 | + |
74 | + // Add all references to the referenced set |
75 | + // Map all references to the prop that references them |
76 | + for (const matchArray of matches) { |
77 | + const reference = matchArray[1]; |
78 | + |
79 | + referenced.add(reference); |
80 | + |
81 | + if (!prop.startsWith('--')) { |
82 | + continue; |
83 | + } |
84 | + |
85 | + if (!referencedBy.has(reference)) { |
86 | + referencedBy.set(reference, new Set()); |
87 | + } |
88 | + |
89 | + referencedBy.get(reference).add(prop); |
90 | + } |
91 | + } |
92 | + |
93 | + // Check that all referenced variables are defined |
94 | + for (const reference of referenced) { |
95 | + const referencing = formatter.format(Array.from(referencedBy.get(reference))); |
96 | + |
97 | + t.assert( |
98 | + defined.has(reference), |
99 | + `Variable with name ${reference} was referenced by variable ${referencing}, but is not defined` |
100 | + ); |
101 | + } |
102 | }) |
103 | \ No newline at end of file |