UNPKG

@udyux/stylelint-order

Version:

[fork] A collection of order related linting rules for stylelint.

312 lines (281 loc) 4.22 kB
const rule = require('..'); const { ruleName, messages } = rule; testRule({ ruleName, config: [ [ { noEmptyLineBetween: true, properties: ['display', 'vertical-align', 'content'], }, { noEmptyLineBetween: true, properties: ['position', 'top', 'bottom'], }, ], ], fix: true, accept: [ { code: ` a { display: block; vertical-align: middle; content: ""; position: absolute; top: 0; bottom: 0; } `, }, { code: ` a { display: block; vertical-align: middle; content: ""; position: absolute; top: 0; bottom: 0; } `, }, { code: ` a { vertical-align: middle; top: 0; bottom: 0; } `, }, ], reject: [ { code: ` a { display: block; vertical-align: middle; content: ""; } `, fixed: ` a { display: block; vertical-align: middle; content: ""; } `, message: messages.rejectedEmptyLineBefore('vertical-align'), }, { code: ` a { display: block; vertical-align: middle; content: ""; } `, fixed: ` a { display: block; vertical-align: middle; content: ""; } `, message: messages.rejectedEmptyLineBefore('content'), }, ], }); testRule({ ruleName, config: [ [ { noEmptyLineBetween: true, properties: ['display', 'vertical-align', 'content'], }, { noEmptyLineBetween: true, properties: ['position', 'top', 'bottom'], }, ], ], syntax: 'css-in-js', fix: true, accept: [ { code: ` const Component = styled.div\` display: block; vertical-align: middle; content: ""; position: absolute; top: 0; bottom: 0; \`; `, }, ], reject: [ { code: ` const Component = styled.div\` display: block; vertical-align: middle; content: ""; \`; `, fixed: ` const Component = styled.div\` display: block; vertical-align: middle; content: ""; \`; `, message: messages.rejectedEmptyLineBefore('vertical-align'), }, ], }); testRule({ ruleName, config: [ [ { emptyLineBefore: 'always', noEmptyLineBetween: true, properties: ['display', 'vertical-align', 'content'], }, { emptyLineBefore: 'always', noEmptyLineBetween: true, properties: ['position', 'top', 'bottom'], }, ], ], fix: true, accept: [ { code: ` a { display: block; vertical-align: middle; content: ""; position: absolute; top: 0; bottom: 0; } `, }, { code: ` a { vertical-align: middle; top: 0; bottom: 0; } `, }, ], reject: [ { code: ` a { display: block; vertical-align: middle; content: ""; } `, fixed: ` a { display: block; vertical-align: middle; content: ""; } `, message: messages.rejectedEmptyLineBefore('vertical-align'), }, ], }); testRule({ ruleName, config: [ [ { emptyLineBefore: 'always', noEmptyLineBetween: true, order: 'flexible', properties: ['height', 'width'], }, { emptyLineBefore: 'always', noEmptyLineBetween: true, order: 'flexible', properties: ['font-size', 'font-weight'], }, ], ], fix: true, accept: [ { code: ` a { height: 1px; width: 2px; font-size: 2px; font-weight: bold; } `, }, { code: ` a { height: 1px; width: 2px; font-weight: bold; font-size: 2px; } `, }, ], reject: [ { code: ` a { height: 1px; width: 2px; font-weight: bold; font-size: 2px; } `, fixed: ` a { height: 1px; width: 2px; font-weight: bold; font-size: 2px; } `, message: messages.rejectedEmptyLineBefore('font-size'), }, { code: ` a { height: 1px; width: 2px; font-size: 2px; font-weight: bold; } `, fixed: ` a { height: 1px; width: 2px; font-size: 2px; font-weight: bold; } `, message: messages.rejectedEmptyLineBefore('font-weight'), }, ], });