Newer
Older
Ilya Zhitomirskiy
a validé
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
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
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
describe "perform_export!" do
it "saves a json export to the user" do
user = FactoryGirl.create :user, exporting: true
user.perform_export!
expect(user.export).to be_present
expect(user.exported_at).to be_present
expect(user.exporting).to be_falsey
expect(user.export.filename).to match /.json/
expect(ActiveSupport::Gzip.decompress(user.export.file.read)).to include user.username
end
it "compresses the result" do
user = FactoryGirl.create :user, exporting: true
expect(ActiveSupport::Gzip).to receive :compress
user.perform_export!
end
end
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
describe "queue_export_photos" do
it "queues up a job to perform the export photos" do
user = FactoryGirl.create :user
expect(Workers::ExportPhotos).to receive(:perform_async).with(user.id)
user.queue_export_photos
expect(user.exporting_photos).to be_truthy
end
end
describe "perform_export_photos!" do
before do
@user = alice
filename = 'button.png'
image = File.join(File.dirname(__FILE__), '..', 'fixtures', filename)
@saved_image = @user.build_post(:photo, :user_file => File.open(image), :to => alice.aspects.first.id)
@saved_image.save!
end
it "saves a zip export to the user" do
@user.perform_export_photos!
expect(@user.exported_photos_file).to be_present
expect(@user.exported_photos_at).to be_present
expect(@user.exporting_photos).to be_falsey
expect(@user.exported_photos_file.filename).to match /.zip/
expect(Zip::File.open(@user.exported_photos_file.path).entries.count).to eq(1)
end
it "does not add empty entries when photo not found" do
File.unlink @user.photos.first.unprocessed_image.path
@user.perform_export_photos!
expect(@user.exported_photos_file.filename).to match /.zip/
expect(Zip::File.open(@user.exported_photos_file.path).entries.count).to eq(0)
Jason Robinson
a validé
describe "sign up" do
before do
params = {:username => "ohai",
:email => "ohai@example.com",
:password => "password",
:password_confirmation => "password",
:captcha => "12345",
Jason Robinson
a validé
:person =>
{:profile =>
{:first_name => "O",
:last_name => "Hai"}
}
}
@user = User.build(params)
end
it "saves with captcha off" do
AppConfig.settings.captcha.enable = false
expect(@user).to receive(:save).and_return(true)
Jason Robinson
a validé
@user.sign_up
end
it "saves with captcha on" do
AppConfig.settings.captcha.enable = true
expect(@user).to receive(:save_with_captcha).and_return(true)
Jason Robinson
a validé
@user.sign_up
end
end
describe "maintenance" do
before do
@user = bob
AppConfig.settings.maintenance.remove_old_users.enable = true
end
it "#flags user for removal" do
remove_at = Time.now+5.days
@user.flag_for_removal(remove_at)
expect(@user.remove_after).to eq(remove_at)
end
end
describe "#auth database auth maintenance" do
before do
@user = bob
@user.remove_after = Time.now
@user.save
end
it "remove_after is cleared" do
@user.after_database_authentication
expect(@user.remove_after).to eq(nil)
end
Marc Burt
a validé
Marc Burt
a validé
before do
invited_user = FactoryGirl.build(:user, username: nil)
invited_user.save(validate: false)
closed_account = FactoryGirl.create(:user)
closed_account.person.closed_account = true
closed_account.save
Marc Burt
a validé
end
it "returns total_users excluding closed accounts & users without usernames" do
expect(User.active.count).to eq 6 # 6 users from fixtures
Marc Burt
a validé
end