diff --git a/config/routes.rb b/config/routes.rb index 37116f9..1dca08f 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -161,8 +161,26 @@ end resources :fragen, :only =>[:new, :edit, :update, :destroy, :create] - resources :neuigkeiten, :only => [:show] , constraints: {id: /\d+/i} + resources :neuigkeiten, :only => [:show] , constraints: {id: /\d+/i} do + member do + get 'publish' + get 'unpublish' + get 'add_calentry' + get 'rm_calentry' + get 'create_link' + get 'delete_link' + get 'find_link' + get 'publish_to_facebook' + get 'mail_to_fet' + get 'mail_preview' + get 'flag' + end + collection do + get 'newsletter_preview' + end + end get "neuigkeiten", controller: :rubriken, action: :index, as: "neuigkeiten" + resources :rubriken do collection do get 'verwalten' , :action => :alle_verwalten diff --git a/spec/controllers/neuigkeiten_controller_spec.rb b/spec/controllers/neuigkeiten_controller_spec.rb new file mode 100644 index 0000000..c183ad1 --- /dev/null +++ b/spec/controllers/neuigkeiten_controller_spec.rb @@ -0,0 +1,55 @@ +#require 'rails_helper' +require 'spec_helper' + +RSpec.describe NeuigkeitenController, :type => :controller do + let(:rubrik) {FactoryGirl.create(:rubrik, public:true)} + let(:intern_rubrik) {FactoryGirl.create(:rubrik, public:false, name: "InternRubrik")} + let(:user) {FactoryGirl.create(:user)} + let(:fet_user) do + user=FactoryGirl.create(:user) + user.add_role(:fetadmin) + end + + let(:neuigkeit) {(FactoryGirl.create(:neuigkeit, rubrik_id: rubrik.id, author_id: user.id, datum: 4.hours.ago))} + let(:intern_neuigkeit) {(FactoryGirl.create(:neuigkeit, rubrik_id: intern_rubrik.id, author_id: user.id, datum: 4.hours.ago))} + let(:valid_session) { {current_user: fet_user} } + let(:public_session){{}} + + describe "GET #show" do + it "render show template" do + get :show, {id: neuigkeit.id}, public_session + expect(response).to have_http_status(200) + expect(response).to render_template(:show) + end + + it "denys access to unpublished news" do + neuigkeit.datum=5.hours.from_now + neuigkeit.save! + get :show, {id: neuigkeit.id}, public_session + expect(response).to have_http_status(302) + end + + it "denys access to intern news" do + get :show, {id: intern_neuigkeit.id}, public_session + expect(response).to have_http_status(302) + end + + it "assignes neuigkeit" do + + get :show, {id: neuigkeit.id }, public_session + expect(assigns(:neuigkeit)).to eq(neuigkeit) + end + describe "GET #show view contents" do + + render_views + it "renders the name of the neuigkeit" do + get :show, {id: neuigkeit.id} , public_session + expect(response.body).to match neuigkeit.name + end + it "has linkes to external rubrik" do + end + end + end + + +end