Skip to content

Commit f14c95e

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 1abe2ba commit f14c95e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

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

+36
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,42 @@ class bar {
140140
end
141141
end
142142

143+
describe 'parsing puppet plans', if: TEST_PUPPET_PLANS do
144+
# The parsing code actually checks this and sets a global (Puppet[:tasks]).
145+
# Plan parsing will fail if it hasn't yet encountered a file under plans/.
146+
let(:file) { 'plans/test.pp' }
147+
let(:source) { <<~'SOURCE' }
148+
# A simple plan.
149+
# @param param1 First param.
150+
# @param param2 Second param.
151+
# @param param3 Third param.
152+
plan plann(String $param1, $param2, Integer $param3 = 1) {
153+
}
154+
SOURCE
155+
156+
it 'parses the puppet plan statement' do
157+
spec_subject.parse
158+
expect(spec_subject.enumerator.size).to eq(1)
159+
statement = spec_subject.enumerator.first
160+
expect(statement).to be_a(PuppetStrings::Yard::Parsers::Puppet::PlanStatement)
161+
expect(statement.name).to eq('plann')
162+
expect(statement.source).to eq(source.sub(%r{\A.*?\n([^#])}m, '\1').chomp)
163+
expect(statement.file).to eq(file)
164+
expect(statement.line).to eq(5)
165+
expect(statement.docstring).to eq('A simple plan.')
166+
expect(statement.parameters.size).to eq(3)
167+
expect(statement.parameters[0].name).to eq('param1')
168+
expect(statement.parameters[0].type).to eq('String')
169+
expect(statement.parameters[0].value).to be_nil
170+
expect(statement.parameters[1].name).to eq('param2')
171+
expect(statement.parameters[1].type).to be_nil
172+
expect(statement.parameters[1].value).to be_nil
173+
expect(statement.parameters[2].name).to eq('param3')
174+
expect(statement.parameters[2].type).to eq('Integer')
175+
expect(statement.parameters[2].value).to eq('1')
176+
end
177+
end
178+
143179
describe 'parsing puppet functions', if: TEST_PUPPET_FUNCTIONS do
144180
let(:source) do
145181
<<SOURCE

0 commit comments

Comments
 (0)