@@ -3,22 +3,81 @@ import { typography } from './typography';
33
44const designTokens = require ( '../../figma/tokens.json' ) ;
55
6+ /**
7+ * Trim string between 2 characters
8+ *
9+ * @param {string } str - The string to be trimmed
10+ * @param {string } firstChar - The first character to start from '$'
11+ * @param {string } lastChar - The last character to stop at '.'
12+ * @returns {string }
13+ */
14+ function trimStringBetweenCharacters (
15+ str : string ,
16+ firstChar = '$' ,
17+ lastChar = '.' ,
18+ ) {
19+ return str . substring ( str . indexOf ( firstChar ) + 1 , str . lastIndexOf ( lastChar ) ) ;
20+ }
21+
22+ /**
23+ * Trim string after character. Default character is '.'
24+ *
25+ * @param {string } str - The string to be trimmed
26+ * @param {string } char - The first character to start from '.'
27+ * @returns {string }
28+ */
29+ function trimStringAfterCharacter ( str : string , char = '.' ) {
30+ return str . split ( char ) . pop ( ) ;
31+ }
32+
33+ /**
34+ * Creates a new figma token object by creating object keys from a string
35+ *
36+ * @param {string } str - The object path as a string to be trimmed into object keys
37+ * @param {Object } obj - Global figma token object
38+ * @returns {Object } - New object formed from object keys created from provided string
39+ */
40+ function createNewFigmaTokenObject ( str : string , obj : any ) {
41+ const firstString = trimStringBetweenCharacters ( str ) ;
42+ const secondString = trimStringAfterCharacter ( str ) ;
43+ return obj [ `${ firstString } ` ] [ `${ secondString } ` ] ;
44+ }
45+
646describe ( 'Typography Small Screen' , ( ) => {
747 it ( 'js tokens for sDisplayMD matches figma tokens sDisplayMD' , ( ) => {
848 expect ( typography . sDisplayMD . fontFamily ) . toStrictEqual (
9- designTokens . global . fontFamilies [ 'euclid-circular-b' ] . value ,
49+ createNewFigmaTokenObject (
50+ designTokens . global [ 'S-Display-MD' ] . value . fontFamily ,
51+ designTokens . global ,
52+ ) . value ,
1053 ) ;
1154 expect ( typography . sDisplayMD . fontWeight ) . toStrictEqual ( '700' ) ;
12- expect ( typography . sDisplayMD . fontSize . toString ( ) ) . toStrictEqual (
13- designTokens . global . fontSize [ 6 ] . value ,
14- ) ;
1555
16- expect ( typography . sDisplayMD . lineHeight . toString ( ) ) . toStrictEqual (
17- designTokens . global . lineHeights [ 1 ] . value ,
18- ) ;
19-
20- expect ( typography . sDisplayMD . letterSpacing . toString ( ) ) . toStrictEqual (
21- designTokens . global . letterSpacing [ 0 ] . value ,
56+ expect ( typography . sDisplayMD . fontSize ) . toStrictEqual (
57+ Number (
58+ createNewFigmaTokenObject (
59+ designTokens . global [ 'S-Display-MD' ] . value . fontSize ,
60+ designTokens . global ,
61+ ) . value ,
62+ ) ,
63+ ) ;
64+
65+ expect ( typography . sDisplayMD . lineHeight ) . toStrictEqual (
66+ Number (
67+ createNewFigmaTokenObject (
68+ designTokens . global [ 'S-Display-MD' ] . value . lineHeight ,
69+ designTokens . global ,
70+ ) . value ,
71+ ) ,
72+ ) ;
73+
74+ expect ( typography . sDisplayMD . letterSpacing ) . toStrictEqual (
75+ Number (
76+ createNewFigmaTokenObject (
77+ designTokens . global [ 'S-Display-MD' ] . value . letterSpacing ,
78+ designTokens . global ,
79+ ) . value ,
80+ ) ,
2281 ) ;
2382 } ) ;
2483
0 commit comments