Skip to content

Commit d5801a6

Browse files
committed
Improve test coverage
1 parent eb11f02 commit d5801a6

35 files changed

Lines changed: 148 additions & 203 deletions

lib/autoprefixer.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ function timeCapsule(result, prefixes) {
2121
return;
2222
}
2323

24+
/* istanbul ignore next */
2425
result.warn(
2526
'Greetings, time traveller. ' +
2627
'We are in the golden age of prefix-less CSS, ' +

lib/hacks/break-props.js

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@ class BreakProps extends Declaration {
1212
* Change name for -webkit- and -moz- prefix
1313
*/
1414
prefixed(prop, prefix) {
15-
if (prefix === '-webkit-') {
16-
return `-webkit-column-${prop}`;
17-
} else if (prefix === '-moz-') {
15+
if (prefix === '-moz-') {
1816
return `page-${prop}`;
1917
} else {
20-
return super.prefixed(prop, prefix);
18+
return `${prefix}column-${prop}`;
2119
}
2220
}
2321

@@ -29,20 +27,18 @@ class BreakProps extends Declaration {
2927
return 'break-inside';
3028
} else if (prop.indexOf('before') !== -1) {
3129
return 'break-before';
32-
} else if (prop.indexOf('after') !== -1) {
30+
} else {
3331
return 'break-after';
3432
}
35-
return undefined;
3633
}
3734

3835
/**
3936
* Change prefixed value for avoid-column and avoid-page
4037
*/
4138
set(decl, prefix) {
42-
const v = decl.value;
4339
if (decl.prop === 'break-inside' &&
44-
v === 'avoid-column' ||
45-
v === 'avoid-page'
40+
decl.value === 'avoid-column' ||
41+
decl.value === 'avoid-page'
4642
) {
4743
decl.value = 'avoid';
4844
}

lib/hacks/display-flex.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,8 @@ class DisplayFlex extends Value {
5858
*/
5959
old(prefix) {
6060
const prefixed = this.prefixed(prefix);
61-
if (prefixed) {
62-
return new OldValue(this.name, prefixed);
63-
}
64-
return undefined;
61+
if (!prefixed) return undefined;
62+
return new OldValue(this.name, prefixed);
6563
}
6664

6765
}

lib/hacks/filter-value.js

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,4 @@
1-
const OldValue = require('../old-value');
21
const Value = require('../value');
3-
const utils = require('../utils');
4-
5-
class OldFilterValue extends OldValue {
6-
7-
/**
8-
* Clean -webkit-filter from properties list
9-
*/
10-
clean(decl) {
11-
decl.value = utils.editList(decl.value, props => {
12-
if (props.every(i => i.indexOf(this.unprefixed) !== 0)) {
13-
return props;
14-
}
15-
return props.filter(i => i.indexOf(this.prefixed) === -1);
16-
});
17-
}
18-
19-
}
202

213
class FilterValue extends Value {
224

@@ -29,28 +11,6 @@ class FilterValue extends Value {
2911
}
3012
}
3113

32-
/**
33-
* Use prefixed and unprefixed filter for WebKit
34-
*/
35-
replace(value, prefix) {
36-
if (prefix === '-webkit-' && value.indexOf('filter(') === -1) {
37-
if (value.indexOf('-webkit-filter') === -1) {
38-
return super.replace(value, prefix) + ', ' + value;
39-
} else {
40-
return value;
41-
}
42-
} else {
43-
return super.replace(value, prefix);
44-
}
45-
}
46-
47-
/**
48-
* Clean -webkit-filter
49-
*/
50-
old(prefix) {
51-
return new OldFilterValue(this.name, prefix + this.name);
52-
}
53-
5414
}
5515

5616
module.exports = FilterValue;

lib/hacks/flex-values.js

Lines changed: 0 additions & 31 deletions
This file was deleted.

lib/hacks/gradient.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,7 @@ class Gradient extends Value {
8989
* Normalize angle
9090
*/
9191
normalize(nodes) {
92-
if (!nodes[0]) {
93-
return nodes;
94-
}
92+
if (!nodes[0]) return nodes;
9593

9694
if (/-?\d+(.\d+)?grad/.test(nodes[0].value)) {
9795
nodes[0].value = this.normalizeUnit(nodes[0].value, 400);
@@ -159,7 +157,7 @@ class Gradient extends Value {
159157
this.fixDirection(params);
160158
} else if (params[0].value.indexOf('deg') !== -1) {
161159
this.fixAngle(params);
162-
} else if (params[2].value === 'at') {
160+
} else if (params[2] && params[2].value === 'at') {
163161
this.fixRadial(params);
164162
}
165163
}
@@ -238,13 +236,11 @@ class Gradient extends Value {
238236
if (nodes[0] && nodes[0].value.indexOf('deg') !== -1) {
239237
return false;
240238
}
241-
if (string.indexOf('px') !== -1) {
242-
return false;
243-
}
244-
if (string.indexOf('-corner') !== -1) {
245-
return false;
246-
}
247-
if (string.indexOf('-side') !== -1) {
239+
if (
240+
string.indexOf('px') !== -1 ||
241+
string.indexOf('-corner') !== -1 ||
242+
string.indexOf('-side') !== -1
243+
) {
248244
return false;
249245
}
250246

lib/hacks/grid-area.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@ class GridArea extends Declaration {
99
* Translate grid-area to separate -ms- prefixed properties
1010
*/
1111
insert(decl, prefix, prefixes) {
12-
if (prefix !== '-ms-') {
13-
return super.insert(decl, prefix, prefixes);
14-
}
12+
if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes);
1513

16-
if (!shorthand.isAlreadyApplied(decl, '-ms-grid-row')) {
14+
if (decl.parent.some(i => i.prop === '-ms-grid-row')) {
1715
return undefined;
1816
}
1917

lib/hacks/grid-end.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ class GridEnd extends Declaration {
2525
* Change property name for IE
2626
*/
2727
prefixed(prop, prefix) {
28+
let result = super.prefixed(prop, prefix);
2829
if (prefix === '-ms-') {
29-
return prefix + prop.replace('-end', '-span');
30-
} else {
31-
return super.prefixed(prop, prefix);
30+
result = result.replace('-end', '-span');
3231
}
32+
return result;
3333
}
3434

3535
/**

lib/hacks/grid-row-column.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,9 @@ class GridRowColumn extends Declaration {
99
* Translate grid-row / grid-column to separate -ms- prefixed properties
1010
*/
1111
insert(decl, prefix, prefixes) {
12-
if (prefix !== '-ms-') {
13-
return super.insert(decl, prefix, prefixes);
14-
}
15-
16-
if (!shorthand.isAlreadyApplied(decl, '-ms-' + decl.prop)) {
17-
return undefined;
18-
}
12+
if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes);
1913

2014
const values = shorthand.parse(decl);
21-
2215
const [start, span] = shorthand.translate(values, 0, 1);
2316

2417
if (start) {

lib/hacks/grid-shorthand.js

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ function convert(value) {
1919
return [false, false];
2020
}
2121

22-
/**
23-
* Translate values to start-span
24-
*/
2522
function translate(values, startIndex, endIndex) {
2623
const startValue = values[startIndex];
2724
const endValue = values[endIndex];
@@ -90,9 +87,6 @@ function parseTemplateShortcut(decl) {
9087
return values;
9188
}
9289

93-
/**
94-
* Recursive part of changeRepeat
95-
*/
9690
function walkRepeat(node) {
9791
const fixed = [];
9892
for (const i of node.nodes) {
@@ -113,25 +107,6 @@ function walkRepeat(node) {
113107
node.nodes = fixed;
114108
}
115109

116-
117-
/**
118-
* Check if prop is already present
119-
*/
120-
function isAlreadyApplied(decl, prop) {
121-
for (const i in decl.parent.nodes) {
122-
if (decl.parent.nodes.hasOwnProperty(i)) {
123-
const element = decl.parent.nodes[i];
124-
if (element.prop === prop) {
125-
return false;
126-
}
127-
}
128-
}
129-
return true;
130-
}
131-
132-
/**
133-
* IE repeating syntax
134-
*/
135110
function changeRepeat(value) {
136111
const ast = parser(value);
137112
walkRepeat(ast);
@@ -142,6 +117,5 @@ module.exports = {
142117
parse,
143118
translate,
144119
changeRepeat,
145-
isAlreadyApplied,
146120
parseTemplateShortcut
147121
};

0 commit comments

Comments
 (0)