|
|
@ -114,85 +114,6 @@ RSpec.describe Status, type: :model do |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe '#translatable?' do |
|
|
|
before do |
|
|
|
allow(TranslationService).to receive(:configured?).and_return(true) |
|
|
|
allow(TranslationService).to receive(:configured).and_return(TranslationService.new) |
|
|
|
allow(TranslationService.configured).to receive(:supported?).with('es', 'en').and_return(true) |
|
|
|
|
|
|
|
subject.language = 'es' |
|
|
|
subject.visibility = :public |
|
|
|
end |
|
|
|
|
|
|
|
context 'all conditions are satisfied' do |
|
|
|
it 'returns true' do |
|
|
|
expect(subject.translatable?).to be true |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'translation service is not configured' do |
|
|
|
it 'returns false' do |
|
|
|
allow(TranslationService).to receive(:configured?).and_return(false) |
|
|
|
allow(TranslationService).to receive(:configured).and_raise(TranslationService::NotConfiguredError) |
|
|
|
expect(subject.translatable?).to be false |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'status language is nil' do |
|
|
|
it 'returns true' do |
|
|
|
subject.language = nil |
|
|
|
allow(TranslationService.configured).to receive(:supported?).with(nil, 'en').and_return(true) |
|
|
|
expect(subject.translatable?).to be true |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'status language is same as default locale' do |
|
|
|
it 'returns false' do |
|
|
|
subject.language = I18n.locale |
|
|
|
expect(subject.translatable?).to be false |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'status language is unsupported' do |
|
|
|
it 'returns false' do |
|
|
|
subject.language = 'af' |
|
|
|
allow(TranslationService.configured).to receive(:supported?).with('af', 'en').and_return(false) |
|
|
|
expect(subject.translatable?).to be false |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'default locale is unsupported' do |
|
|
|
it 'returns false' do |
|
|
|
allow(TranslationService.configured).to receive(:supported?).with('es', 'af').and_return(false) |
|
|
|
I18n.with_locale('af') do |
|
|
|
expect(subject.translatable?).to be false |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'default locale has region' do |
|
|
|
it 'returns true' do |
|
|
|
I18n.with_locale('en-GB') do |
|
|
|
expect(subject.translatable?).to be true |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'status text is blank' do |
|
|
|
it 'returns false' do |
|
|
|
subject.text = ' ' |
|
|
|
expect(subject.translatable?).to be false |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'status visiblity is hidden' do |
|
|
|
it 'returns false' do |
|
|
|
subject.visibility = 'limited' |
|
|
|
expect(subject.translatable?).to be false |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe '#content' do |
|
|
|
it 'returns the text of the status if it is not a reblog' do |
|
|
|
expect(subject.content).to eql subject.text |
|
|
|