Skip to content

Commit

Permalink
add test cases for sass and include necessary sass test files
Browse files Browse the repository at this point in the history
DCO 1.1 Signed-off-by: Saptarshi Dutta <saptarshidutta31@yahoo.co.in>
  • Loading branch information
saptarshi authored and DanPurdy committed Aug 8, 2016
1 parent 3404252 commit 08fc494
Show file tree
Hide file tree
Showing 12 changed files with 142 additions and 0 deletions.
106 changes: 106 additions & 0 deletions tests/ruleToggler.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ var generateToggledRules = function (filename) {

describe('rule toggling', function () {
describe('getToggledRules', function () {
//////////////////////////////
// SCSS syntax tests
//////////////////////////////
it('should allow all rules to be disabled', function () {
assert(deepEqual(generateToggledRules('ruleToggler-disable-all.scss'), {
globalEnable: [[false, 1, 1]],
Expand Down Expand Up @@ -120,6 +123,109 @@ describe('rule toggling', function () {
}
}) === true);
});

//////////////////////////////
// SASS syntax tests
//////////////////////////////
it('should allow all rules to be disabled', function () {
assert(deepEqual(generateToggledRules('ruleToggler-disable-all.sass'), {
globalEnable: [[false, 1, 1]],
ruleEnable: {}
}) === true);
});
it('should allow all rules to be disabled then re-enabled', function () {
var ruleToggles = generateToggledRules('ruleToggler-disable-all-then-reenable.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [
[false, 1, 1],
[true, 3, 1]
],
ruleEnable: {}
}) === true);
});
it('should allow a single rule to be disabled', function () {
assert(deepEqual(generateToggledRules('ruleToggler-disable-a-rule.sass'), {
globalEnable: [],
ruleEnable: {
a: [[false, 1, 1]]
}
}) === true);
});
it('should allow multiple rules to be disabled', function () {
assert(deepEqual(generateToggledRules('ruleToggler-disable-multiple-rules.sass'), {
globalEnable: [],
ruleEnable: {
a: [[false, 1, 1]],
b: [[false, 1, 1]],
c: [[false, 1, 1]],
d: [[false, 1, 1]]
}
}) === true);
});
it('should be able to disable a single line', function () {
var ruleToggles = generateToggledRules('ruleToggler-disable-a-line.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [],
ruleEnable: {
a: [[false, 2, 1], [true, 3, 1]]
}
}) === true);
});
it('should be able to disable a block of code', function () {
var ruleToggles = generateToggledRules('ruleToggler-disable-a-block.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [],
ruleEnable: {
a: [[false, 2, 1], [true, 2, 32]]
}
}) === true);
});
it('should be able to enable a disabled rule', function () {
var ruleToggles = generateToggledRules('ruleToggler-disable-then-enable.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [],
ruleEnable: {
a: [[false, 2, 5], [true, 4, 5]]
}
}) === true);
});
it('should ignore comments that don\'t fit known formats', function () {
var ruleToggles = generateToggledRules('ruleToggler-ignore-unknown.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [],
ruleEnable: {}
}) === true);
});
it('should ignore empty files', function () {
var ruleToggles = generateToggledRules('empty-file.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [],
ruleEnable: {}
}) === true);
});
it('should ignore empty comments', function () {
var ruleToggles = generateToggledRules('ruleToggler-empty-comment.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [],
ruleEnable: {}
}) === true);
});
it('should be ordered', function () {
var ruleToggles = generateToggledRules('ruleToggler-guarantee-order.sass');
assert(deepEqual(ruleToggles, {
globalEnable: [],
ruleEnable: {
a: [[false, 2, 1],
[false, 2, 5],
[true, 5, 20],
[false, 8, 1],
[false, 8, 5],
[true, 11, 20],
[false, 14, 5],
[false, 15, 5]]
}
}) === true);
});
});
describe('isResultEnabled', function () {
it('should disable all rules if global is disabled', function () {
Expand Down
Empty file added tests/sass/empty-file.sass
Empty file.
2 changes: 2 additions & 0 deletions tests/sass/ruleToggler-disable-a-block.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
p
// sass-lint:disable-block a
2 changes: 2 additions & 0 deletions tests/sass/ruleToggler-disable-a-line.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
p
border-color: red // sass-lint:disable-line a
1 change: 1 addition & 0 deletions tests/sass/ruleToggler-disable-a-rule.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// sass-lint:disable a
3 changes: 3 additions & 0 deletions tests/sass/ruleToggler-disable-all-then-reenable.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// sass-lint:disable-all
// sass-lint:enable-all
1 change: 1 addition & 0 deletions tests/sass/ruleToggler-disable-all.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// sass-lint:disable-all
1 change: 1 addition & 0 deletions tests/sass/ruleToggler-disable-multiple-rules.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// sass-lint:disable a b, c d
5 changes: 5 additions & 0 deletions tests/sass/ruleToggler-disable-then-enable.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
p
// sass-lint:disable a
border: none
// sass-lint:enable a
color: blue
2 changes: 2 additions & 0 deletions tests/sass/ruleToggler-empty-comment.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
p
/**/
17 changes: 17 additions & 0 deletions tests/sass/ruleToggler-guarantee-order.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
p
// sass-lint:disable a
border: 0
// sass-lint:disable-block a
font-size: 100%

a
// sass-lint:disable a
border: 0
// sass-lint:disable-block a
font-size: 100%

li
/* sass-lint:disable a
/* sass-lint:disable a
border: 0
font-size: 100%
2 changes: 2 additions & 0 deletions tests/sass/ruleToggler-ignore-unknown.sass
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
p
//sass-lint:random a

0 comments on commit 08fc494

Please sign in to comment.