Skip to content

Commit 7a08cb8

Browse files
committed
Add a plan test to parser_spec.rb
Previously, none of the examples in parser_spec.rb included a Puppet plan. This adds a plan and verifies that it parses correctly.
1 parent 83ef457 commit 7a08cb8

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

Diff for: spec/unit/puppet-strings/yard/parsers/puppet/parser_spec.rb

+34
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,40 @@ class bar {
135135
end
136136
end
137137

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+
138172
describe 'parsing puppet functions', if: TEST_PUPPET_FUNCTIONS do
139173
let(:source) { <<SOURCE
140174
notice hello

0 commit comments

Comments
 (0)