aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/views/layouts/_user_links.erb2
-rw-r--r--lib/tasks/ci.rake2
-rw-r--r--spec/controllers/help_controller_spec.rb9
-rw-r--r--spec/controllers/referentials_controller_spec.rb2
-rw-r--r--spec/factories/user.rb5
-rw-r--r--spec/requests/companies_spec.rb2
-rw-r--r--spec/requests/lines_spec.rb1
-rw-r--r--spec/requests/networks_spec.rb2
-rw-r--r--spec/requests/referentials_spec.rb19
-rw-r--r--spec/spec_helper.rb9
-rw-r--r--spec/support/devise.rb45
-rw-r--r--spec/views/companies/index.html.erb_spec.rb3
-rw-r--r--spec/views/layouts/application.html.erb_spec.rb20
-rw-r--r--spec/views/lines/show.html.erb_spec.rb1
-rw-r--r--spec/views/networks/index.html.erb_spec.rb5
-rw-r--r--spec/views/networks/show.html.erb_spec.rb9
16 files changed, 112 insertions, 24 deletions
diff --git a/app/views/layouts/_user_links.erb b/app/views/layouts/_user_links.erb
index db3b0c2b8..b33f8bd8e 100644
--- a/app/views/layouts/_user_links.erb
+++ b/app/views/layouts/_user_links.erb
@@ -2,7 +2,7 @@
<li class="home"><%= link_to t('layouts.home'), root_path %></li>
<% if user_signed_in? %>
- <li> | </li>
+ <li> | </li>
<li><%= link_to t('layouts.user.profile'), edit_user_registration_path %></li>
<li> | </li>
<li><%= link_to t('layouts.user.sign_out'), destroy_user_session_path, :method => :delete %></li>
diff --git a/lib/tasks/ci.rake b/lib/tasks/ci.rake
index 28a3bded9..9c541129b 100644
--- a/lib/tasks/ci.rake
+++ b/lib/tasks/ci.rake
@@ -5,6 +5,6 @@ namespace :ci do
task :deploy do
cp "workspace.war", "/var/lib/tomcat6/webapps/chouette2.war"
end
- task :build => ["db:migrate", "war", "ci:deploy"]
+ task :build => ["db:migrate", "spec", "war", "ci:deploy"]
end
diff --git a/spec/controllers/help_controller_spec.rb b/spec/controllers/help_controller_spec.rb
deleted file mode 100644
index 2ad167012..000000000
--- a/spec/controllers/help_controller_spec.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-require 'spec_helper'
-
-describe HelpController do
-
- it "should render static files from app/views/help" do
- get "/"
- end
-
-end
diff --git a/spec/controllers/referentials_controller_spec.rb b/spec/controllers/referentials_controller_spec.rb
index eba195a1f..0bed2b21d 100644
--- a/spec/controllers/referentials_controller_spec.rb
+++ b/spec/controllers/referentials_controller_spec.rb
@@ -2,4 +2,6 @@ require 'spec_helper'
describe ReferentialsController do
+ login_user
+
end
diff --git a/spec/factories/user.rb b/spec/factories/user.rb
new file mode 100644
index 000000000..e6a00c6af
--- /dev/null
+++ b/spec/factories/user.rb
@@ -0,0 +1,5 @@
+Factory.define :user do |f|
+ f.sequence(:email) { |n| "chouette#{n}@dryade.priv" }
+ f.password "secret"
+ f.password_confirmation "secret"
+end
diff --git a/spec/requests/companies_spec.rb b/spec/requests/companies_spec.rb
index be3f28c9d..359b8fd85 100644
--- a/spec/requests/companies_spec.rb
+++ b/spec/requests/companies_spec.rb
@@ -1,6 +1,8 @@
require 'spec_helper'
describe "Companies" do
+ login_user
+
let!(:referential) { Factory(:referential).switch }
let!(:companies) { referential; Array.new(2) { Factory(:company) } }
diff --git a/spec/requests/lines_spec.rb b/spec/requests/lines_spec.rb
index d5c9eea2f..13192a0f3 100644
--- a/spec/requests/lines_spec.rb
+++ b/spec/requests/lines_spec.rb
@@ -1,6 +1,7 @@
require 'spec_helper'
describe "Lines" do
+ login_user
let!(:referential) { Factory(:referential).switch }
let!(:lines) { referential; Array.new(2) { Factory(:line) } }
diff --git a/spec/requests/networks_spec.rb b/spec/requests/networks_spec.rb
index b8b7fc8b4..395504157 100644
--- a/spec/requests/networks_spec.rb
+++ b/spec/requests/networks_spec.rb
@@ -1,6 +1,8 @@
require 'spec_helper'
describe "Networks" do
+ login_user
+
let!(:referential) { Factory(:referential).switch }
let!(:networks) { referential; Array.new(2) { Factory(:network) } }
diff --git a/spec/requests/referentials_spec.rb b/spec/requests/referentials_spec.rb
index d120f609b..073674a06 100644
--- a/spec/requests/referentials_spec.rb
+++ b/spec/requests/referentials_spec.rb
@@ -2,14 +2,25 @@
require 'spec_helper'
describe "Referentials" do
+ login_user
describe "index" do
- let!(:referentials) { Array.new(2) { Factory(:referential) } }
- it "should show n referentials" do
+ it "should support no referential" do
visit referentials_path
- page.should have_content(referentials.first.name)
- page.should have_content(referentials.last.name)
+ page.should have_content("Espace de données")
+ end
+
+ context "when several referentials exist" do
+
+ let!(:referentials) { Array.new(2) { Factory(:referential) } }
+
+ it "should show n referentials" do
+ visit referentials_path
+ page.should have_content(referentials.first.name)
+ page.should have_content(referentials.last.name)
+ end
+
end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 89d7a3f7b..1caf5560b 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -40,16 +40,21 @@ RSpec.configure do |config|
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
- DatabaseCleaner.clean_with( :truncation, {:except => %w[spatial_ref_sys geometry_columns]} )
+
+ Apartment.database_names.each do |database|
+ Apartment::Database.drop(database)
+ end
+ DatabaseCleaner.clean_with(:truncation, {:except => %w[spatial_ref_sys geometry_columns]} )
end
config.before(:each) do
+ Apartment::Database.switch(nil)
DatabaseCleaner.start
end
config.after(:each) do
- Apartment::Database.switch(nil)
DatabaseCleaner.clean
+ Apartment::Database.switch(nil)
end
end
diff --git a/spec/support/devise.rb b/spec/support/devise.rb
new file mode 100644
index 000000000..d4e37dbe6
--- /dev/null
+++ b/spec/support/devise.rb
@@ -0,0 +1,45 @@
+module DeviseRequestHelper
+ include Warden::Test::Helpers
+
+ def login_user
+ @user ||= FactoryGirl.create :user
+ login_as @user, :scope => :user
+ # post_via_redirect user_session_path, 'user[email]' => @user.email, 'user[password]' => @user.password
+ end
+
+ def self.included(base)
+ base.class_eval do
+ extend ClassMethods
+ end
+ end
+
+ module ClassMethods
+
+ def login_user
+ before(:each) do
+ login_user
+ end
+ after(:each) do
+ Warden.test_reset!
+ end
+ end
+
+ end
+
+end
+
+module DeviseControllerhelper
+ def login_user
+ before(:each) do
+ @request.env["devise.mapping"] = Devise.mappings[:user]
+ sign_in Factory.create(:user)
+ end
+ end
+end
+
+RSpec.configure do |config|
+ config.include Devise::TestHelpers, :type => :controller
+ config.extend DeviseControllerhelper, :type => :controller
+
+ config.include DeviseRequestHelper, :type => :request
+end
diff --git a/spec/views/companies/index.html.erb_spec.rb b/spec/views/companies/index.html.erb_spec.rb
index 9f4b00649..3c2df6c45 100644
--- a/spec/views/companies/index.html.erb_spec.rb
+++ b/spec/views/companies/index.html.erb_spec.rb
@@ -3,7 +3,8 @@ require 'spec_helper'
describe "/companies/index" do
let!(:referential) { assign( :referential, Factory(:referential) ) }
- let!(:companies) { assign( :companies, Array.new(2) { Factory(:company) } ) }
+ let!(:companies) { assign :companies, Array.new(2) { Factory(:company) }.paginate }
+ let!(:search) { assign :q, Ransack::Search.new(Chouette::Company) }
it "should render a show link for each group" do
render
diff --git a/spec/views/layouts/application.html.erb_spec.rb b/spec/views/layouts/application.html.erb_spec.rb
new file mode 100644
index 000000000..048055abf
--- /dev/null
+++ b/spec/views/layouts/application.html.erb_spec.rb
@@ -0,0 +1,20 @@
+require 'spec_helper'
+
+describe "/layouts/application" do
+
+ before(:each) do
+ view.stub :user_signed_in? => true
+ end
+
+ context "when Referential is a new record" do
+
+ let(:referential) { Referential.new }
+
+ it "should display referential name as title" do
+ render
+ rendered.should_not have_selector("h1")
+ end
+
+ end
+
+end
diff --git a/spec/views/lines/show.html.erb_spec.rb b/spec/views/lines/show.html.erb_spec.rb
index edb7e8741..894956ed0 100644
--- a/spec/views/lines/show.html.erb_spec.rb
+++ b/spec/views/lines/show.html.erb_spec.rb
@@ -4,6 +4,7 @@ describe "/lines/show" do
let!(:referential) { assign :referential, Factory(:referential) }
let!(:line) { assign :line, Factory(:line) }
+ let!(:map) { assign(:map, mock(:to_html => '<div id="map"/>')) }
it "should render h2 with the line name" do
render
diff --git a/spec/views/networks/index.html.erb_spec.rb b/spec/views/networks/index.html.erb_spec.rb
index bad1ffd9d..f843a944e 100644
--- a/spec/views/networks/index.html.erb_spec.rb
+++ b/spec/views/networks/index.html.erb_spec.rb
@@ -2,8 +2,9 @@ require 'spec_helper'
describe "/networks/index" do
- let!(:referential) { assign( :referential, Factory(:referential) ) }
- let!(:networks) { assign( :networks, Array.new(2) { Factory(:network) } ) }
+ let!(:referential) { assign :referential, Factory(:referential) }
+ let!(:networks) { assign :networks, Array.new(2){ Factory(:network) }.paginate }
+ let!(:search) { assign :q, Ransack::Search.new(Chouette::Network) }
it "should render a show link for each group" do
render
diff --git a/spec/views/networks/show.html.erb_spec.rb b/spec/views/networks/show.html.erb_spec.rb
index e4b2093de..fae79eb29 100644
--- a/spec/views/networks/show.html.erb_spec.rb
+++ b/spec/views/networks/show.html.erb_spec.rb
@@ -4,16 +4,17 @@ describe "/networks/show" do
let!(:referential) { assign(:referential, Factory(:referential)) }
let!(:network) { assign(:network, Factory(:network)) }
+ let!(:map) { assign(:map, mock(:to_html => '<div id="map"/>')) }
it "should render h2 with the network name" do
render
rendered.should have_selector("h2", :text => Regexp.new(network.name))
end
- # it "should display a map with class 'network'" do
- # render
- # rendered.should have_selector("#map", :class => 'network')
- # end
+ it "should display a map with class 'network'" do
+ render
+ rendered.should have_selector("#map")
+ end
it "should render a link to edit the network" do
render