Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve test coverage #215

Merged
merged 4 commits into from
Jun 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/transformer/standardTransformer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ const letterSpacingToDimensions = (values): number => {
if (values.letterSpacing.unit === 'percent') {
return roundWithDecimals(values.fontSize.value * (values.letterSpacing.value / 100), 3)
}
return 0
}

const widthToDimensionTransformer = ({ values }): StandardTokenDataInterface => ({
Expand Down
104 changes: 104 additions & 0 deletions tests/unit/data/extractedFigmaTokens.data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,73 @@ export const extractedFigmaTokens = {
}
}
},
fontLhPercent: {
name: 'font-lh-percent',
category: 'typography' as tokenCategoryType,
exportKey: 'typography' as tokenExportKeyType,
description: 'Font with lineheight in percent',
values: {
fontSize: {
value: 16,
unit: 'pixel',
type: 'number'
},
textDecoration: {
value: 'underline',
type: 'string'
},
fontFamily: {
value: 'Helvetica',
type: 'string'
},
fontWeight: {
value: 700,
type: 'number'
},
fontStyle: {
value: 'italic',
type: 'string'
},
fontStretch: {
value: 'normal',
type: 'string'
},
_fontStyleOld: {
value: 'bold italic',
type: 'string'
},
letterSpacing: {
value: 0.3,
unit: 'pixel',
type: 'number'
},
lineHeight: {
// @ts-ignore
value: 150,
unit: 'percent',
type: 'string'
},
paragraphIndent: {
value: 0,
unit: 'pixel',
type: 'number'
},
paragraphSpacing: {
value: 12,
unit: 'pixel',
type: 'number'
},
textCase: {
value: 'none',
type: 'string'
}
},
extensions: {
'org.lukasoppermann.figmaDesignTokens': {
exportKey: 'typography'
}
}
},
/**
* border
*/
Expand Down Expand Up @@ -522,6 +589,26 @@ export const extractedFigmaTokens = {
}
}
},
aliasColor: {
name: 'aliasColor',
category: 'color' as tokenCategoryType,
exportKey: 'color' as tokenExportKeyType,
description: 'a color token',
values: [
{
fill: {
value: { r: 255, g: 230, b: 0, a: 1 },
type: 'color'
}
}
],
extensions: {
'org.lukasoppermann.figmaDesignTokens': {
exportKey: 'color',
alias: '{color}'
}
}
},
multiColor: {
name: 'multiColor',
category: 'color' as tokenCategoryType,
Expand Down Expand Up @@ -752,6 +839,23 @@ export const extractedFigmaTokens = {
}
}
},
blurEffect: {
name: 'blur effect',
description: 'an effect token',
category: 'effect' as tokenCategoryType,
exportKey: 'effect' as tokenExportKeyType,
values: [{
effectType: {
value: 'blur',
type: 'string'
}
}],
extensions: {
'org.lukasoppermann.figmaDesignTokens': {
exportKey: 'effect'
}
}
},
multiEffect: {
name: 'multiEffect',
description: 'a multi effect token',
Expand Down
71 changes: 71 additions & 0 deletions tests/unit/data/transformedStandardTokens.data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,56 @@ export const transformedStandardTokens = {
value: 'underline'
}
},

fontLhPercent: {
name: 'font-lh-percent',
description: 'Font with lineheight in percent',
fontSize: {
value: 16,
type: 'dimension'
},
textDecoration: {
value: 'underline',
type: 'string'
},
fontFamily: {
value: 'Helvetica',
type: 'string'
},
fontWeight: {
value: 700,
type: 'number'
},
fontStyle: {
value: 'italic',
type: 'string'
},
fontStretch: {
value: 'normal',
type: 'string'
},
letterSpacing: {
value: 0.3,
type: 'dimension'
},
lineHeight: {
// @ts-ignore
value: 24,
type: 'dimension'
},
paragraphIndent: {
value: 0,
type: 'dimension'
},
paragraphSpacing: {
value: 12,
type: 'dimension'
},
textCase: {
value: 'none',
type: 'string'
}
},
/**
* border
*/
Expand Down Expand Up @@ -288,6 +338,18 @@ export const transformedStandardTokens = {
}
}
},
aliasColor: {
name: 'aliasColor',
description: 'a color token',
type: 'color',
value: '{{color}}',
extensions: {
'org.lukasoppermann.figmaDesignTokens': {
exportKey: 'color',
alias: '{color}'
}
}
},
multiColor: {
name: 'multiColor',
extensions: {
Expand Down Expand Up @@ -383,6 +445,15 @@ export const transformedStandardTokens = {
spread: 0
}
},
blurEffect: {
name: 'blur effect',
extensions: {
'org.lukasoppermann.figmaDesignTokens': {
exportKey: 'effect'
}
},
description: 'an effect token'
},
multiEffect: {
name: 'multiEffect',
extensions: {
Expand Down
3 changes: 3 additions & 0 deletions tests/unit/transformer.standardTransformer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,16 @@ describe('standard Transfomer', () => {
test('multi grid token', () => expect(transformer(extractedFigmaTokens.multiGrid)).toStrictEqual(transformedStandardTokens.multiGrid))
test('font token', () => expect(transformer(extractedFigmaTokens.font)).toStrictEqual(transformedStandardTokens.font))
test('typography token', () => expect(transformer(extractedFigmaTokens.typography)).toStrictEqual(transformedStandardTokens.typography))
test('font with lineheight percent', () => expect(transformer(extractedFigmaTokens.fontLhPercent)).toStrictEqual(transformedStandardTokens.fontLhPercent))
test('color token', () => expect(transformer(extractedFigmaTokens.color)).toStrictEqual(transformedStandardTokens.color))
test('alias color token', () => expect(transformer(extractedFigmaTokens.aliasColor)).toStrictEqual(transformedStandardTokens.aliasColor))
test('multi color token', () => expect(transformer(extractedFigmaTokens.multiColor)).toStrictEqual(transformedStandardTokens.multiColor))
test('gradient token', () => expect(transformer(extractedFigmaTokens.gradient)).toStrictEqual(transformedStandardTokens.gradient))
test('color and gradient token', () => expect(transformer(extractedFigmaTokens.colorAndGradient)).toStrictEqual(transformedStandardTokens.colorAndGradient))
test('gradient and color', () => expect(transformer(extractedFigmaTokens.gradientAndColor)).toStrictEqual(transformedStandardTokens.gradientAndColor))
test('border token', () => expect(transformer(extractedFigmaTokens.border)).toStrictEqual(transformedStandardTokens.border))
test('effect token', () => expect(transformer(extractedFigmaTokens.effect)).toStrictEqual(transformedStandardTokens.effect))
test('blur effect token', () => expect(transformer(extractedFigmaTokens.blurEffect)).toStrictEqual(transformedStandardTokens.blurEffect))
test('multi effect token', () => expect(transformer(extractedFigmaTokens.multiEffect)).toStrictEqual(transformedStandardTokens.multiEffect))
test('motion token', () => expect(transformer(extractedFigmaTokens.motion)).toStrictEqual(transformedStandardTokens.motion))
test('opacity token', () => expect(transformer(extractedFigmaTokens.opacity)).toStrictEqual(transformedStandardTokens.opacity))
Expand Down