@primer/primitives 7.17.0-rc.61b28bca → 7.17.0-rc.8ff6ed39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/functional/themes/dark-colorblind.css +14 -14
- package/dist/css/functional/themes/dark-tritanopia.css +14 -14
- package/dist/css/functional/themes/dark.css +14 -14
- package/dist/docs/functional/themes/dark-colorblind.json +7 -7
- package/dist/docs/functional/themes/dark-tritanopia.json +7 -7
- package/dist/docs/functional/themes/dark.json +7 -7
- package/dist/figma/scales/dark.json +5 -5
- package/dist/figma/themes/dark-colorblind.json +20 -20
- package/dist/figma/themes/dark-tritanopia.json +20 -20
- package/dist/figma/themes/dark.json +20 -20
- package/dist/internalCss/dark-colorblind.css +18 -18
- package/dist/internalCss/dark-tritanopia.css +18 -18
- package/dist/internalCss/dark.css +18 -18
- package/dist/styleLint/functional/themes/dark-colorblind.json +7 -7
- package/dist/styleLint/functional/themes/dark-tritanopia.json +7 -7
- package/dist/styleLint/functional/themes/dark.json +7 -7
- package/package.json +2 -3
- package/src/formats/jsonFigma.ts +2 -0
- package/src/platforms/figma.ts +1 -1
- package/src/schemas/collections.ts +2 -0
- package/src/schemas/dimensionToken.ts +1 -1
- package/src/schemas/fontFamilyToken.ts +10 -0
- package/src/schemas/fontWeightToken.ts +10 -0
- package/src/tokens/base/color/dark/dark.json5 +2 -2
- package/tokens-v2-private/css/tokens/base/size/size.css +1 -1
- package/tokens-v2-private/css/tokens/base/typography/typography.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/border.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/breakpoints.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/size-coarse.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/size-fine.css +1 -1
- package/tokens-v2-private/css/tokens/functional/size/size.css +1 -1
- package/tokens-v2-private/css/tokens/functional/typography/typography.css +1 -1
- package/tokens-v2-private/js/module/tokens/base/size/size.js +1 -1
- package/tokens-v2-private/js/module/tokens/base/typography/typography.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/border.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/breakpoints.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/size-coarse.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/size-fine.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/size.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/size/viewport.js +1 -1
- package/tokens-v2-private/js/module/tokens/functional/typography/typography.js +1 -1
- package/tokens-v2-private/js/tokens/base/size/size.js +1 -1
- package/tokens-v2-private/js/tokens/base/typography/typography.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/border.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/breakpoints.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/size-coarse.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/size-fine.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/size.js +1 -1
- package/tokens-v2-private/js/tokens/functional/size/viewport.js +1 -1
- package/tokens-v2-private/js/tokens/functional/typography/typography.js +1 -1
- package/tokens-v2-private/scss/tokens/base/size/size.scss +1 -1
- package/tokens-v2-private/scss/tokens/base/typography/typography.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/border.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/breakpoints.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/size-coarse.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/size-fine.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/size.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/size/viewport.scss +1 -1
- package/tokens-v2-private/scss/tokens/functional/typography/typography.scss +1 -1
- package/tokens-v2-private/ts/tokens/base/size/size.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/base/size/size.js +1 -1
- package/tokens-v2-private/ts/tokens/base/typography/typography.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/base/typography/typography.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/border.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/border.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/breakpoints.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/breakpoints.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-coarse.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-coarse.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-fine.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size-fine.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/size.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/viewport.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/size/viewport.js +1 -1
- package/tokens-v2-private/ts/tokens/functional/typography/typography.d.ts +1 -1
- package/tokens-v2-private/ts/tokens/functional/typography/typography.js +1 -1
- package/dist/deprecated/colors.json +0 -7
- package/dist/js/colors/dark.d.ts +0 -516
- package/dist/js/colors/dark.js +0 -616
- package/dist/js/colors/dark_colorblind.d.ts +0 -516
- package/dist/js/colors/dark_colorblind.js +0 -616
- package/dist/js/colors/dark_dimmed.d.ts +0 -516
- package/dist/js/colors/dark_dimmed.js +0 -616
- package/dist/js/colors/dark_high_contrast.d.ts +0 -516
- package/dist/js/colors/dark_high_contrast.js +0 -616
- package/dist/js/colors/dark_tritanopia.d.ts +0 -516
- package/dist/js/colors/dark_tritanopia.js +0 -616
- package/dist/js/colors/index.d.ts +0 -4638
- package/dist/js/colors/index.js +0 -15
- package/dist/js/colors/light.d.ts +0 -516
- package/dist/js/colors/light.js +0 -616
- package/dist/js/colors/light_colorblind.d.ts +0 -516
- package/dist/js/colors/light_colorblind.js +0 -616
- package/dist/js/colors/light_high_contrast.d.ts +0 -516
- package/dist/js/colors/light_high_contrast.js +0 -616
- package/dist/js/colors/light_tritanopia.d.ts +0 -516
- package/dist/js/colors/light_tritanopia.js +0 -616
- package/dist/js/index.d.ts +0 -4655
- package/dist/js/index.js +0 -9
- package/dist/js/spacing/index.d.ts +0 -6
- package/dist/js/spacing/index.js +0 -7
- package/dist/js/spacing/normal.d.ts +0 -4
- package/dist/js/spacing/normal.js +0 -13
- package/dist/js/typography/index.d.ts +0 -11
- package/dist/js/typography/index.js +0 -7
- package/dist/js/typography/normal.d.ts +0 -9
- package/dist/js/typography/normal.js +0 -19
- package/dist/json/colors/dark.json +0 -614
- package/dist/json/colors/dark_colorblind.json +0 -614
- package/dist/json/colors/dark_dimmed.json +0 -614
- package/dist/json/colors/dark_high_contrast.json +0 -614
- package/dist/json/colors/dark_tritanopia.json +0 -614
- package/dist/json/colors/light.json +0 -614
- package/dist/json/colors/light_colorblind.json +0 -614
- package/dist/json/colors/light_high_contrast.json +0 -614
- package/dist/json/colors/light_tritanopia.json +0 -614
- package/dist/json/spacing/normal.json +0 -11
- package/dist/json/typography/normal.json +0 -17
- package/dist/removed/colors.json +0 -432
- package/dist/scss/colors/_dark.scss +0 -452
- package/dist/scss/colors/_dark_colorblind.scss +0 -452
- package/dist/scss/colors/_dark_dimmed.scss +0 -452
- package/dist/scss/colors/_dark_high_contrast.scss +0 -452
- package/dist/scss/colors/_dark_tritanopia.scss +0 -452
- package/dist/scss/colors/_light.scss +0 -452
- package/dist/scss/colors/_light_colorblind.scss +0 -452
- package/dist/scss/colors/_light_high_contrast.scss +0 -452
- package/dist/scss/colors/_light_tritanopia.scss +0 -452
- package/dist/scss/spacing/_normal.scss +0 -11
- package/dist/scss/typography/_normal.scss +0 -15
- package/dist/ts/colors/dark.ts +0 -614
- package/dist/ts/colors/dark_colorblind.ts +0 -614
- package/dist/ts/colors/dark_dimmed.ts +0 -614
- package/dist/ts/colors/dark_high_contrast.ts +0 -614
- package/dist/ts/colors/dark_tritanopia.ts +0 -614
- package/dist/ts/colors/index.ts +0 -10
- package/dist/ts/colors/light.ts +0 -614
- package/dist/ts/colors/light_colorblind.ts +0 -614
- package/dist/ts/colors/light_high_contrast.ts +0 -614
- package/dist/ts/colors/light_tritanopia.ts +0 -614
- package/dist/ts/index.ts +0 -4
- package/dist/ts/spacing/index.ts +0 -2
- package/dist/ts/spacing/normal.ts +0 -11
- package/dist/ts/typography/index.ts +0 -2
- package/dist/ts/typography/normal.ts +0 -17
- package/src/filters/isBorder.test.ts +0 -18
- package/src/filters/isColor.test.ts +0 -22
- package/src/filters/isColorWithAlpha.test.ts +0 -34
- package/src/filters/isColorWithMix.test.ts +0 -108
- package/src/filters/isDeprecated.test.ts +0 -56
- package/src/filters/isDimension.test.ts +0 -22
- package/src/filters/isDuration.test.ts +0 -22
- package/src/filters/isFontFamily.test.ts +0 -22
- package/src/filters/isFontWeight.test.ts +0 -22
- package/src/filters/isFromFile.test.ts +0 -34
- package/src/filters/isShadow.test.ts +0 -18
- package/src/filters/isSource.test.ts +0 -44
- package/src/filters/isTypography.test.ts +0 -18
- package/src/formats/cssCustomMedia.test.ts +0 -11
- package/src/formats/cssThemed.test.ts +0 -87
- package/src/formats/cssWrapMediaQuery.test.ts +0 -170
- package/src/formats/javascriptCommonJs.test.ts +0 -43
- package/src/formats/javascriptEsm.test.ts +0 -41
- package/src/formats/jsonNestedPrefixed.test.ts +0 -73
- package/src/formats/jsonOneDimensional.test.ts +0 -56
- package/src/formats/typescriptExportDefinition.test.ts +0 -178
- package/src/formats/utilities/jsonToFlat.test.ts +0 -47
- package/src/formats/utilities/jsonToNestedValue.test.ts +0 -39
- package/src/formats/utilities/prefixTokens.test.ts +0 -38
- package/src/parsers/w3cJsonParser.test.ts +0 -35
- package/src/schemas/alphaValueSchema.test.ts +0 -24
- package/src/schemas/baseTokenSchema.test.ts +0 -17
- package/src/schemas/borderTokenSchema.test.ts +0 -53
- package/src/schemas/collectionSchema.test.ts +0 -58
- package/src/schemas/colorHexValueSchema.test.ts +0 -26
- package/src/schemas/colorTokenSchema.test.ts +0 -27
- package/src/schemas/dimensionTokenSchema.test.ts +0 -28
- package/src/schemas/dimensionValueSchema.test.ts +0 -21
- package/src/schemas/durationTokenSchema.test.ts +0 -58
- package/src/schemas/durationValueSchema.test.ts +0 -25
- package/src/schemas/fontFamilyTokenSchema.test.ts +0 -82
- package/src/schemas/fontWeightTokenSchema.test.ts +0 -88
- package/src/schemas/fontWeightValue.test.ts +0 -17
- package/src/schemas/numberTokenSchema.test.ts +0 -82
- package/src/schemas/referenceValueSchema.test.ts +0 -20
- package/src/schemas/schema.test.ts +0 -33
- package/src/schemas/scopeTokenSchema.test.ts +0 -29
- package/src/schemas/shadowTokenSchema.test.ts +0 -163
- package/src/schemas/stringTokenSchema.test.ts +0 -81
- package/src/schemas/tokenNameSchema.test.ts +0 -33
- package/src/schemas/typographyTokenSchema.test.ts +0 -58
- package/src/schemas/validTokenTypeSchema.test.ts +0 -32
- package/src/schemas/viewportRangeTokenSchema.test.ts +0 -59
- package/src/transformers/borderToCss.test.ts +0 -58
- package/src/transformers/colorToHex.test.ts +0 -27
- package/src/transformers/colorToHexAlpha.test.ts +0 -30
- package/src/transformers/colorToHexMix.test.ts +0 -83
- package/src/transformers/colorToRgbAlpha.test.ts +0 -33
- package/src/transformers/colorToRgbaFloat.test.ts +0 -168
- package/src/transformers/dimensionToPixelUnitless.test.ts +0 -93
- package/src/transformers/dimensionToRem.test.ts +0 -81
- package/src/transformers/durationToCss.test.ts +0 -56
- package/src/transformers/fontFamilyToCss.test.ts +0 -71
- package/src/transformers/fontWeightToNumbers.test.ts +0 -117
- package/src/transformers/jsonDeprecated.test.ts +0 -31
- package/src/transformers/namePathToCamelCase.test.ts +0 -74
- package/src/transformers/namePathToDotNotation.test.ts +0 -74
- package/src/transformers/namePathToFigma.test.ts +0 -74
- package/src/transformers/namePathToKebabCase.test.ts +0 -74
- package/src/transformers/namePathToSlashNotation.test.ts +0 -74
- package/src/transformers/shadowToCss.test.ts +0 -175
- package/src/transformers/typographyToCss.test.ts +0 -164
- package/src/transformers/utilities/alpha.test.ts +0 -28
- package/src/transformers/utilities/checkRequiredTokenProperties.test.ts +0 -28
- package/src/transformers/utilities/getTokenValue.test.ts +0 -18
- package/src/transformers/utilities/hexToRgbaFloat.test.ts +0 -66
- package/src/transformers/utilities/invalidTokenError.test.ts +0 -21
- package/src/transformers/utilities/isRgbaFloat.test.ts +0 -20
- package/src/transformers/utilities/rgbaFloatToHex.test.ts +0 -16
- package/src/utilities/getFlag.test.ts +0 -31
- package/src/utilities/joinFriendly.test.ts +0 -15
- package/src/utilities/toCamelCase.test.ts +0 -27
- package/src/utilities/treeWalker.test.ts +0 -51
- package/src/utilities/upperCaseFirstCharacter.test.ts +0 -19
- package/tokens-next-private/css/base/size/size.css +0 -19
- package/tokens-next-private/css/base/typography/typography.css +0 -6
- package/tokens-next-private/css/functional/motion/motion.css +0 -5
- package/tokens-next-private/css/functional/size/border.css +0 -14
- package/tokens-next-private/css/functional/size/breakpoints.css +0 -8
- package/tokens-next-private/css/functional/size/size-coarse.css +0 -7
- package/tokens-next-private/css/functional/size/size-fine.css +0 -7
- package/tokens-next-private/css/functional/size/size.css +0 -74
- package/tokens-next-private/css/functional/size/viewport.css +0 -6
- package/tokens-next-private/css/functional/themes/dark-colorblind.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark-dimmed.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark-high-contrast.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark-tritanopia.css +0 -1078
- package/tokens-next-private/css/functional/themes/dark.css +0 -1078
- package/tokens-next-private/css/functional/themes/light-colorblind.css +0 -1078
- package/tokens-next-private/css/functional/themes/light-high-contrast.css +0 -1078
- package/tokens-next-private/css/functional/themes/light-tritanopia.css +0 -1078
- package/tokens-next-private/css/functional/themes/light.css +0 -1078
- package/tokens-next-private/css/functional/typography/typography.css +0 -47
- package/tokens-next-private/docs/base/size/size.json +0 -427
- package/tokens-next-private/docs/base/typography/typography.json +0 -54
- package/tokens-next-private/docs/functional/motion/motion.json +0 -47
- package/tokens-next-private/docs/functional/size/border.json +0 -234
- package/tokens-next-private/docs/functional/size/breakpoints.json +0 -152
- package/tokens-next-private/docs/functional/size/size-coarse.json +0 -41
- package/tokens-next-private/docs/functional/size/size-fine.json +0 -41
- package/tokens-next-private/docs/functional/size/size.json +0 -1838
- package/tokens-next-private/docs/functional/size/viewport.json +0 -80
- package/tokens-next-private/docs/functional/themes/dark-colorblind.json +0 -16155
- package/tokens-next-private/docs/functional/themes/dark-dimmed.json +0 -16159
- package/tokens-next-private/docs/functional/themes/dark-high-contrast.json +0 -16175
- package/tokens-next-private/docs/functional/themes/dark-tritanopia.json +0 -16161
- package/tokens-next-private/docs/functional/themes/dark.json +0 -16159
- package/tokens-next-private/docs/functional/themes/light-colorblind.json +0 -16123
- package/tokens-next-private/docs/functional/themes/light-high-contrast.json +0 -16125
- package/tokens-next-private/docs/functional/themes/light-tritanopia.json +0 -16115
- package/tokens-next-private/docs/functional/themes/light.json +0 -16113
- package/tokens-next-private/docs/functional/typography/typography.json +0 -663
- package/tokens-next-private/fallbacks/base/size/size.json +0 -19
- package/tokens-next-private/fallbacks/base/typography/typography.json +0 -6
- package/tokens-next-private/fallbacks/color-fallbacks.json +0 -260
- package/tokens-next-private/fallbacks/functional/motion/motion.json +0 -5
- package/tokens-next-private/fallbacks/functional/size/border.json +0 -14
- package/tokens-next-private/fallbacks/functional/size/breakpoints.json +0 -8
- package/tokens-next-private/fallbacks/functional/size/size-coarse.json +0 -5
- package/tokens-next-private/fallbacks/functional/size/size-fine.json +0 -5
- package/tokens-next-private/fallbacks/functional/size/size.json +0 -74
- package/tokens-next-private/fallbacks/functional/size/viewport.json +0 -8
- package/tokens-next-private/fallbacks/functional/typography/typography.json +0 -47
- package/tokens-next-private/internalCss/dark-colorblind.css +0 -1648
- package/tokens-next-private/internalCss/dark-dimmed.css +0 -1648
- package/tokens-next-private/internalCss/dark-high-contrast.css +0 -1648
- package/tokens-next-private/internalCss/dark-tritanopia.css +0 -1648
- package/tokens-next-private/internalCss/dark.css +0 -1648
- package/tokens-next-private/internalCss/light-colorblind.css +0 -1648
- package/tokens-next-private/internalCss/light-high-contrast.css +0 -1648
- package/tokens-next-private/internalCss/light-tritanopia.css +0 -1648
- package/tokens-next-private/internalCss/light.css +0 -1648
- package/tokens-next-private/removed/color.json +0 -421
- package/tokens-next-private/styleLint/base/size/size.json +0 -427
- package/tokens-next-private/styleLint/base/typography/typography.json +0 -54
- package/tokens-next-private/styleLint/functional/motion/motion.json +0 -47
- package/tokens-next-private/styleLint/functional/size/border.json +0 -234
- package/tokens-next-private/styleLint/functional/size/breakpoints.json +0 -152
- package/tokens-next-private/styleLint/functional/size/size-coarse.json +0 -41
- package/tokens-next-private/styleLint/functional/size/size-fine.json +0 -41
- package/tokens-next-private/styleLint/functional/size/size.json +0 -1838
- package/tokens-next-private/styleLint/functional/size/viewport.json +0 -80
- package/tokens-next-private/styleLint/functional/themes/dark-colorblind.json +0 -16155
- package/tokens-next-private/styleLint/functional/themes/dark-dimmed.json +0 -16159
- package/tokens-next-private/styleLint/functional/themes/dark-high-contrast.json +0 -16175
- package/tokens-next-private/styleLint/functional/themes/dark-tritanopia.json +0 -16161
- package/tokens-next-private/styleLint/functional/themes/dark.json +0 -16159
- package/tokens-next-private/styleLint/functional/themes/light-colorblind.json +0 -16123
- package/tokens-next-private/styleLint/functional/themes/light-high-contrast.json +0 -16125
- package/tokens-next-private/styleLint/functional/themes/light-tritanopia.json +0 -16115
- package/tokens-next-private/styleLint/functional/themes/light.json +0 -16113
- package/tokens-next-private/styleLint/functional/typography/typography.json +0 -663
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import {collection, mode} from './collections'
|
|
2
|
-
|
|
3
|
-
describe('Schema: collection', () => {
|
|
4
|
-
const collections = collection([
|
|
5
|
-
'base/color/light',
|
|
6
|
-
'base/color/light-high-contrast',
|
|
7
|
-
'base/color/dark',
|
|
8
|
-
'base/color/dark-dimmed',
|
|
9
|
-
'base/color/dark-high-contrast',
|
|
10
|
-
'mode',
|
|
11
|
-
'pattern/mode',
|
|
12
|
-
])
|
|
13
|
-
it('passes on valid values', () => {
|
|
14
|
-
expect(collections.safeParse('mode').success).toStrictEqual(true)
|
|
15
|
-
expect(collections.safeParse('base/color/light').success).toStrictEqual(true)
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
it('fails on invalid values', () => {
|
|
19
|
-
expect(collections.safeParse('wrongCollection').success).toStrictEqual(false)
|
|
20
|
-
expect(collections.safeParse('').success).toStrictEqual(false)
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
it('fails on non-string values', () => {
|
|
24
|
-
expect(collections.safeParse(undefined).success).toStrictEqual(false)
|
|
25
|
-
expect(collections.safeParse(null).success).toStrictEqual(false)
|
|
26
|
-
expect(collections.safeParse(1).success).toStrictEqual(false)
|
|
27
|
-
})
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
describe('Schema: mode', () => {
|
|
31
|
-
const modes = mode([
|
|
32
|
-
'light',
|
|
33
|
-
'dark',
|
|
34
|
-
'dark dimmed',
|
|
35
|
-
'light high contrast',
|
|
36
|
-
'dark high contrast',
|
|
37
|
-
'light colorblind',
|
|
38
|
-
'dark colorblind',
|
|
39
|
-
'light tritanopia',
|
|
40
|
-
'dark tritanopia',
|
|
41
|
-
])
|
|
42
|
-
|
|
43
|
-
it('passes on valid values', () => {
|
|
44
|
-
expect(modes.safeParse('light').success).toStrictEqual(true)
|
|
45
|
-
expect(modes.safeParse('dark').success).toStrictEqual(true)
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
it('fails on invalid values', () => {
|
|
49
|
-
expect(modes.safeParse('wrongMode').success).toStrictEqual(false)
|
|
50
|
-
expect(modes.safeParse('').success).toStrictEqual(false)
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
it('fails on non-string values', () => {
|
|
54
|
-
expect(modes.safeParse(undefined).success).toStrictEqual(false)
|
|
55
|
-
expect(modes.safeParse(null).success).toStrictEqual(false)
|
|
56
|
-
expect(modes.safeParse(1).success).toStrictEqual(false)
|
|
57
|
-
})
|
|
58
|
-
})
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import {colorHexValue} from './colorHexValue'
|
|
2
|
-
|
|
3
|
-
describe('Schema: colorHexValue', () => {
|
|
4
|
-
it('passes on valid colorHexValue values', () => {
|
|
5
|
-
expect(colorHexValue.safeParse('#333').success).toStrictEqual(true)
|
|
6
|
-
// expect(colorHexValue.safeParse('#3456').success).toStrictEqual(true)
|
|
7
|
-
expect(colorHexValue.safeParse('#33ff55').success).toStrictEqual(true)
|
|
8
|
-
expect(colorHexValue.safeParse('#33aa5566').success).toStrictEqual(true)
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
it('fails on invalid colorHexValue values', () => {
|
|
12
|
-
expect(colorHexValue.safeParse('#3456').success).toStrictEqual(false)
|
|
13
|
-
expect(colorHexValue.safeParse(0).success).toStrictEqual(false)
|
|
14
|
-
expect(colorHexValue.safeParse('345').success).toStrictEqual(false)
|
|
15
|
-
expect(colorHexValue.safeParse('334455').success).toStrictEqual(false)
|
|
16
|
-
expect(colorHexValue.safeParse('blue').success).toStrictEqual(false)
|
|
17
|
-
expect(colorHexValue.safeParse('rgb(255,125,0)').success).toStrictEqual(false)
|
|
18
|
-
expect(colorHexValue.safeParse('').success).toStrictEqual(false)
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
it('fails on non-string values', () => {
|
|
22
|
-
expect(colorHexValue.safeParse(undefined).success).toStrictEqual(false)
|
|
23
|
-
expect(colorHexValue.safeParse(null).success).toStrictEqual(false)
|
|
24
|
-
expect(colorHexValue.safeParse(1).success).toStrictEqual(false)
|
|
25
|
-
})
|
|
26
|
-
})
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import {colorToken} from './colorToken'
|
|
2
|
-
|
|
3
|
-
describe('Schema: colorToken', () => {
|
|
4
|
-
const validToken = {
|
|
5
|
-
$value: '#00ff88',
|
|
6
|
-
$type: 'color',
|
|
7
|
-
$description: 'a color token',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
it('passes on valid values', () => {
|
|
11
|
-
expect(colorToken.safeParse(validToken).success).toStrictEqual(true)
|
|
12
|
-
expect(colorToken.safeParse({...validToken, $value: '#000'}).success).toStrictEqual(true)
|
|
13
|
-
expect(colorToken.safeParse({...validToken, $value: '#11223366'}).success).toStrictEqual(true)
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
it('fails on invalid type', () => {
|
|
17
|
-
expect(colorToken.safeParse({...validToken, $type: 'stroke'}).success).toStrictEqual(false)
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it('fails on invalid value', () => {
|
|
21
|
-
expect(colorToken.safeParse({...validToken, $value: 'wrong'}).success).toStrictEqual(false)
|
|
22
|
-
expect(colorToken.safeParse({...validToken, $value: undefined}).success).toStrictEqual(false)
|
|
23
|
-
expect(colorToken.safeParse({...validToken, $value: ''}).success).toStrictEqual(false)
|
|
24
|
-
expect(colorToken.safeParse({...validToken, $value: false}).success).toStrictEqual(false)
|
|
25
|
-
expect(colorToken.safeParse({...validToken, $value: 1}).success).toStrictEqual(false)
|
|
26
|
-
})
|
|
27
|
-
})
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import {dimensionToken} from './dimensionToken'
|
|
2
|
-
|
|
3
|
-
describe('Schema: dimensionToken', () => {
|
|
4
|
-
const validToken = {
|
|
5
|
-
$value: '1px',
|
|
6
|
-
$type: 'dimension',
|
|
7
|
-
$description: 'a dimension token',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
it('passes on valid values', () => {
|
|
11
|
-
expect(dimensionToken.safeParse(validToken).success).toStrictEqual(true)
|
|
12
|
-
expect(dimensionToken.safeParse({...validToken, $value: '1em'}).success).toStrictEqual(true)
|
|
13
|
-
expect(dimensionToken.safeParse({...validToken, $value: '1rem'}).success).toStrictEqual(true)
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
it('fails on invalid type', () => {
|
|
17
|
-
expect(dimensionToken.safeParse({...validToken, $type: 'stroke'}).success).toStrictEqual(false)
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it('fails on invalid value', () => {
|
|
21
|
-
expect(dimensionToken.safeParse({...validToken, $value: 'wrong'}).success).toStrictEqual(false)
|
|
22
|
-
expect(dimensionToken.safeParse({...validToken, $value: '1%'}).success).toStrictEqual(false)
|
|
23
|
-
expect(dimensionToken.safeParse({...validToken, $value: undefined}).success).toStrictEqual(false)
|
|
24
|
-
expect(dimensionToken.safeParse({...validToken, $value: ''}).success).toStrictEqual(false)
|
|
25
|
-
expect(dimensionToken.safeParse({...validToken, $value: false}).success).toStrictEqual(false)
|
|
26
|
-
expect(dimensionToken.safeParse({...validToken, $value: 1}).success).toStrictEqual(false)
|
|
27
|
-
})
|
|
28
|
-
})
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import {dimensionValue} from './dimensionValue'
|
|
2
|
-
|
|
3
|
-
describe('Schema: dimensionValue', () => {
|
|
4
|
-
it('passes on valid values', () => {
|
|
5
|
-
expect(dimensionValue.safeParse('1px').success).toStrictEqual(true)
|
|
6
|
-
expect(dimensionValue.safeParse('-1px').success).toStrictEqual(true)
|
|
7
|
-
expect(dimensionValue.safeParse('1em').success).toStrictEqual(true)
|
|
8
|
-
expect(dimensionValue.safeParse('1rem').success).toStrictEqual(true)
|
|
9
|
-
expect(dimensionValue.safeParse('0').success).toStrictEqual(true)
|
|
10
|
-
expect(dimensionValue.safeParse(0).success).toStrictEqual(true)
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
it('fails on invalid value', () => {
|
|
14
|
-
expect(dimensionValue.safeParse('1%').success).toStrictEqual(false)
|
|
15
|
-
expect(dimensionValue.safeParse(1).success).toStrictEqual(false)
|
|
16
|
-
expect(dimensionValue.safeParse('small').success).toStrictEqual(false)
|
|
17
|
-
expect(dimensionValue.safeParse('').success).toStrictEqual(false)
|
|
18
|
-
expect(dimensionValue.safeParse(false).success).toStrictEqual(false)
|
|
19
|
-
expect(dimensionValue.safeParse(undefined).success).toStrictEqual(false)
|
|
20
|
-
})
|
|
21
|
-
})
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import {durationToken} from './durationToken'
|
|
2
|
-
|
|
3
|
-
describe('Schema: durationToken', () => {
|
|
4
|
-
const validToken = {
|
|
5
|
-
$value: '1000ms',
|
|
6
|
-
$type: 'duration',
|
|
7
|
-
$description: '1000 milliseconds',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
it('parses valid duration tokens', () => {
|
|
11
|
-
expect(durationToken.safeParse(validToken).success).toStrictEqual(true)
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('fails on invalid properties', () => {
|
|
15
|
-
// additional element
|
|
16
|
-
expect(
|
|
17
|
-
durationToken.safeParse({
|
|
18
|
-
...validToken,
|
|
19
|
-
duration: '1000s',
|
|
20
|
-
}).success,
|
|
21
|
-
).toStrictEqual(false)
|
|
22
|
-
// missing value
|
|
23
|
-
expect(
|
|
24
|
-
durationToken.safeParse({
|
|
25
|
-
$type: 'duration',
|
|
26
|
-
}).success,
|
|
27
|
-
).toStrictEqual(false)
|
|
28
|
-
// missing type
|
|
29
|
-
expect(
|
|
30
|
-
durationToken.safeParse({
|
|
31
|
-
$value: '1000ms',
|
|
32
|
-
}).success,
|
|
33
|
-
).toStrictEqual(false)
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('fails on wrong type', () => {
|
|
37
|
-
// invalid string
|
|
38
|
-
expect(
|
|
39
|
-
durationToken.safeParse({
|
|
40
|
-
...validToken,
|
|
41
|
-
$type: 'motion',
|
|
42
|
-
}).success,
|
|
43
|
-
).toStrictEqual(false)
|
|
44
|
-
// undefined
|
|
45
|
-
expect(
|
|
46
|
-
durationToken.safeParse({
|
|
47
|
-
...validToken,
|
|
48
|
-
$type: undefined,
|
|
49
|
-
}).success,
|
|
50
|
-
).toStrictEqual(false)
|
|
51
|
-
// no type
|
|
52
|
-
expect(
|
|
53
|
-
durationToken.safeParse({
|
|
54
|
-
$value: '1000ms',
|
|
55
|
-
}).success,
|
|
56
|
-
).toStrictEqual(false)
|
|
57
|
-
})
|
|
58
|
-
})
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import {durationValue} from './durationValue'
|
|
2
|
-
|
|
3
|
-
describe('Schema: durationValue', () => {
|
|
4
|
-
it('passes on valid duration values', () => {
|
|
5
|
-
expect(durationValue.safeParse('0ms').success).toStrictEqual(true)
|
|
6
|
-
expect(durationValue.safeParse('100ms').success).toStrictEqual(true)
|
|
7
|
-
expect(durationValue.safeParse('20000ms').success).toStrictEqual(true)
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
it('fails on invalid duration values', () => {
|
|
11
|
-
expect(durationValue.safeParse(-1).success).toStrictEqual(false)
|
|
12
|
-
expect(durationValue.safeParse(0).success).toStrictEqual(false)
|
|
13
|
-
expect(durationValue.safeParse(1.1).success).toStrictEqual(false)
|
|
14
|
-
expect(durationValue.safeParse('0').success).toStrictEqual(false)
|
|
15
|
-
expect(durationValue.safeParse('10').success).toStrictEqual(false)
|
|
16
|
-
expect(durationValue.safeParse('10s').success).toStrictEqual(false)
|
|
17
|
-
expect(durationValue.safeParse('').success).toStrictEqual(false)
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it('fails on non-string values', () => {
|
|
21
|
-
expect(durationValue.safeParse(undefined).success).toStrictEqual(false)
|
|
22
|
-
expect(durationValue.safeParse(null).success).toStrictEqual(false)
|
|
23
|
-
expect(durationValue.safeParse(1).success).toStrictEqual(false)
|
|
24
|
-
})
|
|
25
|
-
})
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import {fontFamilyToken} from './fontFamilyToken'
|
|
2
|
-
|
|
3
|
-
describe('Schema: fontFamilyToken', () => {
|
|
4
|
-
const validToken = {
|
|
5
|
-
$value: 'Helvetica',
|
|
6
|
-
$type: 'fontFamily',
|
|
7
|
-
$description: 'a fontFamily token',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
it('parses valid number tokens', () => {
|
|
11
|
-
expect(fontFamilyToken.safeParse(validToken).success).toStrictEqual(true)
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('fails on invalid properties', () => {
|
|
15
|
-
// additional element
|
|
16
|
-
expect(
|
|
17
|
-
fontFamilyToken.safeParse({
|
|
18
|
-
...validToken,
|
|
19
|
-
additional: 1000,
|
|
20
|
-
}).success,
|
|
21
|
-
).toStrictEqual(false)
|
|
22
|
-
// missing value
|
|
23
|
-
expect(
|
|
24
|
-
fontFamilyToken.safeParse({
|
|
25
|
-
$type: 'fontWeight',
|
|
26
|
-
}).success,
|
|
27
|
-
).toStrictEqual(false)
|
|
28
|
-
// missing type
|
|
29
|
-
expect(
|
|
30
|
-
fontFamilyToken.safeParse({
|
|
31
|
-
$value: 'Helvetica',
|
|
32
|
-
}).success,
|
|
33
|
-
).toStrictEqual(false)
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('fails on wrong type', () => {
|
|
37
|
-
// invalid string
|
|
38
|
-
expect(
|
|
39
|
-
fontFamilyToken.safeParse({
|
|
40
|
-
...validToken,
|
|
41
|
-
$type: 'motion',
|
|
42
|
-
}).success,
|
|
43
|
-
).toStrictEqual(false)
|
|
44
|
-
// undefined
|
|
45
|
-
expect(
|
|
46
|
-
fontFamilyToken.safeParse({
|
|
47
|
-
...validToken,
|
|
48
|
-
$type: undefined,
|
|
49
|
-
}).success,
|
|
50
|
-
).toStrictEqual(false)
|
|
51
|
-
// no type
|
|
52
|
-
expect(
|
|
53
|
-
fontFamilyToken.safeParse({
|
|
54
|
-
$value: 'Helvetica',
|
|
55
|
-
}).success,
|
|
56
|
-
).toStrictEqual(false)
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
it('fails on wrong value', () => {
|
|
60
|
-
// invalid value
|
|
61
|
-
expect(
|
|
62
|
-
fontFamilyToken.safeParse({
|
|
63
|
-
...validToken,
|
|
64
|
-
$value: 100,
|
|
65
|
-
}).success,
|
|
66
|
-
).toStrictEqual(false)
|
|
67
|
-
// undefined
|
|
68
|
-
expect(
|
|
69
|
-
fontFamilyToken.safeParse({
|
|
70
|
-
...validToken,
|
|
71
|
-
$value: undefined,
|
|
72
|
-
}).success,
|
|
73
|
-
).toStrictEqual(false)
|
|
74
|
-
// boolean
|
|
75
|
-
expect(
|
|
76
|
-
fontFamilyToken.safeParse({
|
|
77
|
-
...validToken,
|
|
78
|
-
$value: false,
|
|
79
|
-
}).success,
|
|
80
|
-
).toStrictEqual(false)
|
|
81
|
-
})
|
|
82
|
-
})
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import {fontWeightToken} from './fontWeightToken'
|
|
2
|
-
|
|
3
|
-
describe('Schema: fontWeightToken', () => {
|
|
4
|
-
const validToken = {
|
|
5
|
-
$value: 100,
|
|
6
|
-
$type: 'fontWeight',
|
|
7
|
-
$description: 'a fontWeight token',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
it('parses valid number tokens', () => {
|
|
11
|
-
expect(fontWeightToken.safeParse(validToken).success).toStrictEqual(true)
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('fails on invalid properties', () => {
|
|
15
|
-
// additional element
|
|
16
|
-
expect(
|
|
17
|
-
fontWeightToken.safeParse({
|
|
18
|
-
...validToken,
|
|
19
|
-
additional: 1000,
|
|
20
|
-
}).success,
|
|
21
|
-
).toStrictEqual(false)
|
|
22
|
-
// missing value
|
|
23
|
-
expect(
|
|
24
|
-
fontWeightToken.safeParse({
|
|
25
|
-
$type: 'fontWeight',
|
|
26
|
-
}).success,
|
|
27
|
-
).toStrictEqual(false)
|
|
28
|
-
// missing type
|
|
29
|
-
expect(
|
|
30
|
-
fontWeightToken.safeParse({
|
|
31
|
-
$value: 100,
|
|
32
|
-
}).success,
|
|
33
|
-
).toStrictEqual(false)
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('fails on wrong type', () => {
|
|
37
|
-
// invalid string
|
|
38
|
-
expect(
|
|
39
|
-
fontWeightToken.safeParse({
|
|
40
|
-
...validToken,
|
|
41
|
-
$type: 'motion',
|
|
42
|
-
}).success,
|
|
43
|
-
).toStrictEqual(false)
|
|
44
|
-
// undefined
|
|
45
|
-
expect(
|
|
46
|
-
fontWeightToken.safeParse({
|
|
47
|
-
...validToken,
|
|
48
|
-
$type: undefined,
|
|
49
|
-
}).success,
|
|
50
|
-
).toStrictEqual(false)
|
|
51
|
-
// no type
|
|
52
|
-
expect(
|
|
53
|
-
fontWeightToken.safeParse({
|
|
54
|
-
$value: 100,
|
|
55
|
-
}).success,
|
|
56
|
-
).toStrictEqual(false)
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
it('fails on wrong value', () => {
|
|
60
|
-
// invalid string
|
|
61
|
-
expect(
|
|
62
|
-
fontWeightToken.safeParse({
|
|
63
|
-
...validToken,
|
|
64
|
-
$value: 'string',
|
|
65
|
-
}).success,
|
|
66
|
-
).toStrictEqual(false)
|
|
67
|
-
// undefined
|
|
68
|
-
expect(
|
|
69
|
-
fontWeightToken.safeParse({
|
|
70
|
-
...validToken,
|
|
71
|
-
$value: undefined,
|
|
72
|
-
}).success,
|
|
73
|
-
).toStrictEqual(false)
|
|
74
|
-
// boolean
|
|
75
|
-
expect(
|
|
76
|
-
fontWeightToken.safeParse({
|
|
77
|
-
...validToken,
|
|
78
|
-
$value: false,
|
|
79
|
-
}).success,
|
|
80
|
-
).toStrictEqual(false)
|
|
81
|
-
// wrong value
|
|
82
|
-
expect(
|
|
83
|
-
fontWeightToken.safeParse({
|
|
84
|
-
$value: 1500,
|
|
85
|
-
}).success,
|
|
86
|
-
).toStrictEqual(false)
|
|
87
|
-
})
|
|
88
|
-
})
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {fontWeightValue} from './fontWeightValue'
|
|
2
|
-
|
|
3
|
-
describe('Schema: fontWeightValue', () => {
|
|
4
|
-
const allowed = [100, 200, 300, 400, 500, 600, 700, 800, 900, 950]
|
|
5
|
-
|
|
6
|
-
it('parses valid value', () => {
|
|
7
|
-
for (const weight of allowed) {
|
|
8
|
-
expect(fontWeightValue.safeParse(weight).success).toStrictEqual(true)
|
|
9
|
-
}
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
it('fails on invalid values', () => {
|
|
13
|
-
expect(fontWeightValue.safeParse(1200).success).toStrictEqual(false)
|
|
14
|
-
expect(fontWeightValue.safeParse('100').success).toStrictEqual(false)
|
|
15
|
-
expect(fontWeightValue.safeParse(false).success).toStrictEqual(false)
|
|
16
|
-
})
|
|
17
|
-
})
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import {numberToken} from './numberToken'
|
|
2
|
-
|
|
3
|
-
describe('Schema: numberToken', () => {
|
|
4
|
-
const validToken = {
|
|
5
|
-
$value: 10,
|
|
6
|
-
$type: 'number',
|
|
7
|
-
$description: 'a number token',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
it('parses valid number tokens', () => {
|
|
11
|
-
expect(numberToken.safeParse(validToken).success).toStrictEqual(true)
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('fails on invalid properties', () => {
|
|
15
|
-
// additional element
|
|
16
|
-
expect(
|
|
17
|
-
numberToken.safeParse({
|
|
18
|
-
...validToken,
|
|
19
|
-
additional: 1000,
|
|
20
|
-
}).success,
|
|
21
|
-
).toStrictEqual(false)
|
|
22
|
-
// missing value
|
|
23
|
-
expect(
|
|
24
|
-
numberToken.safeParse({
|
|
25
|
-
$type: 'number',
|
|
26
|
-
}).success,
|
|
27
|
-
).toStrictEqual(false)
|
|
28
|
-
// missing type
|
|
29
|
-
expect(
|
|
30
|
-
numberToken.safeParse({
|
|
31
|
-
$value: 1000,
|
|
32
|
-
}).success,
|
|
33
|
-
).toStrictEqual(false)
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it('fails on wrong type', () => {
|
|
37
|
-
// invalid string
|
|
38
|
-
expect(
|
|
39
|
-
numberToken.safeParse({
|
|
40
|
-
...validToken,
|
|
41
|
-
$type: 'motion',
|
|
42
|
-
}).success,
|
|
43
|
-
).toStrictEqual(false)
|
|
44
|
-
// undefined
|
|
45
|
-
expect(
|
|
46
|
-
numberToken.safeParse({
|
|
47
|
-
...validToken,
|
|
48
|
-
$type: undefined,
|
|
49
|
-
}).success,
|
|
50
|
-
).toStrictEqual(false)
|
|
51
|
-
// no type
|
|
52
|
-
expect(
|
|
53
|
-
numberToken.safeParse({
|
|
54
|
-
$value: 1000,
|
|
55
|
-
}).success,
|
|
56
|
-
).toStrictEqual(false)
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
it('fails on wrong value', () => {
|
|
60
|
-
// invalid string
|
|
61
|
-
expect(
|
|
62
|
-
numberToken.safeParse({
|
|
63
|
-
...validToken,
|
|
64
|
-
$value: 'string',
|
|
65
|
-
}).success,
|
|
66
|
-
).toStrictEqual(false)
|
|
67
|
-
// undefined
|
|
68
|
-
expect(
|
|
69
|
-
numberToken.safeParse({
|
|
70
|
-
...validToken,
|
|
71
|
-
$value: undefined,
|
|
72
|
-
}).success,
|
|
73
|
-
).toStrictEqual(false)
|
|
74
|
-
// boolean
|
|
75
|
-
expect(
|
|
76
|
-
numberToken.safeParse({
|
|
77
|
-
...validToken,
|
|
78
|
-
$value: false,
|
|
79
|
-
}).success,
|
|
80
|
-
).toStrictEqual(false)
|
|
81
|
-
})
|
|
82
|
-
})
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import {referenceValue} from './referenceValue'
|
|
2
|
-
|
|
3
|
-
describe('Schema: referenceValue', () => {
|
|
4
|
-
it('returns success on valid reference', () => {
|
|
5
|
-
expect(referenceValue.safeParse('{color.token}').success).toStrictEqual(true)
|
|
6
|
-
expect(referenceValue.safeParse('{color.token.900}').success).toStrictEqual(true)
|
|
7
|
-
expect(referenceValue.safeParse('{color.@}').success).toStrictEqual(true)
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
it('fails on invalid reference', () => {
|
|
11
|
-
expect(referenceValue.safeParse('color.token').success).toStrictEqual(false)
|
|
12
|
-
expect(referenceValue.safeParse('{color}').success).toStrictEqual(false)
|
|
13
|
-
expect(referenceValue.safeParse('{color.@.token}').success).toStrictEqual(false)
|
|
14
|
-
expect(referenceValue.safeParse('{}').success).toStrictEqual(false)
|
|
15
|
-
expect(referenceValue.safeParse('').success).toStrictEqual(false)
|
|
16
|
-
expect(referenceValue.safeParse(100).success).toStrictEqual(false)
|
|
17
|
-
expect(referenceValue.safeParse(false).success).toStrictEqual(false)
|
|
18
|
-
expect(referenceValue.safeParse(undefined).success).toStrictEqual(false)
|
|
19
|
-
})
|
|
20
|
-
})
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import {designToken} from './designToken'
|
|
2
|
-
|
|
3
|
-
describe('Schema validation', () => {
|
|
4
|
-
const validTokenJson = {
|
|
5
|
-
parent: {
|
|
6
|
-
color: {
|
|
7
|
-
$value: '#000000',
|
|
8
|
-
$type: 'color',
|
|
9
|
-
$description: 'The color black',
|
|
10
|
-
},
|
|
11
|
-
duration: {
|
|
12
|
-
$value: '1000ms',
|
|
13
|
-
$type: 'duration',
|
|
14
|
-
$description: '1000 milliseconds',
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
it('returns success on valid schema', () => {
|
|
20
|
-
const parsedToken = designToken.safeParse(validTokenJson)
|
|
21
|
-
expect(parsedToken.success).toStrictEqual(true)
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
it('returns success false on invalid schema', () => {
|
|
25
|
-
const parsedToken = designToken.safeParse({
|
|
26
|
-
color: {
|
|
27
|
-
$value: '#000000',
|
|
28
|
-
$type: 'colors',
|
|
29
|
-
},
|
|
30
|
-
})
|
|
31
|
-
expect(parsedToken.success).toStrictEqual(false)
|
|
32
|
-
})
|
|
33
|
-
})
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type {ValidScope} from './scopes'
|
|
2
|
-
import {scopes} from './scopes'
|
|
3
|
-
|
|
4
|
-
const validScopes: ValidScope[] = ['all', 'bgColor', 'fgColor', 'borderColor', 'size', 'gap', 'radius']
|
|
5
|
-
const scopeSchema = scopes(validScopes)
|
|
6
|
-
|
|
7
|
-
describe('Schema: scopes', () => {
|
|
8
|
-
it('parses valid scopes', () => {
|
|
9
|
-
expect(scopeSchema.safeParse(['all']).success).toStrictEqual(true)
|
|
10
|
-
expect(scopeSchema.safeParse(['bgColor']).success).toStrictEqual(true)
|
|
11
|
-
expect(scopeSchema.safeParse(['fgColor']).success).toStrictEqual(true)
|
|
12
|
-
expect(scopeSchema.safeParse(['borderColor']).success).toStrictEqual(true)
|
|
13
|
-
expect(scopeSchema.safeParse(['size']).success).toStrictEqual(true)
|
|
14
|
-
expect(scopeSchema.safeParse(['gap']).success).toStrictEqual(true)
|
|
15
|
-
expect(scopeSchema.safeParse(['radius']).success).toStrictEqual(true)
|
|
16
|
-
expect(
|
|
17
|
-
scopeSchema.safeParse(['all', 'bgColor', 'fgColor', 'borderColor', 'size', 'gap', 'radius']).success,
|
|
18
|
-
).toStrictEqual(true)
|
|
19
|
-
expect(scopeSchema.safeParse([]).success).toStrictEqual(true)
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
it('fails on invalid scope', () => {
|
|
23
|
-
expect(scopeSchema.safeParse(['invalid']).success).toStrictEqual(false)
|
|
24
|
-
expect(scopeSchema.safeParse(['']).success).toStrictEqual(false)
|
|
25
|
-
expect(scopeSchema.safeParse([1]).success).toStrictEqual(false)
|
|
26
|
-
expect(scopeSchema.safeParse([false]).success).toStrictEqual(false)
|
|
27
|
-
expect(scopeSchema.safeParse([undefined]).success).toStrictEqual(false)
|
|
28
|
-
})
|
|
29
|
-
})
|