more testing and code cleanup and enable coverage reports on circle

This commit is contained in:
Zachary Chai 2017-03-03 15:26:07 -05:00
parent bee42c8148
commit 7c86aa8e7f
9 changed files with 33 additions and 40 deletions

View File

@ -153,7 +153,7 @@ class BbbController < ApplicationController
metadata = params.select{ |k, v| k.match(/^meta_/) }
bbb_res = bbb_update_recordings(params[:record_id], published, metadata)
if bbb_res[:returncode]
RecordingUpdatesJob.perform_later(@user.encrypted_id, params[:record_id], params[:id])
RecordingUpdatesJob.perform_later(@user.encrypted_id, params[:record_id])
end
render_bbb_response bbb_res
end

View File

@ -15,27 +15,10 @@
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
class EndMeetingJob < ApplicationJob
include BbbApi
queue_as :default
def perform(room, meeting)
tries = 0
sleep_time = 2
while tries < 4
bbb_res = bbb_get_meeting_info("#{room}-#{meeting}")
if !bbb_res[:returncode]
ActionCable.server.broadcast "#{room}-#{meeting}_meeting_updates_channel",
action: 'meeting_ended'
break
end
sleep sleep_time
sleep_time = sleep_time * 2
tries += 1
end
ActionCable.server.broadcast "#{room}-#{meeting}_meeting_updates_channel",
action: 'meeting_ended'
end
end

View File

@ -15,12 +15,10 @@
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
class RecordingDeletesJob < ApplicationJob
include BbbApi
queue_as :default
def perform(room, record_id, meeting=nil)
full_id = "#{room}-#{meeting}"
def perform(room, record_id, meeting_name)
full_id = "#{room}-#{meeting_name}"
ActionCable.server.broadcast "#{room}_recording_updates_channel",
action: 'delete',
id: record_id

View File

@ -19,11 +19,9 @@ class RecordingUpdatesJob < ApplicationJob
queue_as :default
def perform(room, record_id, meeting=nil)
bbb_res = bbb_get_recordings({recordID: record_id})
recording = bbb_res[:recordings].first
full_id = room
full_id += "-#{recording[:metadata][:"meeting-name"]}"
def perform(room, record_id)
recording = bbb_get_recordings({recordID: record_id})[:recordings].first
full_id = "#{room}-#{recording[:metadata][:"meeting-name"]}"
ActionCable.server.broadcast "#{room}_recording_updates_channel",
action: 'update',
id: record_id,

View File

@ -11,3 +11,7 @@ deployment:
branch: master
commands:
- ./scripts/build_image_master.sh
test:
pre:
- cp env .env

View File

@ -37,8 +37,6 @@ Rails.application.configure do
# Print deprecation notices to the stderr.
config.active_support.deprecation = :stderr
config.mail_notifications = true
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end

View File

@ -19,6 +19,8 @@ require 'test_helper'
class BbbControllerTest < ActionController::TestCase
include BbbApi
RETURNCODE_SUCCESS = 'SUCCESS'
setup do
@meeting_id = 'test_id'
@user = users :user1
@ -51,7 +53,7 @@ class BbbControllerTest < ActionController::TestCase
assert_response :success
end
test "should wati for moderator on join for authenticated meeting when not room owner" do
test "should wait for moderator on join for authenticated meeting when not room owner" do
BbbController.any_instance.expects(:bbb_join_url)
.with() do |token, full_name, opts|
opts[:wait_for_moderator] && !opts[:user_is_moderator]
@ -67,7 +69,7 @@ class BbbControllerTest < ActionController::TestCase
BbbController.any_instance.expects(:bbb_end_meeting)
.with() do |token|
token == meeting_token(@user, @meeting_id)
end.returns({status: :ok}).once
end.returns({status: :ok, returncode: RETURNCODE_SUCCESS}).once
get :end, params: { room_id: @user.encrypted_id, id: @meeting_id, resource: 'rooms' }
assert_response :success
@ -84,7 +86,7 @@ class BbbControllerTest < ActionController::TestCase
BbbController.any_instance.expects(:bbb_get_recordings)
.returns({status: :ok, recordings: []}).once
get :recordings, params: { room_id: @user.encrypted_id, resource: 'rooms' }
get :recordings, params: { room_id: @user.encrypted_id, resource: 'rooms', id: @meeting_id }
assert_response :success
end
@ -94,7 +96,7 @@ class BbbControllerTest < ActionController::TestCase
BbbController.any_instance.expects(:bbb_get_recordings)
.returns({status: :ok, recordings: [{recordID: @recording}]}).once
BbbController.any_instance.expects(:bbb_update_recordings)
.returns({status: :ok}).once
.returns({status: :ok, returncode: RETURNCODE_SUCCESS}).once
patch :update_recordings, params: { room_id: @user.encrypted_id, resource: 'rooms', record_id: @recording }
assert_response :success
@ -104,9 +106,9 @@ class BbbControllerTest < ActionController::TestCase
login @user
BbbController.any_instance.expects(:bbb_get_recordings)
.returns({status: :ok, recordings: [{recordID: @recording}]}).at_least_once
.returns({status: :ok, recordings: [{recordID: @recording, metadata: {'meeting-name': @meeting_id}}]}).twice
BbbController.any_instance.expects(:bbb_delete_recordings)
.returns({status: :ok}).once
.returns({status: :ok, returncode: RETURNCODE_SUCCESS}).once
delete :delete_recordings, params: { room_id: @user.encrypted_id, resource: 'rooms', record_id: @recording }
assert_response :success

View File

@ -43,6 +43,11 @@ class LandingControllerTest < ActionController::TestCase
assert_response :success
end
test "should not get room for invalid user" do
get :resource, params: { room_id: 'invalid id', id: @meeting_id, resource: 'rooms' }
assert_response :redirect
end
test "should get wait for moderator" do
get :wait_for_moderator, params: { room_id: @user.encrypted_id, id: @meeting_id, resource: 'rooms' }
assert_response :success

View File

@ -17,13 +17,18 @@
ENV['RAILS_ENV'] ||= 'test'
require 'simplecov'
if ENV['CIRCLE_ARTIFACTS']
dir = File.join(ENV['CIRCLE_ARTIFACTS'], "coverage")
SimpleCov.coverage_dir(dir)
end
SimpleCov.start do
add_group 'Models', 'app/models'
add_group 'Controllers', 'app/controllers'
add_group 'Helpers', 'app/helpers'
add_group 'Models', 'app/models/'
add_group 'Controllers', 'app/controllers/'
add_group 'Helpers', 'app/helpers/'
add_group 'Config', 'config/'
add_group 'Libraries', 'lib/'
add_group 'Tests', 'test/'
add_group 'Jobs', 'app/jobs/'
end
require File.expand_path('../../config/environment', __FILE__)