mirror of https://github.com/glitch-soc/mastodon
38 lines
995 B
Ruby
38 lines
995 B
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.shared_examples 'BrowserDetection' do
|
|
subject { described_class.new(user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15') }
|
|
|
|
describe '#detection' do
|
|
it 'sets a Browser instance as detection' do
|
|
expect(subject.detection)
|
|
.to be_a(Browser::Safari)
|
|
end
|
|
end
|
|
|
|
describe '#browser' do
|
|
it 'returns browser name from id' do
|
|
expect(subject.browser)
|
|
.to eq(:safari)
|
|
end
|
|
end
|
|
|
|
describe '#platform' do
|
|
it 'returns detected platform' do
|
|
expect(subject.platform)
|
|
.to eq(:mac)
|
|
end
|
|
end
|
|
|
|
describe 'Callbacks' do
|
|
describe 'populating the user_agent value' do
|
|
subject { Fabricate.build described_class.name.underscore.to_sym, user_agent: nil }
|
|
|
|
it 'changes nil to empty string' do
|
|
expect { subject.save }
|
|
.to change(subject, :user_agent).from(nil).to('')
|
|
end
|
|
end
|
|
end
|
|
end
|