This repository has been archived by the owner on Nov 26, 2024. It is now read-only.
generated from MetaMask/metamask-module-template
-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Created Unit Tests for CSS Color Variables Alignment with Figma…
… Token JSON (#719) * feat: added tests for css variables * refactor: removed lint ignore
- Loading branch information
1 parent
7f51e5a
commit 52fab7e
Showing
3 changed files
with
112 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import { readFileSync } from 'fs'; | ||
import { resolve } from 'path'; | ||
|
||
const brandColorsPath = resolve(__dirname, '../figma/brandColors.json'); | ||
const brandColorsCSSPath = resolve(__dirname, 'brand-colors.css'); | ||
|
||
const brandColors = JSON.parse(readFileSync(brandColorsPath, 'utf8')); | ||
const brandColorsCSS = readFileSync(brandColorsCSSPath, 'utf8'); | ||
|
||
describe('Brand Colors CSS', () => { | ||
for (const color in brandColors) { | ||
if (Object.prototype.hasOwnProperty.call(brandColors, color)) { | ||
if (color !== 'white' && color !== 'black') { | ||
for (const shade in brandColors[color]) { | ||
if (Object.prototype.hasOwnProperty.call(brandColors[color], shade)) { | ||
const variableName = `--brand-colors-${color}-${color}${shade}`; | ||
const colorValue: string = brandColors[color][shade].value; | ||
it(`should have the correct value for ${variableName}`, () => { | ||
expect(brandColorsCSS).toContain( | ||
`${variableName}: ${colorValue};`, | ||
); | ||
}); | ||
} | ||
} | ||
} else { | ||
const variableName = `--brand-colors-${color}`; | ||
const colorValue: string = brandColors[color].value; | ||
it(`should have the correct value for ${variableName}`, () => { | ||
expect(brandColorsCSS).toContain(`${variableName}: ${colorValue};`); | ||
}); | ||
} | ||
} | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
import { readFileSync } from 'fs'; | ||
import { resolve } from 'path'; | ||
|
||
const darkThemePath = resolve(__dirname, '../figma/darkTheme.json'); | ||
const darkThemeCSSPath = resolve(__dirname, 'dark-theme-colors.css'); | ||
|
||
const darkTheme = JSON.parse(readFileSync(darkThemePath, 'utf8')); | ||
const darkThemeCSS = readFileSync(darkThemeCSSPath, 'utf8'); | ||
|
||
describe('Dark Theme Colors CSS', () => { | ||
for (const section in darkTheme) { | ||
if (Object.prototype.hasOwnProperty.call(darkTheme, section)) { | ||
for (const key in darkTheme[section]) { | ||
if (Object.prototype.hasOwnProperty.call(darkTheme[section], key)) { | ||
const variableName = `--color-${section}-${key.replace(/_/gu, '-')}`; | ||
const { value } = darkTheme[section][key]; | ||
|
||
let cssValue: string; | ||
if (value.startsWith('{')) { | ||
const parts: string[] = value.slice(1, -1).split('.'); | ||
const color: string | undefined = parts[0]; | ||
const shade: string | undefined = parts[1]; | ||
if (color && shade) { | ||
cssValue = `var(--brand-colors-${color}-${color}${shade})`; | ||
} else { | ||
throw new Error(`Invalid color or shade: ${value as string}`); | ||
} | ||
} else { | ||
cssValue = value; | ||
} | ||
|
||
it(`should have the correct value for ${variableName}`, () => { | ||
expect(darkThemeCSS).toContain(`${variableName}: ${cssValue};`); | ||
}); | ||
} | ||
} | ||
} | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
import { readFileSync } from 'fs'; | ||
import { resolve } from 'path'; | ||
|
||
const lightThemePath = resolve(__dirname, '../figma/lightTheme.json'); | ||
const lightThemeCSSPath = resolve(__dirname, 'light-theme-colors.css'); | ||
|
||
const lightTheme = JSON.parse(readFileSync(lightThemePath, 'utf8')); | ||
const lightThemeCSS = readFileSync(lightThemeCSSPath, 'utf8'); | ||
|
||
describe('Light Theme Colors CSS', () => { | ||
for (const section in lightTheme) { | ||
if (Object.prototype.hasOwnProperty.call(lightTheme, section)) { | ||
for (const key in lightTheme[section]) { | ||
if (Object.prototype.hasOwnProperty.call(lightTheme[section], key)) { | ||
const variableName = `--color-${section}-${key.replace(/_/gu, '-')}`; | ||
const { value } = lightTheme[section][key]; | ||
|
||
let cssValue: string; | ||
if (value.startsWith('{')) { | ||
const parts: string[] = value.slice(1, -1).split('.'); | ||
const color: string | undefined = parts[0]; | ||
const shade: string | undefined = parts[1]; | ||
if (color && shade) { | ||
cssValue = `var(--brand-colors-${color}-${color}${shade})`; | ||
} else { | ||
throw new Error(`Invalid color or shade: ${value as string}`); | ||
} | ||
} else { | ||
cssValue = value; | ||
} | ||
|
||
it(`should have the correct value for ${variableName}`, () => { | ||
expect(lightThemeCSS).toContain(`${variableName}: ${cssValue};`); | ||
}); | ||
} | ||
} | ||
} | ||
} | ||
}); |