1
1
"use strict" ;
2
2
3
3
var 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' ) ;
4
10
5
11
var ph = require ( '../core/lib/parameter_hunter' ) ;
6
12
13
+
7
14
//setup current pattern from what we would have during execution
8
15
function currentPatternClosure ( ) {
9
16
return {
@@ -48,9 +55,11 @@ function patternlabClosure() {
48
55
debug : false
49
56
} ,
50
57
data : {
51
- description : 'Not a quote from a smart man'
58
+ description : 'Not a quote from a smart man' ,
59
+ link : { }
52
60
} ,
53
- partials : { }
61
+ partials : { } ,
62
+ graph : PatternGraph . empty ( )
54
63
}
55
64
} ;
56
65
@@ -65,6 +74,57 @@ tap.test('parameter hunter finds and extends templates', function(test) {
65
74
test . end ( ) ;
66
75
} ) ;
67
76
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
+
68
128
tap . test ( 'parameter hunter finds and extends templates with mixed parameter and global data' , function ( test ) {
69
129
var currentPattern = currentPatternClosure ( ) ;
70
130
var patternlab = patternlabClosure ( ) ;
0 commit comments