|
2 | 2 | "use strict";
|
3 | 3 |
|
4 | 4 | var pa = require('../builder/pattern_assembler');
|
| 5 | + var object_factory = require('../builder/object_factory'); |
5 | 6 |
|
6 | 7 | exports['pattern_assembler'] = {
|
7 | 8 | 'find_pattern_partials finds partials' : function(test){
|
|
283 | 284 | //test that 00-foo.mustache included partial 01-bar.mustache
|
284 | 285 | test.equals(fooExtended, 'bar');
|
285 | 286 |
|
| 287 | + test.done(); |
| 288 | + }, |
| 289 | + 'processPatternRecursive - correctly replaces all stylemodifiers when multiple duplicate patterns with different stylemodifiers found' : function(test){ |
| 290 | + //arrange |
| 291 | + var fs = require('fs-extra'); |
| 292 | + var pattern_assembler = new pa(); |
| 293 | + |
| 294 | + var pl = {}; |
| 295 | + pl.config = {}; |
| 296 | + pl.data = {}; |
| 297 | + pl.data.link = {}; |
| 298 | + pl.config.debug = false; |
| 299 | + pl.patterns = []; |
| 300 | + var patterns_dir = './test/files/_patterns'; |
| 301 | + |
| 302 | + var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache'); |
| 303 | + atomPattern.template = fs.readFileSync(patterns_dir + '/00-test/03-styled-atom.mustache', 'utf8'); |
| 304 | + atomPattern.stylePartials = pattern_assembler.find_pattern_partials_with_style_modifiers(atomPattern); |
| 305 | + |
| 306 | + |
| 307 | + var groupPattern = new object_factory.oPattern('test/files/_patterns/00-test/04-group.mustache', '00-test', '04-group.mustache'); |
| 308 | + groupPattern.template = fs.readFileSync(patterns_dir + '/00-test/04-group.mustache', 'utf8'); |
| 309 | + groupPattern.stylePartials = pattern_assembler.find_pattern_partials_with_style_modifiers(groupPattern); |
| 310 | + |
| 311 | + pl.patterns.push(atomPattern); |
| 312 | + pl.patterns.push(groupPattern); |
| 313 | + |
| 314 | + //act |
| 315 | + pattern_assembler.process_pattern_recursive('test/files/_patterns/00-test/04-group.mustache', pl, {}); |
| 316 | + //assert |
| 317 | + var expectedValue = '<div class="test_group"> <span class="test_base test_1"> {{message}} </span> <span class="test_base test_2"> {{message}} </span> <span class="test_base test_3"> {{message}} </span> <span class="test_base test_4"> {{message}} </span> </div>'; |
| 318 | + test.equals(groupPattern.extendedTemplate.replace(/\s\s+/g, ' ').trim(), expectedValue.trim()); |
286 | 319 | test.done();
|
287 | 320 | }
|
288 | 321 | };
|
|
0 commit comments