You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asciinema.org/spec/presenters/home_page_presenter_spec.rb

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