Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `README.md`: Upstream README has been changed, but we have a completely different one. Kept our `README.md`. - `lib/sanitize_ext/sanitize_config.rb`: Upstream added support for more incoming HTML tags (a large subset of what glitch-soc accepts). Change the code style to match upstream's but otherwise do not change our code. - `spec/lib/sanitize_config_spec.rb`: Upstream added support for more incoming HTML tags (a large subset of what glitch-soc accepts). Kept our version, since the tests are mostly glitch-soc's, except for cases which are purposefuly different.
This commit is contained in:
@@ -114,6 +114,85 @@ 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