diff --git a/Gemfile b/Gemfile index 6911dc4d..e4772fad 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,6 @@ gem 'ruby-progressbar', '>=1.6.0' group :test do gem 'webmock', '>=1.17.2' gem 'simplecov' - gem 'rspec', '~>3.0' + gem 'rspec', '>=3.0' gem 'rspec-its' end diff --git a/lib/common/collections/wp_users/output.rb b/lib/common/collections/wp_users/output.rb index 7d04733e..c7000dbb 100644 --- a/lib/common/collections/wp_users/output.rb +++ b/lib/common/collections/wp_users/output.rb @@ -38,6 +38,7 @@ class WpUsers < WpItems junk = get_equal_string_end(display_names) unless junk.nil? or junk.empty? self.each do |u| + u.display_name ||= '' u.display_name = u.display_name.sub(/#{Regexp.escape(junk)}$/, '') end end diff --git a/spec/lib/common/collections/wp_users/output_spec.rb b/spec/lib/common/collections/wp_users/output_spec.rb index eed376c0..1873d960 100644 --- a/spec/lib/common/collections/wp_users/output_spec.rb +++ b/spec/lib/common/collections/wp_users/output_spec.rb @@ -25,19 +25,19 @@ describe 'WpUsers::Output' do subject.push(@input) subject.flatten! subject.remove_junk_from_display_names - expect(subject).to be === @expected + expect(subject).to eq @expected end - it 'should return an empty array' do + it 'returns an empty array' do @expected = @input end - it 'should return input object' do + it 'returns input object' do @input.push(WpUser.new(nil)) @expected = @input end - it 'should return input object' do + it 'returns input object' do @input.push(WpUser.new('')) @expected = @input end @@ -50,23 +50,37 @@ describe 'WpUsers::Output' do @expected.push(WpUser.new('', login: '', id: 2, display_name: 'ijrjd')) end - it 'should return unmodified input object' do + it 'returns unmodified input object' do @input.push(WpUser.new('', login: '', id: 1, display_name: 'lkjh asdfa')) @input.push(WpUser.new('', login: '', id: 2, display_name: 'ijrjd asdf')) @expected = @input end - it 'should return input object' do + it 'returns input object' do @input.push(WpUser.new('', login: '', id: 1, display_name: 'lkjh asdf')) @expected = @input end - it 'should return an empty display_name' do + it 'returns an empty display_name' do @input.push(WpUser.new('', login: '', id: 1, display_name: 'lkhj asdf')) @input.push(WpUser.new('', login: '', id: 2, display_name: 'lkhj asdf')) @expected = WpUsers.new(0) @expected.push(WpUser.new('', login: '', id: 1, display_name: '')) @expected.push(WpUser.new('', login: '', id: 2, display_name: '')) end + + context 'when a user has no display_name' do + it 'returns an empty display_name' do + @input.push(WpUser.new('', login: '', id: 1, display_name: 'lkhj asdf')) + @input.push(WpUser.new('', login: '', id: 2, display_name: 'lkhj asdf')) + @input.push(WpUser.new('', login: '', id: 3)) + + @expected = WpUsers.new(0) + + (1..3).each do |id| + @expected.push(WpUser.new('', login: '', id: id, display_name: '')) + end + end + end end end