Commit 52b9cafbf2f8cc3d7be6842db1618916cacc23cd
1 parent
17cd0742
Exists in
master
and in
1 other branch
Update specs now that authentication is required
Showing
8 changed files
with
66 additions
and
2 deletions
Show diff stats
app/controllers/deploys_controller.rb
| 1 | class DeploysController < ApplicationController | 1 | class DeploysController < ApplicationController |
| 2 | 2 | ||
| 3 | + skip_before_filter :authenticate_user!, :only => :create | ||
| 4 | + | ||
| 3 | def create | 5 | def create |
| 4 | @app = App.find_by_api_key!(params[:api_key]) | 6 | @app = App.find_by_api_key!(params[:api_key]) |
| 5 | @deploy = @app.deploys.create!({ | 7 | @deploy = @app.deploys.create!({ |
app/controllers/notices_controller.rb
| 1 | class NoticesController < ApplicationController | 1 | class NoticesController < ApplicationController |
| 2 | respond_to :xml | 2 | respond_to :xml |
| 3 | 3 | ||
| 4 | + skip_before_filter :authenticate_user!, :only => :create | ||
| 5 | + | ||
| 4 | def create | 6 | def create |
| 5 | @notice = Notice.from_xml(request.raw_post) | 7 | @notice = Notice.from_xml(request.raw_post) |
| 6 | respond_with @notice | 8 | respond_with @notice |
spec/controllers/apps_controller_spec.rb
| @@ -2,6 +2,12 @@ require 'spec_helper' | @@ -2,6 +2,12 @@ require 'spec_helper' | ||
| 2 | 2 | ||
| 3 | describe AppsController do | 3 | describe AppsController do |
| 4 | 4 | ||
| 5 | + it_requires_authentication | ||
| 6 | + | ||
| 7 | + before do | ||
| 8 | + sign_in Factory(:user) | ||
| 9 | + end | ||
| 10 | + | ||
| 5 | describe "GET /apps" do | 11 | describe "GET /apps" do |
| 6 | it 'finds all apps' do | 12 | it 'finds all apps' do |
| 7 | 3.times { Factory(:app) } | 13 | 3.times { Factory(:app) } |
spec/controllers/errs_controller_spec.rb
| @@ -2,9 +2,18 @@ require 'spec_helper' | @@ -2,9 +2,18 @@ require 'spec_helper' | ||
| 2 | 2 | ||
| 3 | describe ErrsController do | 3 | describe ErrsController do |
| 4 | 4 | ||
| 5 | + it_requires_authentication :for => { | ||
| 6 | + :index => :get, :all => :get, :show => :get, :resolve => :put | ||
| 7 | + }, | ||
| 8 | + :params => {:app_id => 'dummyid', :id => 'dummyid'} | ||
| 9 | + | ||
| 5 | let(:app) { Factory(:app) } | 10 | let(:app) { Factory(:app) } |
| 6 | let(:err) { Factory(:err, :app => app) } | 11 | let(:err) { Factory(:err, :app => app) } |
| 7 | 12 | ||
| 13 | + before do | ||
| 14 | + sign_in Factory(:user) | ||
| 15 | + end | ||
| 16 | + | ||
| 8 | describe "GET /errs" do | 17 | describe "GET /errs" do |
| 9 | it "gets a paginated list of unresolved errs" do | 18 | it "gets a paginated list of unresolved errs" do |
| 10 | errs = WillPaginate::Collection.new(1,30) | 19 | errs = WillPaginate::Collection.new(1,30) |
| @@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||
| 1 | +Factory.sequence(:user_email) {|n| "user.#{n}@example.com"} | ||
| 2 | + | ||
| 3 | +Factory.define :user do |u| | ||
| 4 | + u.name 'Clyde Frog' | ||
| 5 | + u.email { Factory.next :user_email } | ||
| 6 | + u.password 'password' | ||
| 7 | + u.password_confirmation 'password' | ||
| 8 | +end | ||
| 0 | \ No newline at end of file | 9 | \ No newline at end of file |
spec/models/user_spec.rb
| 1 | require 'spec_helper' | 1 | require 'spec_helper' |
| 2 | 2 | ||
| 3 | describe User do | 3 | describe User do |
| 4 | - pending "add some examples to (or delete) #{__FILE__}" | 4 | + |
| 5 | + context 'validations' do | ||
| 6 | + it 'require that a name is present' do | ||
| 7 | + user = Factory.build(:user, :name => nil) | ||
| 8 | + user.should_not be_valid | ||
| 9 | + user.errors[:name].should include("can't be blank") | ||
| 10 | + end | ||
| 11 | + end | ||
| 12 | + | ||
| 5 | end | 13 | end |
spec/spec_helper.rb
| @@ -11,10 +11,11 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f} | @@ -11,10 +11,11 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f} | ||
| 11 | 11 | ||
| 12 | RSpec.configure do |config| | 12 | RSpec.configure do |config| |
| 13 | config.mock_with :rspec | 13 | config.mock_with :rspec |
| 14 | + config.include Devise::TestHelpers, :type => :controller | ||
| 14 | 15 | ||
| 15 | config.before(:each) do | 16 | config.before(:each) do |
| 16 | DatabaseCleaner.orm = "mongoid" | 17 | DatabaseCleaner.orm = "mongoid" |
| 17 | DatabaseCleaner.strategy = :truncation | 18 | DatabaseCleaner.strategy = :truncation |
| 18 | DatabaseCleaner.clean | 19 | DatabaseCleaner.clean |
| 19 | end | 20 | end |
| 20 | -end | 21 | -end |
| 22 | +end | ||
| 21 | \ No newline at end of file | 23 | \ No newline at end of file |
| @@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
| 1 | +def it_requires_authentication(options = {}) | ||
| 2 | + default_options = { | ||
| 3 | + :for => { | ||
| 4 | + :index => :get, | ||
| 5 | + :show => :get, | ||
| 6 | + :new => :get, | ||
| 7 | + :create => :post, | ||
| 8 | + :edit => :get, | ||
| 9 | + :update => :put, | ||
| 10 | + :destroy => :delete | ||
| 11 | + }, | ||
| 12 | + :params => {:id => 'dummyid'} | ||
| 13 | + } | ||
| 14 | + options.reverse_merge!(default_options) | ||
| 15 | + | ||
| 16 | + context 'when logged out' do | ||
| 17 | + before do | ||
| 18 | + sign_out :user | ||
| 19 | + end | ||
| 20 | + | ||
| 21 | + options[:for].each do |action, method| | ||
| 22 | + it "#{method.to_s.upcase} #{action} redirects to the sign in page" do | ||
| 23 | + send(method, action, options[:params]) | ||
| 24 | + response.should redirect_to(new_user_session_path) | ||
| 25 | + end | ||
| 26 | + end | ||
| 27 | + end | ||
| 28 | +end | ||
| 0 | \ No newline at end of file | 29 | \ No newline at end of file |