mirror of https://github.com/mastodon/mastodon
Add `LoginActivity` model spec and `BrowserDetection` concern shared example (#32959)
parent
9fc2fc2251
commit
87e7ad9b8f
@ -0,0 +1,17 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe LoginActivity do
|
||||
include_examples 'BrowserDetection'
|
||||
|
||||
describe 'Associations' do
|
||||
it { is_expected.to belong_to(:user).required }
|
||||
end
|
||||
|
||||
describe 'Validations' do
|
||||
subject { Fabricate.build :login_activity }
|
||||
|
||||
it { is_expected.to define_enum_for(:authentication_method).backed_by_column_of_type(:string) }
|
||||
end
|
||||
end
|
@ -0,0 +1,37 @@
|
||||
# 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
|
Loading…
Reference in New Issue