From a7ad20f9874559f59471227ba4d0138809aac152 Mon Sep 17 00:00:00 2001 From: Adnan Hemani Date: Thu, 2 Aug 2018 01:45:04 -0700 Subject: [PATCH] added test coverage --- .rspec | 2 +- app/models/project.rb | 2 +- db/test | Bin 7168 -> 7168 bytes spec/features/dashboard/hangouts_spec.rb | 55 +++++++++++++++++++++++ spec/models/project_spec.rb | 26 +++++++++-- 5 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 spec/features/dashboard/hangouts_spec.rb diff --git a/.rspec b/.rspec index 4e1e0d2..c99d2e7 100644 --- a/.rspec +++ b/.rspec @@ -1 +1 @@ ---color +--require spec_helper diff --git a/app/models/project.rb b/app/models/project.rb index e1de459..e4a65ea 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1,7 +1,7 @@ class Project < ActiveRecord::Base def self.get_hangout_join_icon(project) event_id = Project.where(pivotal_id: project.id.to_s).first.event_id - result = $service.get_event("berkeley.edu_9f5b4e17egep4l9e0birqr8pu4@group.calendar.google.com", event_id) + result = $service.get_event($calendar_id, event_id) return [result.conference_data.conference_solution.icon_uri, result.hangout_link] end diff --git a/db/test b/db/test index e2fcc931b7677d1b2249f95864e54bf06184a69a..4c5f226e89964bb5737e8d9f8ceea8ca19add242 100644 GIT binary patch delta 150 zcmZp$Xt0l6mvk2`o77#P?XmN78vGTmk}Vw}flz_4s$qu$169ZVbn zjO^mFvW!iW%b1f)l8aIkOHxzf6HAm7Qh=U| sfRSBXR+h1GvKe#I<{QigESoua{;+Rm5%|u|YHDC)Y`IC|H#39<01>knegFUf diff --git a/spec/features/dashboard/hangouts_spec.rb b/spec/features/dashboard/hangouts_spec.rb new file mode 100644 index 0000000..1ad88eb --- /dev/null +++ b/spec/features/dashboard/hangouts_spec.rb @@ -0,0 +1,55 @@ +require 'spec_helper' + +describe 'Dashboard::Projects', type: :feature do + before { skip_auth_feature(DashboardController) } + context 'no hangout' do + let(:projects) { (1..5).map { |i| init_object(project_params) }} + let(:project) { projects.first } + before do + Project.delete_all + stub_projects(projects) + stub_stories(project) + visit root_path + end + + specify { expect(page).to have_link "Click here to create Google Hangouts meeting.", href: makehangout_path(:project_id => project.id) } + end + + context "hangout being made" do + let(:projects) { (1..5).map { |i| init_object(project_params) }} + let(:project) { projects.first } + before do + Project.delete_all + p = Project.new({pivotal_id: project.id, event_id: "LOCKED"}) + p.save! + stub_projects(projects) + stub_stories(project) + visit root_path + end + + specify { expect(page).to have_text "Creating Google Hangouts session. Please wait and then refresh your page later." } + end + + context "hangouts already made" do + let(:projects) { (1..5).map { |i| init_object(project_params) }} + let(:project) { projects.first } + before do + Project.delete_all + p = Project.new({pivotal_id: project.id, event_id: "12345"}) + p.save! + $service = mock("$service") + obj = OpenStruct.new + obj.hangout_link = "abcd.com" + obj.conference_data = OpenStruct.new + obj.conference_data.conference_solution = OpenStruct.new + obj.conference_data.conference_solution.icon_uri = "efgh.com" + $service.stubs(:get_event).returns(obj) + stub_projects(projects) + stub_stories(project) + visit root_path + end + + specify { expect(page).to have_link nil, href: "abcd.com" } + + end +end \ No newline at end of file diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 99ad389..ed160ad 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1,5 +1,25 @@ -require 'rails_helper' +require 'spec_helper' -RSpec.describe Project, type: :model do - pending "add some examples to (or delete) #{__FILE__}" +describe Project, type: :model do + before do + Project.delete_all + $service = mock("$service") + $service.stubs(:insert_event).returns({:id => "abcd"}) + end + let(:project_id) { "some_id" } + context "#create_hangout" do + it "runs event create process on a new thread" do + Thread.expects(:new) + Project.create_hangout(:project_id) + end + it "locks before calling API" do + Project.any_instance.expects(:event_id=).with("LOCKED") + Project.create_hangout(:project_id) + end + it "creates new project with event" do + Project.create_hangout(project_id) + assert_equal Project.all.count, 1 + assert_equal Project.all.first.pivotal_id, project_id + end + end end