Null user should be used only for display purposes

private-asciicasts
Marcin Kulik 10 years ago
parent dbc18f9ce6
commit 3ced30b4f0

@ -3,7 +3,9 @@ class AsciicastDecorator < ApplicationDecorator
THUMBNAIL_WIDTH = 20
THUMBNAIL_HEIGHT = 10
decorates_association :user
def user
@user ||= UserDecorator.new(model.user || User.null)
end
def os
if user_agent.present?

@ -54,10 +54,6 @@ class Asciicast < ActiveRecord::Base
collection
end
def user
super || self.user = User.null
end
def stdout
return @stdout if @stdout
@stdout = Stdout::Buffered.new(get_stdout)

@ -240,32 +240,6 @@ describe AsciicastDecorator do
end
end
describe '#author_link' do
subject { decorator.author_link }
let(:asciicast) { double('asciicast', user: user) }
let(:user) { double('user', link: 'link') }
before do
allow(user).to receive(:decorate) { user }
end
it { should eq('link') }
end
describe '#author_img_link' do
subject { decorator.author_img_link }
let(:asciicast) { double('asciicast', user: user) }
let(:user) { double('user', img_link: 'img-link') }
before do
allow(user).to receive(:decorate) { user }
end
it { should eq('img-link') }
end
describe '#formatted_duration' do
subject { decorator.formatted_duration }

@ -54,26 +54,6 @@ describe Asciicast do
let(:asciicast) { described_class.new }
describe '#user' do
subject { asciicast.user }
context "when it has user assigned" do
let(:user) { User.new }
before do
asciicast.user = user
end
it { should be(user) }
end
context "when it doesn't have user assigned" do
it 'is a null user' do
expect(asciicast.user.temporary_username).to eq('anonymous')
end
end
end
describe '#stdout' do
context 'for single-file, JSON asciicast' do
let(:asciicast) { create(:asciicast) }

Loading…
Cancel
Save