Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 83 additions & 11 deletions __tests__/index.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -42,27 +42,99 @@ describe('flags warnings with invalid scss', () => {
assert.equal(result.errored, true);
});

it('flags one warning', () => {
assert.equal(result.results[0].warnings.length, 1);
it('flags four warnings', () => {
assert.equal(result.results[0].warnings.length, 4);
});

it('correct warning text', () => {
assert.equal(result.results[0].warnings[0].text, 'Expected variable to be kebab-case');
it('correct warning text (function name)', () => {
assert.equal(
result.results[0].warnings[0].text,
'Expected function name "FOO" to be kebab-case (scss/at-function-pattern)',
);
});

it('correct rule flagged', () => {
assert.equal(result.results[0].warnings[0].rule, 'scss/dollar-variable-pattern');
it('correct rule flagged (function name)', () => {
assert.equal(result.results[0].warnings[0].rule, 'scss/at-function-pattern');
});

it('correct severity flagged', () => {
it('correct severity flagged (function name)', () => {
assert.equal(result.results[0].warnings[0].severity, 'error');
});

it('correct line number', () => {
assert.equal(result.results[0].warnings[0].line, 1);
it('correct line number (function name)', () => {
assert.equal(result.results[0].warnings[0].line, 7);
});

it('correct column number', () => {
assert.equal(result.results[0].warnings[0].column, 1);
it('correct column number (function name)', () => {
assert.equal(result.results[0].warnings[0].column, 11);
});

it('correct warning text (mixin name)', () => {
assert.equal(
result.results[0].warnings[1].text,
'Expected mixin name "FOO" to be kebab-case (scss/at-mixin-pattern)',
);
});

it('correct rule flagged (mixin name)', () => {
assert.equal(result.results[0].warnings[1].rule, 'scss/at-mixin-pattern');
});

it('correct severity flagged (mixin name)', () => {
assert.equal(result.results[0].warnings[1].severity, 'error');
});

it('correct line number (mixin name)', () => {
assert.equal(result.results[0].warnings[1].line, 11);
});

it('correct column number (mixin name)', () => {
assert.equal(result.results[0].warnings[1].column, 8);
});

it('correct warning text (variable name)', () => {
assert.equal(
result.results[0].warnings[2].text,
'Expected variable name "FOO" to be kebab-case (scss/dollar-variable-pattern)',
);
});

it('correct rule flagged (variable name)', () => {
assert.equal(result.results[0].warnings[2].rule, 'scss/dollar-variable-pattern');
});

it('correct severity flagged (variable name)', () => {
assert.equal(result.results[0].warnings[2].severity, 'error');
});

it('correct line number (variable name)', () => {
assert.equal(result.results[0].warnings[2].line, 1);
});

it('correct column number (variable name)', () => {
assert.equal(result.results[0].warnings[2].column, 1);
});

it('correct warning text (placeholder name)', () => {
assert.equal(
result.results[0].warnings[3].text,
'Expected placeholder name "FOO" to be kebab-case (scss/percent-placeholder-pattern)',
);
});

it('correct rule flagged (placeholder name)', () => {
assert.equal(result.results[0].warnings[3].rule, 'scss/percent-placeholder-pattern');
});

it('correct severity flagged (placeholder name)', () => {
assert.equal(result.results[0].warnings[3].severity, 'error');
});

it('correct line number (placeholder name)', () => {
assert.equal(result.results[0].warnings[3].line, 3);
});

it('correct column number (placeholder name)', () => {
assert.equal(result.results[0].warnings[3].column, 1);
});
});
12 changes: 12 additions & 0 deletions __tests__/invalid.scss
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
$FOO: 1;

%FOO {
// Do nothing
}

@function FOO() {
// Do nothing
}

@mixin FOO {
// Do nothing
}
8 changes: 4 additions & 4 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ module.exports = {
'scss/at-function-pattern': [
'^(-?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',
{
message: 'Expected function name to be kebab-case',
message: (name) => `Expected function name "${name}" to be kebab-case`,
},
],
'scss/at-if-closing-brace-newline-after': 'always-last-in-chain',
Expand All @@ -37,7 +37,7 @@ module.exports = {
'scss/at-mixin-pattern': [
'^(-?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',
{
message: 'Expected mixin name to be kebab-case',
message: (name) => `Expected mixin name "${name}" to be kebab-case`,
},
],
'scss/at-rule-conditional-no-parentheses': true,
Expand All @@ -53,7 +53,7 @@ module.exports = {
'scss/dollar-variable-pattern': [
'^(-?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',
{
message: 'Expected variable to be kebab-case',
message: (name) => `Expected variable name "${name}" to be kebab-case`,
},
],
'scss/double-slash-comment-empty-line-before': [
Expand All @@ -67,7 +67,7 @@ module.exports = {
'scss/percent-placeholder-pattern': [
'^(-?[a-z][a-z0-9]*)(-[a-z0-9]+)*$',
{
message: 'Expected placeholder to be kebab-case',
message: (name) => `Expected placeholder name "${name}" to be kebab-case`,
},
],
},
Expand Down
Loading
Loading