Newer
Older
# frozen_string_literal: true
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
describe StreamsController, :type => :controller do
include_context :gon
context "with a logged in user" do
before do
sign_in alice
describe "#public" do
it "succeeds" do
get :public
expect(response).to be_successful
describe "#multi" do
it "succeeds" do
get :multi
expect(response).to be_successful
it "succeeds on mobile" do
get :multi, format: :mobile
expect(response).to be_successful
context "getting started" do
it "add the inviter to gon" do
user = FactoryGirl.create(:user, getting_started: true, invited_by: alice)
sign_in user
get :multi
expect(gon["preloads"][:mentioned_person][:name]).to eq(alice.person.name)
expect(gon["preloads"][:mentioned_person][:handle]).to eq(alice.person.diaspora_handle)
end
end
end
streams = {
liked: Stream::Likes,
mentioned: Stream::Mention,
followed_tags: Stream::FollowedTag,
activity: Stream::Activity
}
streams.each do |stream_path, stream_class|
describe "a GET to #{stream_path}" do
it "assigns a stream of the proper class" do
get stream_path
expect(response).to be_successful
expect(assigns[:stream]).to be_a stream_class
end
context "with no user signed in" do
describe "#public" do
it "succeeds" do
get :public
expect(response).to be_successful
end
it "succeeds on mobile" do
get :public, format: :mobile
expect(response).to be_successful
end
end
describe "other streams" do
it "redirects to the login page" do
%i[activity followed_tags liked mentioned multi].each do |stream_path|
get stream_path
expect(response).to be_redirect
expect(response).to redirect_to new_user_session_path
end
end
end
end
end