Replace Status#translatable? with language matrix in separate endpoint (#24037)
				
					
				
			This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							630436ab2d
						
					
				
				
					commit
					bd047acc35
				
			@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user