forked from abdojulari/transcript-editor
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add more rspec suite to increase test coverage
- Loading branch information
1 parent
7e7b61e
commit e893239
Showing
6 changed files
with
256 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
require 'rails_helper' | ||
|
||
RSpec.describe Searchable do | ||
let(:controller) { FakesController.new } | ||
let(:params) { {} } | ||
|
||
before do | ||
class FakesController < ApplicationController | ||
include Searchable | ||
end | ||
|
||
allow(controller).to receive(:params).and_return( | ||
ActionController::Parameters.new(params) | ||
) | ||
end | ||
|
||
after do | ||
Object.send :remove_const, :FakesController | ||
end | ||
|
||
describe '#sort_params' do | ||
subject(:sort_params) { controller.send(:sort_params) } | ||
|
||
context 'turn collection id as array' do | ||
let(:params) do | ||
{ | ||
data: { | ||
collection_id: '1' | ||
} | ||
} | ||
end | ||
|
||
it 'collection id as array' do | ||
expect(sort_params.dig('collection_id')).to eq (['1']) | ||
end | ||
end | ||
|
||
context 'require params' do | ||
let(:params) do | ||
{ | ||
data: { | ||
sort_id: 'asc', | ||
text: 'any-text', | ||
q: 'any-query', | ||
institution_id: 'any institution id', | ||
theme: ['theme_1'], | ||
collection_id: ['1'], | ||
unrequired_params: 1 | ||
} | ||
} | ||
end | ||
|
||
it 'returns required params' do | ||
expect(sort_params.keys).to contain_exactly( | ||
"sort_id", "text", "q", "institution_id", "theme", "collection_id" | ||
) | ||
end | ||
end | ||
end | ||
|
||
describe '#build_params' do | ||
subject(:build_params) { controller.send(:build_params) } | ||
|
||
let(:params) do | ||
{ | ||
data: { | ||
sort_id: 'asc', | ||
text: 'any-text', | ||
q: 'any-query', | ||
institution_id: 'any institution id', | ||
theme: ['theme_1'], | ||
collection_id: ['1'], | ||
unrequired_params: 1 | ||
} | ||
} | ||
end | ||
|
||
context 'when all params is present' do | ||
it 'returns all params' do | ||
expect(build_params.keys).to contain_exactly( | ||
"sort_id", "text", "q", "institution_id", "theme", "collection_id" | ||
) | ||
end | ||
end | ||
|
||
context 'when collection_id value is 0' do | ||
let(:params) do | ||
{ | ||
data: { | ||
sort_id: 'asc', | ||
text: 'any-text', | ||
q: 'any-query', | ||
institution_id: 'any institution id', | ||
theme: ['theme_1'], | ||
collection_id: ['0'], | ||
unrequired_params: 1 | ||
} | ||
} | ||
end | ||
|
||
it 'returns all params except collection id' do | ||
expect(build_params.keys).to contain_exactly( | ||
"sort_id", "text", "q", "institution_id", "theme" | ||
) | ||
end | ||
end | ||
end | ||
|
||
describe '#load_institutions' do | ||
subject(:load_institutions) { controller.send(:load_institutions) } | ||
|
||
context 'when collection id is present' do | ||
let(:collection) { create(:collection) } | ||
let(:params) do | ||
{ | ||
data: { | ||
collection_id: [collection.id] | ||
} | ||
} | ||
end | ||
|
||
it 'it returns institution' do | ||
expect(load_institutions).to include(collection.institution) | ||
end | ||
end | ||
|
||
context 'when collection id is not present' do | ||
it 'returns all institution' do | ||
institution_a = create(:institution) | ||
institution_b = create(:institution) | ||
|
||
expect(load_institutions).to include(institution_a, institution_b) | ||
end | ||
end | ||
end | ||
|
||
describe '#load_collection' do | ||
subject(:load_collection) { controller.send(:load_collection) } | ||
|
||
let(:collection) { create(:collection) } | ||
|
||
context 'when institution params is present' do | ||
let(:params) do | ||
{ | ||
data: { | ||
institution_id: collection.institution.id | ||
} | ||
} | ||
end | ||
|
||
it 'returns collection' do | ||
expect(load_collection).to contain_exactly(collection) | ||
end | ||
end | ||
|
||
context 'when institution params is not present' do | ||
it 'returns all collection' do | ||
collection_a = create(:collection) | ||
collection_b = create(:collection) | ||
|
||
expect(load_collection).to contain_exactly(collection_a, collection_b) | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
require 'rails_helper' | ||
|
||
RSpec.describe TranscriptLineDecorator do | ||
let(:decorator) { described_class.new(transcript_line) } | ||
let(:transcript_line) { create(:transcript_line) } | ||
|
||
describe '#search_title' do | ||
subject(:search_title) { decorator.search_title } | ||
|
||
let(:expectation) do | ||
"#{transcript_line.transcript.decorate.collection_title}"\ | ||
" - #{transcript_line.transcript.title}" | ||
end | ||
|
||
it { is_expected.to eq expectation } | ||
end | ||
|
||
describe '#image_url' do | ||
subject(:image_url) { decorator.image_url } | ||
|
||
it { is_expected.to eq transcript_line.transcript.image_url } | ||
end | ||
|
||
describe '#humanize_duration' do | ||
subject(:humanize_duration) { decorator.humanize_duration(12345) } | ||
|
||
it { is_expected.to eq '(3h 25m 45s)' } | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
require 'rails_helper' | ||
|
||
RSpec.describe DeleteInstitutionJob do | ||
let!(:institution) { create(:institution) } | ||
let(:user) { create(:user) } | ||
|
||
describe "#perform_later" do | ||
it "enqueues job" do | ||
ActiveJob::Base.queue_adapter = :test | ||
|
||
expect { | ||
described_class.perform_later(institution.name, institution.id, user.email) | ||
}.to have_enqueued_job | ||
end | ||
|
||
it 'destroy institution and execute mailer' do | ||
mailer = double(deliver_now: true) | ||
allow(InstitutionMailer).to receive(:delete_institution).and_return(mailer) | ||
|
||
expect(InstitutionMailer).to receive(:delete_institution).and_return(mailer) | ||
expect { | ||
described_class.perform_now(institution.name, institution.id, user.email) | ||
}.to change { Institution.count }.by(-1) | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
require 'rails_helper' | ||
|
||
RSpec.describe RecalculateTranscriptsJob do | ||
describe "#perform_later" do | ||
it "enqueues job" do | ||
ActiveJob::Base.queue_adapter = :test | ||
|
||
expect { described_class.perform_later }.to have_enqueued_job | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
require 'rails_helper' | ||
|
||
RSpec.describe VoiceBaseUploadJob do | ||
let!(:transcript) { create(:transcript) } | ||
let(:user) { create(:user) } | ||
|
||
describe "#perform_later" do | ||
it "enqueues job" do | ||
ActiveJob::Base.queue_adapter = :test | ||
|
||
expect { described_class.perform_later(transcript) }.to have_enqueued_job | ||
end | ||
|
||
it 'execute VoiceBase API' do | ||
allow(VoiceBase::VoicebaseApiService).to receive(:upload_media).with(transcript.id) | ||
|
||
expect(VoiceBase::VoicebaseApiService).to receive(:upload_media).with(transcript.id) | ||
described_class.perform_now(transcript.id) | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters