70 lines
1.7 KiB
Ruby
70 lines
1.7 KiB
Ruby
require 'rails_helper'
|
|
|
|
describe HomePagePresenter do
|
|
|
|
let(:presenter) { described_class.new }
|
|
|
|
describe '#asciicast' do
|
|
subject { presenter.asciicast }
|
|
|
|
before do
|
|
allow(CFG).to receive(:home_asciicast) { home_asciicast }
|
|
end
|
|
|
|
context "when home_asciicast is present" do
|
|
let(:home_asciicast) { double('home_asciicast',
|
|
decorate: decorated_asciicast) }
|
|
let(:decorated_asciicast) { double('decorated_asciicast') }
|
|
|
|
it "returns decorated asciicast" do
|
|
expect(subject).to be(decorated_asciicast)
|
|
end
|
|
end
|
|
|
|
context "when home_asciicast isn't present" do
|
|
let(:home_asciicast) { nil }
|
|
|
|
it { should be(nil) }
|
|
end
|
|
end
|
|
|
|
describe '#playback_options' do
|
|
subject { presenter.playback_options }
|
|
|
|
it "has speed set to 2.0" do
|
|
expect(subject.speed).to eq(2.0)
|
|
end
|
|
end
|
|
|
|
describe '#latest_asciicasts' do
|
|
subject { presenter.latest_asciicasts }
|
|
|
|
let(:latest) { double('latest', decorate: decorated_latest) }
|
|
let(:decorated_latest) { double('decorated_latest') }
|
|
|
|
before do
|
|
allow(Asciicast).to receive(:homepage_latest) { latest }
|
|
end
|
|
|
|
it "returns decorated latest asciicasts" do
|
|
expect(subject).to be(decorated_latest)
|
|
end
|
|
end
|
|
|
|
describe '#featured_asciicasts' do
|
|
subject { presenter.featured_asciicasts }
|
|
|
|
let(:featured) { double('featured', decorate: decorated_featured) }
|
|
let(:decorated_featured) { double('decorated_featured') }
|
|
|
|
before do
|
|
allow(Asciicast).to receive(:homepage_featured) { featured }
|
|
end
|
|
|
|
it "returns decorated featured asciicasts" do
|
|
expect(subject).to be(decorated_featured)
|
|
end
|
|
end
|
|
|
|
end
|