Newer
Older
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
Daniel Vincent Grippi
a validé
context "relations" do
context "#conversations" do
it "doesn't find anything when there is nothing to find" do
u = FactoryGirl.create(:user)
end
it "finds the users conversations" do
c = FactoryGirl.create(:conversation, { author: alice.person })
expect(alice.conversations).to include c
end
it "doesn't find other users conversations" do
c1 = FactoryGirl.create(:conversation)
c2 = FactoryGirl.create(:conversation)
c_own = FactoryGirl.create(:conversation, { author: alice.person })
expect(alice.conversations).to include c_own
expect(alice.conversations).not_to include c1
expect(alice.conversations).not_to include c2
end
end
end
Sarah Mei
a validé
describe "private key" do
it 'has a key' do
expect(alice.encryption_key).not_to be nil
Sarah Mei
a validé
end
Sarah Mei
a validé
it 'marshalls the key to and from the db correctly' do
user = User.build(:username => 'max', :email => 'foo@bar.com', :password => 'password', :password_confirmation => 'password')
Sarah Mei
a validé
user.save!
expect(user.serialized_private_key).to be_present
Sarah Mei
a validé
expect{
user.reload.encryption_key
Sarah Mei
a validé
end
Devendra
a validé
describe 'yearly_actives' do
it 'returns list which includes users within last year' do
Devendra
a validé
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 1.month
Devendra
a validé
user.save
expect(User.yearly_actives).to include user
Devendra
a validé
end
it 'returns list which does not include users seen within last year' do
Devendra
a validé
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 2.year
Devendra
a validé
user.save
expect(User.yearly_actives).not_to include user
Devendra
a validé
end
end
describe 'monthly_actives' do
it 'returns list which includes users seen within last month' do
Devendra
a validé
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 1.day
Devendra
a validé
user.save
expect(User.monthly_actives).to include user
Devendra
a validé
end
it 'returns list which does not include users seen within last month' do
Devendra
a validé
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 2.month
Devendra
a validé
user.save
expect(User.monthly_actives).not_to include user
Devendra
a validé
end
end
describe 'daily_actives' do
it 'returns list which includes users seen within last day' do
Devendra
a validé
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 1.hour
Devendra
a validé
user.save
expect(User.daily_actives).to include(user)
Devendra
a validé
end
it 'returns list which does not include users seen within last day' do
Devendra
a validé
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 2.day
Devendra
a validé
user.save
expect(User.daily_actives).not_to include(user)
Devendra
a validé
end
end
describe 'halfyear_actives' do
it 'returns list which includes users seen within half a year' do
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 4.month
user.save
expect(User.halfyear_actives).to include user
end
it 'returns list which does not include users seen within the last half a year' do
user = FactoryGirl.build(:user)
user.last_seen = Time.now - 7.month
user.save
expect(User.halfyear_actives).not_to include user
end
end
Devendra
a validé
describe 'hidden_shareables' do
before do
@sm_id = @sm.id.to_s
@sm_class = @sm.class.base_class.to_s
end
it 'is a hash' do
expect(alice.hidden_shareables).to eq({})
end
describe '#add_hidden_shareable' do
it 'adds the share id to an array which is keyed by the objects class' do
alice.add_hidden_shareable(@sm_class, @sm_id)
expect(alice.hidden_shareables['Post']).to eq([@sm_id])
end
it 'handles having multiple posts' do
alice.add_hidden_shareable(@sm_class, @sm_id)
alice.add_hidden_shareable(sm2.class.base_class.to_s, sm2.id.to_s)
expect(alice.hidden_shareables['Post']).to match_array([@sm_id, sm2.id.to_s])
end
it 'handles having multiple shareable types' do
alice.add_hidden_shareable(photo.class.base_class.to_s, photo.id.to_s)
alice.add_hidden_shareable(@sm_class, @sm_id)
expect(alice.hidden_shareables['Photo']).to eq([photo.id.to_s])
end
end
describe '#remove_hidden_shareable' do
it 'removes the id from the hash if it is there' do
alice.add_hidden_shareable(@sm_class, @sm_id)
alice.remove_hidden_shareable(@sm_class, @sm_id)
expect(alice.hidden_shareables['Post']).to eq([])
end
end
describe 'toggle_hidden_shareable' do
it 'calls add_hidden_shareable if the key does not exist, and returns true' do
expect(alice).to receive(:add_hidden_shareable).with(@sm_class, @sm_id)
expect(alice.toggle_hidden_shareable(@sm)).to be true
end
it 'calls remove_hidden_shareable if the key exists' do
expect(alice).to receive(:remove_hidden_shareable).with(@sm_class, @sm_id)
alice.add_hidden_shareable(@sm_class, @sm_id)
expect(alice.toggle_hidden_shareable(@sm)).to be false
end
end
describe '#is_shareable_hidden?' do
it 'returns true if the shareable is hidden' do
bob.toggle_hidden_shareable(post)
expect(bob.is_shareable_hidden?(post)).to be true
end
it 'returns false if the shareable is not present' do
expect(bob.is_shareable_hidden?(post)).to be false
end
end
end
describe 'overwriting people' do
it 'does not overwrite old users with factory' do
}.to raise_error ActiveRecord::StatementInvalid
it 'does not overwrite old users with create' do
params = {:username => "ohai",
:email => "ohai@example.com",
:password => "password",
:password_confirmation => "password",
:person =>
{:profile =>
{:first_name => "O",
new_user = User.build(params)
new_user.save
expect(new_user.persisted?).to be true
expect(new_user.id).not_to eq(alice.id)
describe "validation" do
describe "of associated person" do
it "fails if person is not valid" do
user.person.serialized_public_key = nil
expect(user.person).not_to be_valid
expect(user).not_to be_valid
expect(user.errors.full_messages.count).to eq(1)
expect(user.errors.full_messages.first).to match(/Person is invalid/i)
describe "of username" do
end
it "requires uniqueness" do
end
Maxwell Salzberg
a validé
it 'requires uniqueness also amount Person objects with diaspora handle' do
p = FactoryGirl.create(:person, :diaspora_handle => "jimmy#{User.diaspora_id_host}")
Maxwell Salzberg
a validé
alice.username = 'jimmy'
Maxwell Salzberg
a validé
end
it "downcases username" do
user = FactoryGirl.build(:user, :username => "WeIrDcAsE")
expect(user).to be_valid
expect(user.username).to eq("weirdcase")
it "fails if the requested username is only different in case from an existing username" do
expect(user).to be_valid
expect(user.username).to eq("janie")
it "fails if there's whitespace in the middle" do
it 'can not contain non url safe characters' do
end
it 'should not contain periods' do
it "can be 32 characters long" do
alice.username = "hexagoooooooooooooooooooooooooon"
end
it "cannot be 33 characters" do
alice.username = "hexagooooooooooooooooooooooooooon"
end
it "cannot be one of the blacklist names" do
['hostmaster', 'postmaster', 'root', 'webmaster'].each do |username|
alice.username = username
describe "of email" do
it "requires email address" do
end
it "requires a unique email address" do
it "resets a matching unconfirmed_email on save" do
eve.update_attribute :unconfirmed_email, "new@example.com"
alice.update_attribute :email, "new@example.com"
eve.reload
expect(eve.unconfirmed_email).to eql(nil)
end
describe "of unconfirmed_email" do
it "unconfirmed_email address can be nil/blank" do
alice.unconfirmed_email = nil
alice.unconfirmed_email = ""
end
it "does NOT require a unique unconfirmed_email address" do
eve.update_attribute :unconfirmed_email, "new@example.com"
alice.unconfirmed_email = "new@example.com"
it "requires an unconfirmed_email address which is not another user's email address" do
alice.unconfirmed_email = eve.email
expect(alice).not_to be_valid
end
alice.unconfirmed_email = "somebody@anywhere"
describe "of language" do
it "requires availability" do
end
it "should save with current language if blank" do
I18n.locale = :fr
user = User.build(:username => 'max', :email => 'foo@bar.com', :password => 'password', :password_confirmation => 'password')
it "should save with language what is set" do
I18n.locale = :fr
user = User.build(:username => 'max', :email => 'foo@bar.com', :password => 'password', :password_confirmation => 'password', :language => 'de')
describe "of color_theme" do
it "requires availability" do
alice.color_theme = "some invalid theme"
expect(alice).not_to be_valid
end
end
Maxwell Salzberg
a validé
describe ".build" do
context 'with valid params' do
before do
params = {:username => "ohai",
:email => "ohai@example.com",
:password => "password",
:password_confirmation => "password",
:person =>
{:profile =>
{:first_name => "O",
:last_name => "Hai"}
}
}
@user = User.build(params)
end
expect(@user.persisted?).to be false
expect(@user.person.persisted?).to be false
expect(User.find_by_username("ohai")).to be_nil
end
it 'saves successfully' do
expect(@user).to be_valid
expect(@user.save).to be true
expect(@user.persisted?).to be true
expect(@user.person.persisted?).to be true
expect(User.find_by_username("ohai")).to eq(@user)
end
describe "with invalid params" do
before do
@invalid_params = {
:username => "ohai",
:email => "ohai@example.com",
:password => "password",
:password_confirmation => "wrongpasswordz",
:person => {:profile => {:first_name => "", :last_name => ""}}}
end
it "raises no error" do
expect { User.build(@invalid_params) }.not_to raise_error
it "does not save" do
expect(User.build(@invalid_params).save).to be false
expect { User.build(@invalid_params) }.not_to change(Person, :count)
expect(User).to receive(:generate_key).exactly(0).times
describe "with malicious params" do
before do
@invalid_params = {:username => "ohai",
:email => "ohai@example.com",
:password => "password",
:password_confirmation => "password",
:profile =>
{:first_name => "O",
:last_name => "Hai"}
}
}
end
it "does not assign it to the person" do
expect(User.build(@invalid_params).person.id).not_to eq(person.id)
describe '#process_invite_acceptence' do
it 'sets the inviter on user' do
inv = InvitationCode.create(:user => bob)
user.process_invite_acceptence(inv)
expect(user.invited_by_id).to eq(bob.id)
describe 'update_user_preferences' do
before do
@pref_count = UserPreference::VALID_EMAIL_TYPES.count
end
it 'unsets disable mail and makes the right amount of prefs' do
alice.disable_mail = true
Sarah Mei
a validé
expect {
alice.update_user_preferences({})
Sarah Mei
a validé
}.to change(alice.user_preferences, :count).by(@pref_count)
it 'still sets new prefs to false on update' do
alice.disable_mail = true
Sarah Mei
a validé
expect {
alice.update_user_preferences({'mentioned' => false})
Sarah Mei
a validé
}.to change(alice.user_preferences, :count).by(@pref_count-1)
expect(alice.reload.disable_mail).to be false
Raphael Sofaer
a validé
describe ".find_for_database_authentication" do
expect(User.find_for_database_authentication(:username => alice.username)).to eq(alice)
Raphael Sofaer
a validé
end
it 'finds a user by email' do
expect(User.find_for_database_authentication(:username => alice.email)).to eq(alice)
expect(User.find_for_database_authentication(:username => alice.username.upcase)).to eq(alice)
describe '#update_profile' do
before do
@params = {
:first_name => 'bob',
:last_name => 'billytown',
it "dispatches the profile when tags are set" do
@params = {tag_string: '#what #hey'}
expect(Diaspora::Federation::Dispatcher).to receive(:defer_dispatch).with(alice, alice.profile, {})
expect(alice.update_profile(@params)).to be true
danielgrippi
a validé
end
it "sends a profile to their contacts" do
expect(Diaspora::Federation::Dispatcher).to receive(:defer_dispatch).with(alice, alice.profile, {})
expect(alice.update_profile(@params)).to be true
it 'updates names' do
expect(alice.update_profile(@params)).to be true
expect(alice.reload.profile.first_name).to eq('bob')
it 'updates image_url' do
params = {:image_url => "http://clown.com"}
expect(alice.update_profile(params)).to be true
expect(alice.reload.profile.image_url).to eq("http://clown.com")
context 'passing in a photo' do
before do
fixture_filename = 'button.png'
fixture_name = File.join(File.dirname(__FILE__), '..', 'fixtures', fixture_filename)
image = File.open(fixture_name)
@photo = Photo.diaspora_initialize(:author => alice.person, :user_file => image)
@photo.save!
@params = {:photo => @photo}
end
it 'updates image_url' do
expect(alice.update_profile(@params)).to be true
alice.reload
expect(alice.profile.image_url).to match(Regexp.new(@photo.url(:thumb_large)))
expect(alice.profile.image_url_medium).to match(Regexp.new(@photo.url(:thumb_medium)))
expect(alice.profile.image_url_small).to match(Regexp.new(@photo.url(:thumb_small)))
it 'unpends the photo' do
@photo.pending = true
@photo.save!
@photo.reload
expect(alice.update_profile(@params)).to be true
expect(@photo.reload.pending).to be false
it 'should dispatch post' do
photo = alice.build_post(:photo, :user_file => uploaded_photo, :text => "hello", :to => alice.aspects.first.id)
expect(alice).to receive(:dispatch_post).with(photo)
alice.update_post(photo, :text => 'hellp')
describe 'account deletion' do
describe '#destroy' do
it 'removes invitations from the user' do
}.to change {alice.invitations_from_me(true).count }.by(-1)
it 'removes invitations to the user' do
Maxwell Salzberg
a validé
Invitation.new(:sender => eve, :recipient => alice, :identifier => alice.email, :aspect => eve.aspects.first).save(:validate => false)
}.to change {alice.invitations_to_me(true).count }.by(-1)
it 'removes all service connections' do
Services::Facebook.create(:access_token => 'what', :user_id => alice.id)
alice.services.count
}.by(-1)
end
describe '#mail' do
it 'enqueues a mail job' do
expect(Workers::Mail::StartedSharing).to receive(:perform_async).with(alice.id, 'contactrequestid').once
alice.mail(Workers::Mail::StartedSharing, alice.id, 'contactrequestid')
it 'does not enqueue a mail job if the correct corresponding job has a preference entry' do
alice.user_preferences.create(:email_type => 'started_sharing')
expect(Workers::Mail::StartedSharing).not_to receive(:perform_async)
alice.mail(Workers::Mail::StartedSharing, alice.id, 'contactrequestid')
maxwell
a validé
it 'does not send a mail if disable_mail is set to true' do
alice.disable_mail = true
alice.save
alice.reload
expect(Workers::Mail::StartedSharing).not_to receive(:perform_async)
alice.mail(Workers::Mail::StartedSharing, alice.id, 'contactrequestid')
maxwell
a validé
end
Sarah Mei
a validé
alices_aspect = alice.aspects.where(:name => "generic").first
@bobs_aspect = bob.aspects.where(:name => "generic").first
Sarah Mei
a validé
@message = alice.post(:status_message, :text => "cool", :to => alices_aspect)
@message2 = bob.post(:status_message, :text => "uncool", :to => @bobs_aspect)
@like = alice.like!(@message)
@like2 = bob.like!(@message)
end
describe '#like_for' do
it 'returns the correct like' do
expect(alice.like_for(@message)).to eq(@like)
expect(bob.like_for(@message)).to eq(@like2)
expect(alice.like_for(@message2)).to be_nil
describe '#liked?' do
it "returns true if there's a like" do
expect(alice.liked?(@message)).to be true
expect(bob.liked?(@message)).to be true
expect(alice.liked?(@message2)).to be false
context 'change email' do
let(:user){ alice }
describe "#unconfirmed_email" do
it "is nil by default" do
expect(user.unconfirmed_email).to eql(nil)
end
it "forces blank to nil" do
user.unconfirmed_email = ""
user.save!
expect(user.unconfirmed_email).to eql(nil)
end
it "is ignored if it equals email" do
user.unconfirmed_email = user.email
user.save!
expect(user.unconfirmed_email).to eql(nil)
end
it "allows change to valid new email" do
user.unconfirmed_email = "alice@newmail.com"
user.save!
expect(user.unconfirmed_email).to eql("alice@newmail.com")
it "downcases the unconfirmed email" do
user.unconfirmed_email = "AlIce@nEwmaiL.Com"
user.save!
expect(user.unconfirmed_email).to eql("alice@newmail.com")
end
end
describe "#confirm_email_token" do
it "is nil by default" do
expect(user.confirm_email_token).to eql(nil)
end
it "is autofilled when unconfirmed_email is set to new email" do
user.unconfirmed_email = "alice@newmail.com"
user.save!
expect(user.confirm_email_token).not_to be_blank
expect(user.confirm_email_token.size).to eql(30)
end
it "is set back to nil when unconfirmed_email is empty" do
user.unconfirmed_email = "alice@newmail.com"
user.save!
expect(user.confirm_email_token).not_to be_blank
user.unconfirmed_email = nil
user.save!
expect(user.confirm_email_token).to eql(nil)
end
it "generates new token on every new unconfirmed_email" do
user.unconfirmed_email = "alice@newmail.com"
user.save!
first_token = user.confirm_email_token
user.unconfirmed_email = "alice@andanotherone.com"
user.save!
expect(user.confirm_email_token).not_to eql(first_token)
expect(user.confirm_email_token.size).to eql(30)
describe "#send_confirm_email" do
it "enqueues a mail job on user with unconfirmed email" do
user.update_attribute(:unconfirmed_email, "alice@newmail.com")
expect(Workers::Mail::ConfirmEmail).to receive(:perform_async).with(alice.id).once
it "enqueues NO mail job on user without unconfirmed email" do
expect(Workers::Mail::ConfirmEmail).not_to receive(:perform_async).with(alice.id)
end
end
describe '#confirm_email' do
context 'on user with unconfirmed email' do
before do
user.update_attribute(:unconfirmed_email, "alice@newmail.com")
end
it 'confirms email and set the unconfirmed_email to email on valid token' do
expect(user.confirm_email(user.confirm_email_token)).to eql(true)
expect(user.email).to eql("alice@newmail.com")
expect(user.unconfirmed_email).to eql(nil)
expect(user.confirm_email_token).to eql(nil)
end
it 'returns false and does not change anything on wrong token' do
expect(user.confirm_email(user.confirm_email_token.reverse)).to eql(false)
expect(user.email).not_to eql("alice@newmail.com")
expect(user.unconfirmed_email).not_to eql(nil)
expect(user.confirm_email_token).not_to eql(nil)
it 'returns false and does not change anything on blank token' do
expect(user.confirm_email("")).to eql(false)
expect(user.email).not_to eql("alice@newmail.com")
expect(user.unconfirmed_email).not_to eql(nil)
expect(user.confirm_email_token).not_to eql(nil)
it 'returns false and does not change anything on blank token' do
expect(user.confirm_email(nil)).to eql(false)
expect(user.email).not_to eql("alice@newmail.com")
expect(user.unconfirmed_email).not_to eql(nil)
expect(user.confirm_email_token).not_to eql(nil)
end
end
context 'on user without unconfirmed email' do
it 'returns false and does not change anything on any token' do
expect(user.confirm_email("12345"*6)).to eql(false)
expect(user.email).not_to eql("alice@newmail.com")
expect(user.unconfirmed_email).to eql(nil)
expect(user.confirm_email_token).to eql(nil)
it 'returns false and does not change anything on blank token' do
expect(user.confirm_email("")).to eql(false)
expect(user.email).not_to eql("alice@newmail.com")
expect(user.unconfirmed_email).to eql(nil)
expect(user.confirm_email_token).to eql(nil)
it 'returns false and does not change anything on blank token' do
expect(user.confirm_email(nil)).to eql(false)
expect(user.email).not_to eql("alice@newmail.com")
expect(user.unconfirmed_email).to eql(nil)
expect(user.confirm_email_token).to eql(nil)
danielgrippi
a validé
describe "#retract" do
let(:retraction) { double }
let(:post) { FactoryGirl.build(:status_message, author: bob.person, public: true) }
Raphael Sofaer
a validé
context "posts" do
it "sends a retraction" do
expect(Retraction).to receive(:for).with(post, bob).and_return(retraction)
expect(retraction).to receive(:defer_dispatch).with(bob)
expect(retraction).to receive(:perform)
describe "#send_reset_password_instructions" do
it "queues up a job to send the reset password instructions" do
expect(Workers::ResetPassword).to receive(:perform_async).with(user.id)
user.send_reset_password_instructions
describe "#seed_aspects" do
describe "create aspects" do
let(:user) {
user = FactoryGirl.create(:user)
user.seed_aspects
user
}
[I18n.t('aspects.seed.family'), I18n.t('aspects.seed.friends'),
I18n.t('aspects.seed.work'), I18n.t('aspects.seed.acquaintances')].each do |aspect_name|
it "creates an aspect named #{aspect_name} for the user" do
expect(user.aspects.find_by_name(aspect_name)).not_to be_nil
end
end
end
describe "autofollow sharing" do
let(:user) {
FactoryGirl.create(:user)
}
context "with autofollow sharing enabled" do
it "should start sharing with autofollow account" do
AppConfig.settings.autofollow_on_join = true
AppConfig.settings.autofollow_on_join_user = "one"
expect(Person).to receive(:find_or_fetch_by_identifier).with("one")
user.seed_aspects
end
end
context "with sharing with diasporahq enabled" do
it "should not start sharing with the diasporahq account" do
AppConfig.settings.autofollow_on_join = false
expect(Person).not_to receive(:find_or_fetch_by_identifier)
user.seed_aspects
end
end
end
end
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
describe "#send_welcome_message" do
let(:user) { FactoryGirl.create(:user) }
let(:podmin) { FactoryGirl.create(:user) }
context "with welcome message enabled" do
before do
AppConfig.settings.welcome_message.enabled = true
end
it "should send welcome message from podmin account" do
AppConfig.admins.account = podmin.username
expect {
user.send_welcome_message
}.to change(user.conversations, :count).by(1)
expect(user.conversations.first.author.owner.username).to eq podmin.username
end
it "should send welcome message text from config" do
AppConfig.admins.account = podmin.username
AppConfig.settings.welcome_message.text = "Hello %{username}, welcome!"
user.send_welcome_message
expect(user.conversations.first.messages.first.text).to eq "Hello #{user.username}, welcome!"
end
it "should use subject from config" do
AppConfig.settings.welcome_message.subject = "Welcome Message"
AppConfig.admins.account = podmin.username
user.send_welcome_message
expect(user.conversations.first.subject).to eq "Welcome Message"
end
it "should send no welcome message if no podmin is specified" do
AppConfig.admins.account = ""
user.send_welcome_message
expect(user.conversations.count).to eq 0
end
end
context "with welcome message disabled" do
it "shouldn't send a welcome message" do
AppConfig.settings.welcome_message.enabled = false
AppConfig.admins.account = podmin.username
user.send_welcome_message
expect(user.conversations.count).to eq 0
end
end
end
context "close account" do
before do
@user = bob
end
describe "#close_account!" do
Ilya Zhitomirskiy
a validé
it 'locks the user out' do
@user.close_account!
expect(@user.reload.access_locked?).to be true
Ilya Zhitomirskiy
a validé
end
it 'creates an account deletion' do
expect{
@user.close_account!
}.to change(AccountDeletion, :count).by(1)
Ilya Zhitomirskiy
a validé
end
Ilya Zhitomirskiy
a validé
it 'calls person#lock_access!' do
expect(@user.person).to receive(:lock_access!)
Ilya Zhitomirskiy
a validé
@user.close_account!
end
end
describe "#clear_account!" do
it 'resets the password to a random string' do
random_pass = "12345678909876543210"
expect(SecureRandom).to receive(:hex).and_return(random_pass)
Ilya Zhitomirskiy
a validé
@user.clear_account!
@user.valid_password?(random_pass)
end
it 'clears all the clearable fields' do
Ilya Zhitomirskiy
a validé
@user.reload
Ilya Zhitomirskiy
a validé
@user.clear_account!
Ilya Zhitomirskiy
a validé
@user.reload
expect(@user.send(attr.to_sym)).to be_blank
it 'disables mail' do
@user.disable_mail = false
@user.clear_account!
expect(@user.reload.disable_mail).to be true
end
it 'sets getting_started and show_community_spotlight_in_stream fields to false' do
@user.clear_account!
expect(@user.reload.getting_started).to be false
expect(@user.reload.show_community_spotlight_in_stream).to be false
end
end
describe "#clearable_attributes" do
Ilya Zhitomirskiy
a validé
it 'returns the clearable fields' do
expect(user.send(:clearable_fields).sort).to eq(%w{
language
invitation_token
invitation_sent_at
reset_password_token
remember_created_at
sign_in_count
current_sign_in_at
last_sign_in_at
current_sign_in_ip
hidden_shareables
last_sign_in_ip
invitation_service
invitation_identifier
invitation_limit
invited_by_id
invited_by_type
authentication_token
auto_follow_back
auto_follow_back_aspect_id
end
end
describe "queue_export" do
it "queues up a job to perform the export" do
user = FactoryGirl.create :user
expect(Workers::ExportUser).to receive(:perform_async).with(user.id)
user.queue_export
expect(user.exporting).to be_truthy
end
end