nas/spec/models/instance_info_spec.rb
KMY(雪あすか) 1c054ed3a3
Add: #699 引用・参照対応サーバーをAPIで取得 (#711)
* Add: #699 引用・参照対応サーバーをAPIで取得

* Complete

* ごめん
2024-04-16 12:58:54 +09:00

48 lines
1.7 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe InstanceInfo do
describe '.available_features' do
subject { described_class.available_features('example.com')[:emoji_reaction] }
it 'availables if local account' do
expect(described_class.available_features(nil)[:emoji_reaction]).to be true
end
it 'availables if features contains emoji_reaction' do
Fabricate(:instance_info, domain: 'example.com', software: 'mastodon', data: { metadata: { features: ['emoji_reaction'] } })
expect(subject).to be true
end
it 'unavailables if features does not contain emoji_reaction' do
Fabricate(:instance_info, domain: 'example.com', software: 'mastodon', data: { metadata: { features: ['ohagi'] } })
expect(subject).to be false
end
it 'unavailables if features is not valid' do
Fabricate(:instance_info, domain: 'example.com', software: 'mastodon', data: { metadata: { features: 'good_for_ohagi' } })
expect(subject).to be false
end
it 'unavailables if features is nil' do
Fabricate(:instance_info, domain: 'example.com', software: 'mastodon', data: { metadata: { features: nil } })
expect(subject).to be false
end
it 'unavailables if mastodon server' do
Fabricate(:instance_info, domain: 'example.com', software: 'mastodon')
expect(subject).to be false
end
it 'availables if misskey server' do
Fabricate(:instance_info, domain: 'example.com', software: 'misskey')
expect(subject).to be true
end
it 'unavailables if old mastodon server' do
Fabricate(:instance_info, domain: 'example.com', software: 'mastodon', data: { metadata: [] })
expect(subject).to be false
end
end
end