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/controllers/api_tokens_controller_spec.rb

61 lines
1.3 KiB
Ruby

require 'rails_helper'
describe ApiTokensController do
describe '#create' do
subject { get :create, api_token: 'a-toh-can' }
let(:user) { double('user', assign_api_token: nil) }
before do
login_as(user)
end
context 'for guest user' do
let(:user) { nil }
before do
subject
end
it { should redirect_to(login_path) }
Use new rspec syntax in all specs diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index a115b7d..09d150b 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -46,12 +46,12 @@ def retrieve describe "action raise unauthorized" do context "when xhr" do - before { request.stub(:xhr?).and_return(true) } + before { allow(request).to receive(:xhr?).and_return(true) } it "response with 401" do get :foo - response.status.should == 401 + expect(response.status).to eq(401) end end @@ -59,11 +59,11 @@ def retrieve context "when typical request" do it "redirects to login_path" do - @controller.should_receive(:store_location) + expect(@controller).to receive(:store_location) get :foo - flash[:notice].should == "Please sign in to proceed" + expect(flash[:notice]).to eq("Please sign in to proceed") should redirect_to(login_path) end @@ -72,12 +72,12 @@ def retrieve context "when action raise forbidden" do context "when xhr" do - before { request.stub(:xhr?).and_return(true) } + before { allow(request).to receive(:xhr?).and_return(true) } it "response with 401" do get :bar - response.status.should == 403 + expect(response.status).to eq(403) end end @@ -86,7 +86,7 @@ def retrieve it "redirects to root_path" do get :bar - flash[:alert].should == "This action is forbidden" + expect(flash[:alert]).to eq("This action is forbidden") should redirect_to(root_path) end @@ -97,8 +97,8 @@ def retrieve it 'stores current request path to be later retrieved' do get :store get :retrieve - assigns[:location].should == '/fake/store' - assigns[:location_again].should == 'NOWAI!' + expect(assigns[:location]).to eq('/fake/store') + expect(assigns[:location_again]).to eq('NOWAI!') end end @@ -106,7 +106,7 @@ def retrieve context 'when there is no stored location' do it 'redirects to given location' do path = double - @controller.should_receive(:redirect_to).with(path) + expect(@controller).to receive(:redirect_to).with(path) @controller.send(:redirect_back_or_to, path) end end @@ -115,8 +115,8 @@ def retrieve it 'redirects to stored location' do stored_path = double path = double - @controller.stub(:get_stored_location => stored_path) - @controller.should_receive(:redirect_to).with(stored_path) + allow(@controller).to receive(:get_stored_location).and_return(stored_path) + expect(@controller).to receive(:redirect_to).with(stored_path) @controller.send(:redirect_back_or_to, path) end end diff --git a/spec/controllers/asciicasts_controller_spec.rb b/spec/controllers/asciicasts_controller_spec.rb index 5741ec2..c37e69b 100644 --- a/spec/controllers/asciicasts_controller_spec.rb +++ b/spec/controllers/asciicasts_controller_spec.rb @@ -2,12 +2,12 @@ shared_examples_for 'guest user trying to modify' do it { should redirect_to(login_path) } - specify { flash[:notice].should =~ /sign in to proceed/ } + specify { expect(flash[:notice]).to match(/sign in to proceed/) } end shared_examples_for 'non-owner user trying to modify' do it { should redirect_to(asciicast_path(asciicast)) } - specify { flash[:alert].should =~ /can't/ } + specify { expect(flash[:alert]).to match(/can't/) } end describe AsciicastsController do @@ -45,7 +45,7 @@ before do allow(controller).to receive(:view_counter) { view_counter } - Asciicast.should_receive(:find).and_return(asciicast) + expect(Asciicast).to receive(:find).and_return(asciicast) asciicast.title = 'some tit' end @@ -66,7 +66,7 @@ with(asciicast, cookies) end - specify { assigns(:asciicast).should == asciicast_decorator } + specify { expect(assigns(:asciicast)).to eq(asciicast_decorator) } end context 'for json request' do @@ -98,7 +98,7 @@ let(:make_request) { get :edit, :id => asciicast.id } before do - Asciicast.should_receive(:find).and_return(asciicast) + expect(Asciicast).to receive(:find).and_return(asciicast) asciicast.user = user end @@ -133,7 +133,7 @@ let(:make_request) { put :update, :id => asciicast.id, :asciicast => { } } before do - Asciicast.should_receive(:find).and_return(asciicast) + expect(Asciicast).to receive(:find).and_return(asciicast) asciicast.user = user end @@ -144,17 +144,17 @@ context 'when update succeeds' do before do - asciicast.should_receive(:update_attributes).and_return(true) + expect(asciicast).to receive(:update_attributes).and_return(true) make_request end it { should redirect_to(asciicast_path(asciicast)) } - specify { flash[:notice].should =~ /was updated/ } + specify { expect(flash[:notice]).to match(/was updated/) } end context 'when update fails' do before do - asciicast.should_receive(:update_attributes).and_return(false) + expect(asciicast).to receive(:update_attributes).and_return(false) make_request end @@ -184,7 +184,7 @@ let(:make_request) { delete :destroy, :id => asciicast.id } before do - Asciicast.should_receive(:find).and_return(asciicast) + expect(Asciicast).to receive(:find).and_return(asciicast) asciicast.user = user end @@ -195,22 +195,22 @@ context 'when destroy succeeds' do before do - asciicast.should_receive(:destroy).and_return(true) + expect(asciicast).to receive(:destroy).and_return(true) make_request end it { should redirect_to(profile_path(user)) } - specify { flash[:notice].should =~ /was deleted/ } + specify { expect(flash[:notice]).to match(/was deleted/) } end context 'when destroy fails' do before do - asciicast.should_receive(:destroy).and_return(false) + expect(asciicast).to receive(:destroy).and_return(false) make_request end it { should redirect_to(asciicast_path(asciicast)) } - specify { flash[:alert].should =~ /again/ } + specify { expect(flash[:alert]).to match(/again/) } end end diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb index 6dcd6e7..e82d5ea 100644 --- a/spec/controllers/home_controller_spec.rb +++ b/spec/controllers/home_controller_spec.rb @@ -10,7 +10,7 @@ it "returns http success" do get 'show' - response.should be_success + expect(response).to be_success end end @@ -21,14 +21,14 @@ it "returns http success" do get 'show' - response.should be_success + expect(response).to be_success end end describe 'when there are no casts at all' do it "returns http success" do get 'show' - response.should be_success + expect(response).to be_success end end end diff --git a/spec/controllers/user_tokens_controller_spec.rb b/spec/controllers/user_tokens_controller_spec.rb index 2a43c4a..6774f87 100644 --- a/spec/controllers/user_tokens_controller_spec.rb +++ b/spec/controllers/user_tokens_controller_spec.rb @@ -24,14 +24,14 @@ let(:user) { nil } it { should redirect_to(login_path) } - specify { flash[:notice].should =~ /sign in to proceed/ } + specify { expect(flash[:notice]).to match(/sign in to proceed/) } end context "when # of claimed asciicasts is nil" do let(:claimed_num) { nil } it 'displays error page' do - response.should render_template(:error) + expect(response).to render_template(:error) end end @@ -39,14 +39,14 @@ let(:claimed_num) { 0 } it { should redirect_to(profile_path(user)) } - specify { flash[:notice].should =~ /Authenticated/ } + specify { expect(flash[:notice]).to match(/Authenticated/) } end context "when # of claimed asciicast is > 0" do let(:claimed_num) { 1 } it { should redirect_to(profile_path(user)) } - specify { flash[:notice].should =~ /Claimed #{claimed_num}/ } + specify { expect(flash[:notice]).to match(/Claimed #{claimed_num}/) } end end diff --git a/spec/decorators/asciicast_decorator_spec.rb b/spec/decorators/asciicast_decorator_spec.rb index 19e6af1..05264d7 100644 --- a/spec/decorators/asciicast_decorator_spec.rb +++ b/spec/decorators/asciicast_decorator_spec.rb @@ -230,7 +230,7 @@ } before do - asciicast.stub(:id => 123) + allow(asciicast).to receive(:id).and_return(123) end it 'should be an async script tag including asciicast id' do diff --git a/spec/features/playback_spec.rb b/spec/features/playback_spec.rb index ce4f912..0bbfd6c 100644 --- a/spec/features/playback_spec.rb +++ b/spec/features/playback_spec.rb @@ -26,7 +26,7 @@ def inject_on_finished_callback visit asciicast_path(asciicast, speed: 5) find(".play-button").find(".arrow").click inject_on_finished_callback - page.should have_selector('body .finished') + expect(page).to have_selector('body .finished') end end diff --git a/spec/models/comment_spec.rb b/spec/models/comment_spec.rb index e6e128f..11f56e0 100644 --- a/spec/models/comment_spec.rb +++ b/spec/models/comment_spec.rb @@ -3,7 +3,7 @@ describe Comment do it "factory should be valid" do - FactoryGirl.build(:comment).should be_valid + expect(FactoryGirl.build(:comment)).to be_valid end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index a6c845e..88ee9a8 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -96,8 +96,8 @@ it 'returns created UserToken' do ut = user.add_user_token(token) - ut.should be_kind_of(UserToken) - ut.id.should_not be(nil) + expect(ut).to be_kind_of(UserToken) + expect(ut.id).not_to be(nil) end end @@ -107,7 +107,7 @@ it 'returns existing UserToken' do ut = user.add_user_token(token) - ut.should == existing_token + expect(ut).to eq(existing_token) end end end diff --git a/spec/models/user_token_spec.rb b/spec/models/user_token_spec.rb index f1e76e6..a106311 100644 --- a/spec/models/user_token_spec.rb +++ b/spec/models/user_token_spec.rb @@ -2,6 +2,6 @@ describe UserToken do it "has valid factory" do - FactoryGirl.build(:user_token).should be_valid + expect(FactoryGirl.build(:user_token)).to be_valid end end diff --git a/spec/routing/connect_spec.rb b/spec/routing/connect_spec.rb index 351f928..91f713f 100644 --- a/spec/routing/connect_spec.rb +++ b/spec/routing/connect_spec.rb @@ -2,7 +2,7 @@ describe 'connect routing' do it 'routes /connect/:user_token to user_tokens#create for user_token' do - { :get => '/connect/jolka-misio' }.should route_to( + expect({ :get => '/connect/jolka-misio' }).to route_to( :controller => 'user_tokens', :action => 'create', :user_token => 'jolka-misio' diff --git a/spec/support/controller_macros.rb b/spec/support/controller_macros.rb index 6b26434..fa31720 100644 --- a/spec/support/controller_macros.rb +++ b/spec/support/controller_macros.rb @@ -1,7 +1,7 @@ module Asciinema module ControllerMacros def login_as(user) - controller.stub(:current_user => user) + allow(controller).to receive(:current_user).and_return(user) end end end
11 years ago
specify { expect(flash[:notice]).to match(/sign in to proceed/) }
end
context "when assigning succeeds" do
before do
allow(user).to receive(:assign_api_token).with('a-toh-can')
subject
end
it { should redirect_to(profile_path(user)) }
specify { expect(flash[:notice]).to_not be_blank }
end
context "when token is invalid" do
before do
allow(user).to receive(:assign_api_token).with('a-toh-can').
and_raise(ActiveRecord::RecordInvalid, ApiToken.new)
end
it 'displays error page' do
expect(subject).to render_template(:error)
end
end
context "when token is taken" do
before do
allow(user).to receive(:assign_api_token).with('a-toh-can').
and_raise(ApiToken::ApiTokenTakenError)
end
it 'displays error page' do
expect(subject).to render_template(:error)
end
end
end
end