mirror of
https://github.com/grafana/grafana.git
synced 2025-07-28 09:32:23 +08:00

* allow border radius of 0 * Prefer unset or initial over 0 * readme * add an autofix for 0 -> unset * replace 0 with unset * fix fixes tests * fix snapshot * Fix lint in SecretFormField * fix unused cx
124 lines
2.7 KiB
JavaScript
124 lines
2.7 KiB
JavaScript
import { RuleTester } from 'eslint';
|
|
|
|
import noBorderRadiusLiteral from '../rules/no-border-radius-literal.cjs';
|
|
|
|
RuleTester.setDefaultConfig({
|
|
languageOptions: {
|
|
ecmaVersion: 2018,
|
|
sourceType: 'module',
|
|
parserOptions: {
|
|
ecmaFeatures: {
|
|
jsx: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
const useTokenError = {
|
|
messageId: 'borderRadiusUseTokens',
|
|
};
|
|
|
|
const noZeroValueError = {
|
|
messageId: 'borderRadiusNoZeroValue',
|
|
};
|
|
|
|
const ruleTester = new RuleTester();
|
|
|
|
ruleTester.run('eslint no-border-radius-literal', noBorderRadiusLiteral, {
|
|
valid: [
|
|
{
|
|
code: `css({ borderRadius: theme.shape.radius.default })`,
|
|
},
|
|
{
|
|
code: `css({ borderRadius: theme.shape.radius.circle })`,
|
|
},
|
|
{
|
|
code: `css({ borderRadius: theme.shape.radius.pill })`,
|
|
},
|
|
{
|
|
code: `css({ borderTopLeftRadius: theme.shape.radius.pill })`,
|
|
},
|
|
{
|
|
code: `css({ borderTopRightRadius: theme.shape.radius.pill })`,
|
|
},
|
|
{
|
|
code: `css({ borderBottomLeftRadius: theme.shape.radius.pill })`,
|
|
},
|
|
{
|
|
code: `css({ borderBottomRightRadius: theme.shape.radius.pill })`,
|
|
},
|
|
|
|
// allow values to remove border radius
|
|
{
|
|
code: `css({ borderRadius: 'initial' })`,
|
|
},
|
|
{
|
|
code: `css({ borderRadius: 'unset' })`,
|
|
},
|
|
],
|
|
|
|
invalid: [
|
|
{
|
|
code: `css({ borderRadius: '2px' })`,
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
code: `css({ borderRadius: 2 })`, // should error on px shorthand
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
code: `css({ lineHeight: 1 }, { borderRadius: '2px' })`,
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
code: `css([{ lineHeight: 1 }, { borderRadius: '2px' }])`,
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
name: 'nested classes',
|
|
code: `
|
|
css({
|
|
foo: {
|
|
nested: {
|
|
borderRadius: '100px',
|
|
},
|
|
},
|
|
})`,
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
code: `css({ borderTopLeftRadius: 1 })`,
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
code: `css({ borderTopRightRadius: "2px" })`,
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
code: `css({ borderBottomLeftRadius: 3 })`,
|
|
errors: [useTokenError],
|
|
},
|
|
{
|
|
code: `css({ borderBottomRightRadius: "4px" })`,
|
|
errors: [useTokenError],
|
|
},
|
|
|
|
// should use unset or initial to remove border radius
|
|
{
|
|
code: `css({ borderRadius: 0 })`,
|
|
output: `css({ borderRadius: 'unset' })`,
|
|
errors: [noZeroValueError],
|
|
},
|
|
{
|
|
code: `css({ borderRadius: '0px' })`,
|
|
output: `css({ borderRadius: 'unset' })`,
|
|
errors: [noZeroValueError],
|
|
},
|
|
{
|
|
code: `css({ borderRadius: "0%" })`,
|
|
output: `css({ borderRadius: 'unset' })`,
|
|
errors: [noZeroValueError],
|
|
},
|
|
],
|
|
});
|