#   Copyright (c) 2010, Diaspora Inc.  This file is
#   licensed under the Affero General Public License version 3 or later.  See
#   the COPYRIGHT file.

require 'spec_helper'

describe NotificationsController do

  let!(:user) { make_user }
  let!(:aspect) { user.aspects.create(:name => "AWESOME!!") }
  
  before do
    sign_in :user, user

  end

  describe '#update' do
    it 'marks a notification as read' do
      note = Notification.create(:user_id => user.id)
      put :update, :id => note.id
      Notification.first.unread.should == false
    end

    it 'only lets you read your own notifications' do
      user2 = make_user

      Notification.create(:user_id => user.id)
      note = Notification.create(:user_id => user2.id)

      put :update, :id => note.id

      Notification.find(note.id).unread.should == true 
    end
  end
  
  describe '#index' do
    it 'paginates the notifications' do
      35.times do
        Notification.create(:user_id => user.id)
      end
      
      get :index
      assigns[:notifications].should == Notification.all(:user_id => user.id, :limit => 25)
      
      get :index, :page => 2
      assigns[:notifications].should == Notification.all(:user_id => user.id, :offset => 25)
    end
  end
end

#   Copyright (c) 2010, Diaspora Inc.  This file is
#   licensed under the Affero General Public License version 3 or later.  See
#   the COPYRIGHT file.

require 'spec_helper'

describe NotificationsController do

  let!(:user) { make_user }
  let!(:aspect) { user.aspects.create(:name => "AWESOME!!") }
  
  before do
    sign_in :user, user

  end

  describe '#update' do
    it 'marks a notification as read' do
      note = Notification.create(:user_id => user.id)
      put :update, :id => note.id
      Notification.first.unread.should == false
    end

    it 'only lets you read your own notifications' do
      user2 = make_user

      Notification.create(:user_id => user.id)
      note = Notification.create(:user_id => user2.id)

      put :update, :id => note.id

      Notification.find(note.id).unread.should == true 
    end
  end
  
  describe '#index' do
    it 'paginates the notifications' do
      35.times do
        Notification.create(:user_id => user.id)
      end
      
      get :index
      assigns[:notifications].should == Notification.all(:user_id => user.id, :limit => 25)
      
      get :index, :page => 2
      assigns[:notifications].should == Notification.all(:user_id => user.id, :offset => 25, :limit => 25)
    end
  end
end

Set a limit on the second page
Set a limit on the second page
