Sha256: 3f111ed109a49c5ba609e8cd03c6f8c8060e364613a2b4320767bfea0bec6b5e

Contents?: true

Size: 1.95 KB

Versions: 6

Compression:

Stored size: 1.95 KB

Contents

require 'spec_helper'

RSpec.describe ActsAsScrubbable::Scrub do

  describe '.scrub' do

    # update_columns cannot be run on a new record
    subject { ScrubbableModel.new }
    before(:each) { subject.save }

    it 'scrubs all columns' do
      subject.attributes = {
        first_name: "Ted",
        last_name: "Lowe",
        middle_name: "Cassidy",
        name: "Miss Vincenzo Smitham",
        email: "trentdibbert@wiza.com",
        title: "Internal Consultant",
        company_name: "Greenfelder, Collier and Lesch",
        address1: "86780 Watsica Flats",
        address2: "Apt. 913",
        zip_code: "49227",
        state: "Ohio",
        state_short: "OH",
        city: "Port Hildegard",
        lat: -79.5855309778974,
        lon: 13.517352691513906,
        username: "oscar.hermann",
        active: false,
        school: "Eastern Lebsack",
      }
      expect {
        subject.scrubbed_values
      }.not_to raise_error
    end

    it 'changes the first_name attribute when scrub is run' do
      subject.first_name = "Ted"
      allow(Faker::Name).to receive(:first_name).and_return("John")
      _updates = subject.scrubbed_values
      expect(_updates[:first_name]).to eq "John"
    end

    it 'calls street address on faker and updates address1' do
      subject.address1 = "123 abc"
      subject.save
      allow(Faker::Address).to receive(:street_address).and_return("1 Embarcadero")
      _updates = subject.scrubbed_values
      expect(_updates[:address1]).to eq "1 Embarcadero"
    end

    it "doesn't update the field if it's blank" do
      subject.address1 = nil
      subject.save
      allow(Faker::Address).to receive(:street_address).and_return("1 Embarcadero")
      _updates = subject.scrubbed_values
      expect(_updates[:address1]).to be_nil
    end

    it 'runs scrub callbacks' do
      subject.scrubbed_values
      expect(subject.scrubbing_begun).to be(true)
      expect(subject.scrubbing_finished).to be(true)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
acts_as_scrubbable-2.1.3 spec/lib/acts_as_scrubbable/scrub_spec.rb
acts_as_scrubbable-2.1.2 spec/lib/acts_as_scrubbable/scrub_spec.rb
acts_as_scrubbable-2.1.1 spec/lib/acts_as_scrubbable/scrub_spec.rb
acts_as_scrubbable-2.0.0 spec/lib/acts_as_scrubbable/scrub_spec.rb
acts_as_scrubbable-1.4.0 spec/lib/acts_as_scrubbable/scrub_spec.rb
acts_as_scrubbable-1.2.1 spec/lib/acts_as_scrubbable/scrub_spec.rb