Skip to content

Commit b9ee540

Browse files
author
e2tha-e
committed
unit test
1 parent 2031290 commit b9ee540

File tree

6 files changed

+96
-31
lines changed

6 files changed

+96
-31
lines changed

Gruntfile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ module.exports = function(grunt) {
132132
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
133133

134134
//load the patternlab task
135-
grunt.task.loadTasks('./builder/');
135+
grunt.task.loadTasks('./builder');
136136

137137
//if you choose to use scss, or any preprocessor, you can add it here
138138
grunt.registerTask('default', ['patternlab', /*'sass',*/ 'copy:main']);

builder/pattern_assembler.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
list_item_hunter = new lih(),
134134
pseudopattern_hunter = new pph();
135135

136+
//find current pattern in patternlab object using var file as a key
136137
var currentPattern, i;
137138
for(i = 0; i < patternlab.patterns.length; i++){
138139
if(patternlab.patterns[i].abspath === file){

builder/patternlab.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ var patternlab_engine = function () {
7070

7171
pattern_assembler.combine_listItems(patternlab);
7272

73+
//diveSync once to perform iterative populating of patternlab object
7374
diveSync(patterns_dir, {
7475
filter: function(path, dir) {
7576
if(dir){
@@ -90,6 +91,8 @@ var patternlab_engine = function () {
9091
pattern_assembler.process_pattern_iterative(file.substring(2), patternlab);
9192
});
9293

94+
//diveSync again to recursively include partials, filling out the
95+
//extendedTemplate property of the patternlab.patterns elements
9396
diveSync(patterns_dir, {
9497
filter: function(path, dir) {
9598
if(dir){

builder/patternlab_gulp.js

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

test/object_factory_tests.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55

66
exports['oPattern initialization'] = {
77
'test oPattern initializes correctly' : function(test){
8-
var p = new of.oPattern('00-atoms/00-global', '00-colors.mustache', { d: 123});
8+
var p = new of.oPattern('source/_patterns/00-atoms/00-global/00-colors.mustache', '00-atoms/00-global', '00-colors.mustache', { d: 123});
99
test.equals(p.name, '00-atoms-00-global-00-colors');
10+
test.equals(p.abspath, 'source/_patterns/00-atoms/00-global/00-colors.mustache');
1011
test.equals(p.subdir, '00-atoms/00-global');
1112
test.equals(p.fileName, '00-colors');
1213
test.equals(p.jsonFileData.d, 123);
@@ -59,4 +60,4 @@
5960
}
6061
};
6162

62-
}());
63+
}());

test/pattern_assembler_tests.js

Lines changed: 88 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,94 @@
3636
test.equals(results[1], '{{> 01-molecules/06-components/02-single-comment(description: \'A life is like a garden. Perfect moments can be had, but not preserved, except in memory.\') }}');
3737

3838
test.done();
39-
}
39+
},
4040

41-
};
41+
'process_pattern_recursive recursively includes partials' : function(test){
42+
43+
//tests inclusion of partial that will be discovered by diveSync later in iteration than parent
44+
//prepare to diveSync
45+
var diveSync = require('diveSync');
46+
var fs = require('fs-extra');
47+
var pa = require('../builder/pattern_assembler');
48+
var pattern_assembler = new pa();
49+
var patternlab = {};
50+
patternlab.config = fs.readJSONSync('./config.json');
51+
patternlab.data = fs.readJSONSync('./source/_data/data.json');
52+
patternlab.listitems = fs.readJSONSync('./source/_data/listitems.json');
53+
patternlab.header = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/header.html', 'utf8');
54+
patternlab.footer = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/footer.html', 'utf8');
55+
patternlab.patterns = [];
56+
patternlab.data.link = {};
57+
patternlab.partials = {};
58+
var patterns_dir = './source/_patterns';
59+
60+
//create test partials
61+
fs.writeFileSync(patterns_dir + '/02-organisms/00-global/02-foo.mustache', '{{> organisms-bar }}');
62+
fs.writeFileSync(patterns_dir + '/02-organisms/00-global/03-bar.mustache', 'bar');
63+
64+
//diveSync once to perform iterative populating of patternlab object
65+
diveSync(patterns_dir,
66+
{
67+
filter: function(path, dir){
68+
if(dir){
69+
var remainingPath = path.replace(patterns_dir, '');
70+
var isValidPath = remainingPath.indexOf('/_') === -1;
71+
return isValidPath;
72+
}
73+
return true;
74+
}
75+
},
76+
function(err, file){
77+
//log any errors
78+
if(err){
79+
console.log(err);
80+
return;
81+
}
82+
83+
pattern_assembler.process_pattern_iterative(file.substring(2), patternlab);
84+
}
85+
);
4286

87+
//diveSync again to recursively include partials, filling out the
88+
//extendedTemplate property of the patternlab.patterns elements
89+
diveSync(patterns_dir,
90+
{
91+
filter: function(path, dir){
92+
if(dir){
93+
var remainingPath = path.replace(patterns_dir, '');
94+
var isValidPath = remainingPath.indexOf('/_') === -1;
95+
return isValidPath;
96+
}
97+
return true;
98+
}
99+
},
100+
function(err, file){
101+
//log any errors
102+
if(err){
103+
console.log(err);
104+
return;
105+
}
106+
107+
pattern_assembler.process_pattern_recursive(file.substring(2), patternlab);
108+
}
109+
);
110+
111+
//find test pattern
112+
var foo;
113+
for(var i = 0; i < patternlab.patterns.length; i++){
114+
if(patternlab.patterns[i].fileName === '02-foo'){
115+
foo = patternlab.patterns[i].extendedTemplate;
116+
break;
117+
}
118+
}
119+
120+
fs.unlinkSync(patterns_dir + '/02-organisms/00-global/02-foo.mustache');
121+
fs.unlinkSync(patterns_dir + '/02-organisms/00-global/03-bar.mustache');
122+
123+
//test that 02-foo.mustache included partial 03-bar.mustache
124+
test.equals(foo, 'bar');
125+
126+
test.done();
127+
}
128+
};
43129
}());

0 commit comments

Comments
 (0)