Skip to content

Commit f76d3af

Browse files
committed
converted media_hunter into a more unit testable function
1 parent 2f5e9aa commit f76d3af

File tree

5 files changed

+36
-35
lines changed

5 files changed

+36
-35
lines changed

builder/media_hunter.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717

1818
var media_hunter = function(){
1919

20-
function findMediaQueries(patternlab){
20+
function findMediaQueries(dir, patternlab){
2121
patternlab.mediaQueries = [];
2222

23-
diveSync('./source/css', function(err, file){
23+
diveSync(dir, function(err, file){
2424
if(path.extname(file) === '.css'){
2525
var contents = fs.readFileSync(file, 'utf8');
2626
var safeContents = contents.replace("\r", " ").replace("\n", " ");
@@ -38,8 +38,8 @@
3838
}
3939

4040
return {
41-
find_media_queries: function(patternlab){
42-
findMediaQueries(patternlab);
41+
find_media_queries: function(dir, patternlab){
42+
findMediaQueries(dir, patternlab);
4343
}
4444
};
4545

builder/parameter_hunter.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
/*
2-
* patternlab-node - v0.10.0 - 2015
3-
*
1+
/*
2+
* patternlab-node - v0.10.0 - 2015
3+
*
44
* Brian Muenzenmeyer, and the web community.
5-
* Licensed under the MIT license.
6-
*
7-
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
5+
* Licensed under the MIT license.
6+
*
7+
* Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.
88
*
99
*/
1010

builder/patternlab.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ var patternlab_engine = function () {
113113
patternlab.viewAllPaths = {};
114114

115115
//find mediaQueries
116-
media_hunter.find_media_queries(patternlab);
116+
media_hunter.find_media_queries('./source/css', patternlab);
117117

118118
//build the styleguide
119119
var styleguideTemplate = fs.readFileSync('./source/_patternlab-files/styleguide.mustache', 'utf8'),

test/files/test.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@media only screen and (min-width: 35em){
2+
body{
3+
color: rebeccapurple;
4+
}
5+
}
6+
7+
@media (min-width:50em){ body{ color: grey;} }
8+
9+
@media only screen and (min-width: 70em) and (max-width: 1600px){
10+
body{
11+
color: green;
12+
}
13+
}

test/media_hunter_tests.js

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
var MediaHunter = require('../builder/media_hunter');
55

66
//all tests here run against the shipped code, and as such altering any of that can break these tests
7-
//these tests are intended to catch development regressions. one should not have a need to run tests during patternlab use.
7+
//these tests are intended to catch development regressions. one should not have a need to run tests during patternlab use.
88

99
exports['media_query hunter basic support '] = {
1010
'test media hunter finds query' : function(test){
@@ -13,52 +13,40 @@
1313
var pl = {};
1414
var mh = new MediaHunter();
1515

16-
mh.find_media_queries(pl);
16+
mh.find_media_queries('./test/files', pl);
1717

18-
test.equals(pl.mediaQueries.length, 7);
18+
test.equals(pl.mediaQueries.length, 4);
1919

2020
test.done();
21-
}
22-
};
21+
},
2322

24-
exports['media_query hunter spaces '] = {
2523
'test media hunter supports spaces in media query' : function(test){
2624

2725
//setup pl object
2826
var pl = {};
2927
var mh = new MediaHunter();
3028

31-
mh.find_media_queries(pl);
29+
mh.find_media_queries('./test/files', pl);
30+
31+
test.equals(pl.mediaQueries[0], '1600px');
3232

33-
test.equals(pl.mediaQueries[0], '24em');
33+
console.log(pl.mediaQueries);
3434

3535
test.done();
36-
}
37-
};
36+
},
3837

39-
exports['media_query hunter no spaces '] = {
4038
'test media hunter supports nospaces in media query' : function(test){
4139

4240
//setup pl object
4341
var pl = {};
4442
var mh = new MediaHunter();
4543

46-
mh.find_media_queries(pl);
47-
48-
//the last media query found in the shipped suite does not have a space
49-
//you can see this here:
44+
mh.find_media_queries('./test/files', pl);
5045

51-
//./source/css/scss/base/_global-classes.scss
52-
// .hide-large-2 {
53-
// @media all and (min-width:$bp-large-2) {
54-
// display: none;
55-
// }
56-
// }
57-
58-
test.equals(pl.mediaQueries[6], '66em');
46+
test.equals(pl.mediaQueries[2], '50em');
5947

6048
test.done();
6149
}
6250
};
6351

64-
}());
52+
}());

0 commit comments

Comments
 (0)