Skip to content

Commit

Permalink
Merge pull request #333 from Tofandel/patch-2
Browse files Browse the repository at this point in the history
fix(border-zero): Resolver strips important when modifying node content
  • Loading branch information
srowhani authored Aug 27, 2020
2 parents d37cc47 + 52453e2 commit da131c4
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 11 deletions.
1 change: 1 addition & 0 deletions src/helpers/get-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const defaultSearchPlaces = (moduleName: string) => [
];

export function loadDefaults(): ConfigOpts {
// @ts-ignore
return safeLoad(
readFileSync(require.resolve('../config/default.yml'), {
encoding: 'utf8',
Expand Down
11 changes: 8 additions & 3 deletions src/resolvers/border-zero.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,14 @@ export default class BorderZero extends BaseResolver {
}

public fix(): Node {
return this.traverse(
(node: Node) => (node.content = String(this.convention)),
);
return this.traverse((node: Node) => {
const ident = node.first('ident');
if (ident) {
ident.content = String(this.convention);
} else {
node.content = String(this.convention);
}
});
}

private traverse(callback: (node: Node) => void): Node {
Expand Down
8 changes: 8 additions & 0 deletions test/sass/border-zero.sass
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,11 @@

.norf
border: 1px


.faz
border: 0 !important


.fax
border: none !important
8 changes: 8 additions & 0 deletions test/sass/border-zero.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@
border: 1px;
}

.faz {
border: 0 !important;
}

.fax {
border: none !important;
}

.norf {
// sass-lint:disable border-zero
border: none;
Expand Down
22 changes: 14 additions & 8 deletions test/src/resolvers/border-zero.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,16 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);
const postResolve = detect(ast.toString(), ValidFileType.scss, options);

expect(preResolve.warningCount).toBe(3);
expect(preResolve.warningCount).toBe(4);
expect(postResolve.warningCount).toBe(0);
});

it('preserves important', () => {
const filename = 'test/sass/border-zero.scss';
const { ast } = resolveFirst(filename, options);
expect(ast.toString()).toContain('border: 0 !important;');
});

it('content not treated as falsey when set zero', () => {
const filename = 'test/sass/border-zero.scss';
const { ast } = resolveFirst(filename, options);
Expand All @@ -36,7 +42,7 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);
const postResolve = detect(ast.toString(), ValidFileType.scss, options);

expect(preResolve.warningCount).toBe(3);
expect(preResolve.warningCount).toBe(4);
expect(postResolve.warningCount).toBe(0);
});
});
Expand All @@ -55,7 +61,7 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);

const postResolve = detect(ast.toString(), ValidFileType.scss, options);
expect(preResolve.warningCount).toBe(2);
expect(preResolve.warningCount).toBe(3);
expect(postResolve.warningCount).toBe(0);
});
});
Expand All @@ -74,7 +80,7 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);
const postResolve = detect(ast.toString(), ValidFileType.scss, options);

expect(preResolve.warningCount).toBe(4);
expect(preResolve.warningCount).toBe(5);
expect(postResolve.warningCount).toBe(0);
});
});
Expand All @@ -97,7 +103,7 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);
const postResolve = detect(ast.toString(), ValidFileType.sass, options);

expect(preResolve.warningCount).toBe(3);
expect(preResolve.warningCount).toBe(4);
expect(postResolve.warningCount).toBe(0);
});
});
Expand All @@ -109,7 +115,7 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);
const postResolve = detect(ast.toString(), ValidFileType.sass, options);

expect(preResolve.warningCount).toBe(3);
expect(preResolve.warningCount).toBe(4);
expect(postResolve.warningCount).toBe(0);
});
});
Expand All @@ -128,7 +134,7 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);
const postResolve = detect(ast.toString(), ValidFileType.sass, options);

expect(preResolve.warningCount).toBe(2);
expect(preResolve.warningCount).toBe(3);
expect(postResolve.warningCount).toBe(0);
});
});
Expand All @@ -147,7 +153,7 @@ describe('border-zero', () => {
const preResolve = lint(filename, options);
const postResolve = detect(ast.toString(), ValidFileType.sass, options);

expect(preResolve.warningCount).toBe(4);
expect(preResolve.warningCount).toBe(5);
expect(postResolve.warningCount).toBe(0);
});
});
Expand Down

0 comments on commit da131c4

Please sign in to comment.