@@ -135,6 +135,40 @@ class bar {
135
135
end
136
136
end
137
137
138
+ describe 'parsing puppet plans' , if : TEST_PUPPET_PLANS do
139
+ let ( :source ) { <<SOURCE
140
+ # A simple plan.
141
+ # @param param1 First param.
142
+ # @param param2 Second param.
143
+ # @param param3 Third param.
144
+ plan plann(String $param1, $param2, Integer $param3 = 1) {
145
+ }
146
+ SOURCE
147
+ }
148
+
149
+ it 'should parse the puppet plan statement' do
150
+ subject . parse
151
+ expect ( subject . enumerator . size ) . to eq ( 1 )
152
+ statement = subject . enumerator . first
153
+ expect ( statement ) . to be_a ( PuppetStrings ::Yard ::Parsers ::Puppet ::PlanStatement )
154
+ expect ( statement . name ) . to eq ( 'plann' )
155
+ expect ( statement . source ) . to eq ( source . sub ( /\A .*?\n ([^#])/m , '\1' ) . chomp )
156
+ expect ( statement . file ) . to eq ( file )
157
+ expect ( statement . line ) . to eq ( 5 )
158
+ expect ( statement . docstring ) . to eq ( 'A simple plan.' )
159
+ expect ( statement . parameters . size ) . to eq ( 3 )
160
+ expect ( statement . parameters [ 0 ] . name ) . to eq ( 'param1' )
161
+ expect ( statement . parameters [ 0 ] . type ) . to eq ( 'String' )
162
+ expect ( statement . parameters [ 0 ] . value ) . to be_nil
163
+ expect ( statement . parameters [ 1 ] . name ) . to eq ( 'param2' )
164
+ expect ( statement . parameters [ 1 ] . type ) . to be_nil
165
+ expect ( statement . parameters [ 1 ] . value ) . to be_nil
166
+ expect ( statement . parameters [ 2 ] . name ) . to eq ( 'param3' )
167
+ expect ( statement . parameters [ 2 ] . type ) . to eq ( 'Integer' )
168
+ expect ( statement . parameters [ 2 ] . value ) . to eq ( '1' )
169
+ end
170
+ end
171
+
138
172
describe 'parsing puppet functions' , if : TEST_PUPPET_FUNCTIONS do
139
173
let ( :source ) { <<SOURCE
140
174
notice hello
0 commit comments