From db2fb6cadb4de473a9ca9ad54498f7544ff626a3 Mon Sep 17 00:00:00 2001
From: Marcela Ribeiro de Oliveira <mro15@inf.ufpr.br>
Date: Thu, 6 Jul 2017 10:05:43 -0300
Subject: [PATCH] rspec tests working

---
 spec/acceptance/learning_objects_spec.rb |  8 +--
 spec/shared/contexts.rb                  | 65 ++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 4 deletions(-)

diff --git a/spec/acceptance/learning_objects_spec.rb b/spec/acceptance/learning_objects_spec.rb
index 13a8a4f2..fc2de13f 100644
--- a/spec/acceptance/learning_objects_spec.rb
+++ b/spec/acceptance/learning_objects_spec.rb
@@ -41,7 +41,7 @@ resource 'Learning Objects' do
   end
 
   post '/v1/learning_objects' do
-    include_context "authenticate_user"
+    include_context "authenticate_user_submitter"
 
     parameter :author, 'The author of a educational content', scope: :learning_object
     parameter :name, 'The name of the learning object', scope: :learning_object
@@ -79,7 +79,7 @@ resource 'Learning Objects' do
   end
 
   put '/v1/learning_objects/:id' do
-    include_context "authenticate_user"
+    include_context "authenticate_user_submitter"
 
     parameter :author, 'The author of a educational content'
     parameter :name, 'The name of the learning object'
@@ -159,12 +159,12 @@ resource 'Learning Objects' do
    end
 
   post '/v1/learning_objects/:id/publish' do
-    include_context "authenticate_user"
+    include_context "authenticate_user_moderator"
 
     let(:id) { @learning_object.id }
 
     before do
-      @learning_object = create(:learning_object, publisher: @user, state: LearningObject.states[:draft])
+      @learning_object = create(:learning_object, publisher: @user, state: LearningObject.states[:submitted])
     end
 
     example 'Publishing a learning object' do
diff --git a/spec/shared/contexts.rb b/spec/shared/contexts.rb
index 6fe0df56..672320ff 100644
--- a/spec/shared/contexts.rb
+++ b/spec/shared/contexts.rb
@@ -28,3 +28,68 @@ RSpec.shared_context "authenticate_user_admin", shared_context: :metadata do
   end
 
 end
+
+RSpec.shared_context "authenticate_user_submitter", shared_context: :metadata do
+  let(:auth_client) { @auth_headers['client'] }
+  let(:uid) { @auth_headers['uid'] }
+  let(:access_token) { @auth_headers['access-token'] }
+  let(:role) { Role.all }
+
+  before do
+    @user = create(:user, roles: [role.find_by(name: 'submitter')])
+    @auth_headers = @user.create_new_auth_token
+  end
+
+end
+
+RSpec.shared_context "authenticate_user_curator", shared_context: :metadata do
+  let(:auth_client) { @auth_headers['client'] }
+  let(:uid) { @auth_headers['uid'] }
+  let(:access_token) { @auth_headers['access-token'] }
+  let(:role) { Role.all }
+
+  before do
+    @user = create(:user, roles: [role.find_by(name: 'curator')])
+    @auth_headers = @user.create_new_auth_token
+  end
+
+end
+
+RSpec.shared_context "authenticate_user_moderator", shared_context: :metadata do
+  let(:auth_client) { @auth_headers['client'] }
+  let(:uid) { @auth_headers['uid'] }
+  let(:access_token) { @auth_headers['access-token'] }
+  let(:role) { Role.all }
+
+  before do
+    @user = create(:user, roles: [role.find_by(name: 'moderator')])
+    @auth_headers = @user.create_new_auth_token
+  end
+
+end
+
+RSpec.shared_context "authenticate_user_editor", shared_context: :metadata do
+  let(:auth_client) { @auth_headers['client'] }
+  let(:uid) { @auth_headers['uid'] }
+  let(:access_token) { @auth_headers['access-token'] }
+  let(:role) { Role.all }
+
+  before do
+    @user = create(:user, roles: [role.find_by(name: 'editor')])
+    @auth_headers = @user.create_new_auth_token
+  end
+
+end
+
+RSpec.shared_context "authenticate_user_supervisor", shared_context: :metadata do
+  let(:auth_client) { @auth_headers['client'] }
+  let(:uid) { @auth_headers['uid'] }
+  let(:access_token) { @auth_headers['access-token'] }
+  let(:role) { Role.all }
+
+  before do
+    @user = create(:user, roles: [role.find_by(name: 'supervisor')])
+    @auth_headers = @user.create_new_auth_token
+  end
+
+end
-- 
GitLab