Skip to content
Extraits de code Groupes Projets
user_spec.rb 34,3 ko
Newer Older
          auto_follow_back
          auto_follow_back_aspect_id
danielgrippi's avatar
danielgrippi a validé
          unconfirmed_email
          confirm_email_token
danielgrippi's avatar
danielgrippi a validé
      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

  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

  describe "sign up" do
    before do
      params = {:username => "ohai",
                :email => "ohai@example.com",
                :password => "password",
                :password_confirmation => "password",
                :captcha => "12345",
                :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)
      @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)
  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
  describe "active" 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
    end

    it "returns total_users excluding closed accounts & users without usernames" do
      expect(User.active.count).to eq 6     # 6 users from fixtures