diff --git a/src/rules/require-logical-keywords/rule.test.ts b/src/rules/require-logical-keywords/rule.test.ts index f202c6a..f203b02 100644 --- a/src/rules/require-logical-keywords/rule.test.ts +++ b/src/rules/require-logical-keywords/rule.test.ts @@ -94,3 +94,37 @@ testRule({ ], /* eslint-enable sort-keys */ }); + +testRule({ + config: [ + true, + { + message: (actual: string, expected: string) => + `Expected "${actual}" to be "${expected}"`, + }, + ], + ruleName: name, + /* eslint-disable sort-keys */ + reject: [ + { + code: 'div { resize: inline vertical; }', + description: 'Using resize with physical and logical values', + fixed: 'div { resize: inline block; }', + message: `Expected "vertical" to be "block" (${name})`, + }, + { + code: 'div { resize: horizontal vertical; }', + description: 'Using resize with physical values only', + fixed: 'div { resize: inline block; }', + warnings: [ + { + message: `Expected "horizontal" to be "inline" (${name})`, + }, + { + message: `Expected "vertical" to be "block" (${name})`, + }, + ], + }, + ], + /* eslint-enable sort-keys */ +}); diff --git a/src/rules/require-logical-keywords/rule.ts b/src/rules/require-logical-keywords/rule.ts index a2223b3..a87f386 100644 --- a/src/rules/require-logical-keywords/rule.ts +++ b/src/rules/require-logical-keywords/rule.ts @@ -92,7 +92,8 @@ export const requireLogicalKeywords: Rule = ( logicalKeyword, ); }, - message: messages.error(keyword, logicalKeyword), + message: messages.error, + messageArgs: [keyword, logicalKeyword], node: decl, result, ruleName: name, diff --git a/src/rules/require-logical-properties/rule.test.ts b/src/rules/require-logical-properties/rule.test.ts index 7989f2d..6f1d5b9 100644 --- a/src/rules/require-logical-properties/rule.test.ts +++ b/src/rules/require-logical-properties/rule.test.ts @@ -62,3 +62,33 @@ testRule({ ], /* eslint-enable sort-keys */ }); + +testRule({ + config: [ + true, + { + message: (actual: string, expected: string) => + `Expected "${actual}" to be "${expected}"`, + }, + ], + ruleName: name, + /* eslint-disable sort-keys */ + reject: [ + { + code: `body { width: 100%; }`, + description: 'Using physical width property', + message: `Expected "width" to be "inline-size" (${name})`, + fixed: `body { ${physicalToLogicalPropertyMap['width' as PhysicalProperty]}: 100%; };`, + }, + { + code: `body { width: 100%; height: 100%; }`, + description: 'Using physical width and height properties', + warnings: [ + { message: `Expected "width" to be "inline-size" (${name})` }, + { message: `Expected "height" to be "block-size" (${name})` }, + ], + fixed: `body { ${physicalToLogicalPropertyMap['width' as PhysicalProperty]}: 100%; ${physicalToLogicalPropertyMap['height' as PhysicalProperty]}: 100%; };`, + }, + ], + /* eslint-enable sort-keys */ +}); diff --git a/src/rules/require-logical-properties/rule.ts b/src/rules/require-logical-properties/rule.ts index 3045d7a..1b3452c 100644 --- a/src/rules/require-logical-properties/rule.ts +++ b/src/rules/require-logical-properties/rule.ts @@ -79,7 +79,8 @@ export const requireLogicalProperties: Rule = ( fix: () => { decl.prop = decl.prop.replace(sanitizedProperty, logicalPropertyEquivalent); }, - message: messages.error(rawProperty, logicalPropertyEquivalent), + message: messages.error, + messageArgs: [rawProperty, logicalPropertyEquivalent], node: decl, result, ruleName: name, diff --git a/src/rules/require-logical-units/rule.test.ts b/src/rules/require-logical-units/rule.test.ts index 9424317..9da8e19 100644 --- a/src/rules/require-logical-units/rule.test.ts +++ b/src/rules/require-logical-units/rule.test.ts @@ -89,3 +89,31 @@ testRule({ ], /* eslint-enable sort-keys */ }); + +testRule({ + config: [ + true, + { + message: (actual: string, expected: string) => + `Expected "${actual}" to be "${expected}"`, + }, + ], + ruleName: name, + /* eslint-disable sort-keys */ + reject: [ + { + code: 'div { inset: 100dvh 50vw 0 0; };', + description: + 'Using multiple physical units in a shorthand property where one is ignored, but not the other', + warnings: [ + { + message: `Expected "dvh" to be "dvb" (${name})`, + }, + { + message: `Expected "vw" to be "vi" (${name})`, + }, + ], + }, + ], + /* eslint-enable sort-keys */ +}); diff --git a/src/rules/require-logical-units/rule.ts b/src/rules/require-logical-units/rule.ts index ee6e14a..d70fc7e 100644 --- a/src/rules/require-logical-units/rule.ts +++ b/src/rules/require-logical-units/rule.ts @@ -82,7 +82,8 @@ export const requireLogicalUnits: Rule = ( ); decl.value = fixedValue; }, - message: messages.error(unit, logicalUnit), + message: messages.error, + messageArgs: [unit, logicalUnit], node: decl, result, ruleName: name,