From 2d79fb82dd92f25b6bd1c0ea230db21e8b6cccb6 Mon Sep 17 00:00:00 2001 From: Tim Sharpe Date: Sun, 21 Sep 2014 16:26:17 -0700 Subject: [PATCH] Specs for fixing arrow_alignment issues where multiple params are on the same line --- .../check_whitespace/arrow_alignment_spec.rb | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/spec/puppet-lint/plugins/check_whitespace/arrow_alignment_spec.rb b/spec/puppet-lint/plugins/check_whitespace/arrow_alignment_spec.rb index 5c9de304..df3c52e0 100644 --- a/spec/puppet-lint/plugins/check_whitespace/arrow_alignment_spec.rb +++ b/spec/puppet-lint/plugins/check_whitespace/arrow_alignment_spec.rb @@ -445,5 +445,66 @@ class { 'lvs::base': expect(manifest).to eq(fixed) end end + + context 'multiline resource with multiple params on a line' do + let(:code) { " + user { 'test': + a => 'foo', bb => 'bar', + ccc => 'baz', + } + " } + + let(:fixed) { " + user { 'test': + a => 'foo', + bb => 'bar', + ccc => 'baz', + } + " } + + it 'should detect 2 problems' do + expect(problems).to have(2).problems + end + + it 'should fix 2 problems' do + expect(problems).to contain_fixed(msg).on_line(3).in_column(13) + expect(problems).to contain_fixed(msg).on_line(3).in_column(26) + end + + it 'should move the extra param onto its own line and realign' do + expect(manifest).to eq(fixed) + end + end + + context 'multiline resource with multiple params on a line, extra one longer' do + let(:code) { " + user { 'test': + a => 'foo', bbccc => 'bar', + ccc => 'baz', + } + " } + + let(:fixed) { " + user { 'test': + a => 'foo', + bbccc => 'bar', + ccc => 'baz', + } + " } + + it 'should detect 2 problems' do + expect(problems).to have(3).problems + end + + it 'should fix 2 problems' do + expect(problems).to contain_fixed(msg).on_line(3).in_column(13) + expect(problems).to contain_fixed(msg).on_line(3).in_column(29) + expect(problems).to contain_fixed(msg).on_line(4).in_column(15) + end + + it 'should move the extra param onto its own line and realign' do + expect(manifest).to eq(fixed) + end + end end end