11"use strict" ;
22
33var tap = require ( 'tap' ) ;
4+ var pa = require ( '../core/lib/pattern_assembler' ) ;
5+ var Pattern = require ( '../core/lib/object_factory' ) . Pattern ;
6+ var CompileState = require ( '../core/lib/object_factory' ) . CompileState ;
7+ var PatternGraph = require ( '../core/lib/pattern_graph' ) . PatternGraph ;
8+
9+ var fs = require ( 'fs-extra' ) ;
410
511var ph = require ( '../core/lib/parameter_hunter' ) ;
612
13+
714//setup current pattern from what we would have during execution
815function currentPatternClosure ( ) {
916 return {
@@ -48,9 +55,11 @@ function patternlabClosure() {
4855 debug : false
4956 } ,
5057 data : {
51- description : 'Not a quote from a smart man'
58+ description : 'Not a quote from a smart man' ,
59+ link : { }
5260 } ,
53- partials : { }
61+ partials : { } ,
62+ graph : PatternGraph . empty ( )
5463 }
5564} ;
5665
@@ -65,6 +74,57 @@ tap.test('parameter hunter finds and extends templates', function(test) {
6574 test . end ( ) ;
6675} ) ;
6776
77+ tap . test ( 'parameter hunter finds partials with their own parameters and renders them too' , function ( test ) {
78+ //arrange
79+
80+ var pattern_assembler = new pa ( ) ;
81+ var patterns_dir = './test/files/_patterns/' ;
82+
83+ var pl = patternlabClosure ( ) ;
84+
85+
86+ var aPattern = new Pattern ( '00-test/539-a.mustache' ) ;
87+ aPattern . template = fs . readFileSync ( patterns_dir + '00-test/539-a.mustache' , 'utf8' ) ;
88+ aPattern . extendedTemplate = aPattern . template ;
89+ aPattern . stylePartials = pattern_assembler . find_pattern_partials_with_style_modifiers ( aPattern ) ;
90+ aPattern . parameteredPartials = pattern_assembler . find_pattern_partials_with_parameters ( aPattern ) ;
91+
92+ var bPattern = new Pattern ( '00-test/539-b.mustache' ) ;
93+ bPattern . template = fs . readFileSync ( patterns_dir + '00-test/539-b.mustache' , 'utf8' ) ;
94+ bPattern . extendedTemplate = bPattern . template ;
95+ bPattern . stylePartials = pattern_assembler . find_pattern_partials_with_style_modifiers ( bPattern ) ;
96+ bPattern . parameteredPartials = pattern_assembler . find_pattern_partials_with_parameters ( bPattern ) ;
97+
98+ var cPattern = new Pattern ( '00-test/539-c.mustache' ) ;
99+ cPattern . template = fs . readFileSync ( patterns_dir + '00-test/539-c.mustache' , 'utf8' ) ;
100+ cPattern . extendedTemplate = cPattern . template ;
101+ cPattern . stylePartials = pattern_assembler . find_pattern_partials_with_style_modifiers ( cPattern ) ;
102+ cPattern . parameteredPartials = pattern_assembler . find_pattern_partials_with_parameters ( cPattern ) ;
103+
104+ pattern_assembler . addPattern ( aPattern , pl ) ;
105+ pattern_assembler . addPattern ( bPattern , pl ) ;
106+ pattern_assembler . addPattern ( cPattern , pl ) ;
107+
108+ var currentPattern = cPattern ;
109+ var parameter_hunter = new ph ( ) ;
110+
111+ //act
112+ parameter_hunter . find_parameters ( currentPattern , pl ) ;
113+
114+ //assert
115+ test . equals ( currentPattern . extendedTemplate ,
116+ `<b>c</b>
117+ <b>b</b>
118+ <i>b!</i>
119+ <b>a</b>
120+ <i>a!</i>
121+
122+
123+ ` ) ;
124+
125+ test . end ( ) ;
126+ } ) ;
127+
68128tap . test ( 'parameter hunter finds and extends templates with mixed parameter and global data' , function ( test ) {
69129 var currentPattern = currentPatternClosure ( ) ;
70130 var patternlab = patternlabClosure ( ) ;
0 commit comments