This commit is contained in:
Maikel Linke
2022-02-16 10:33:49 +11:00
parent 4c50ca69ea
commit a6dee77071
2 changed files with 25 additions and 14 deletions

View File

@@ -2,6 +2,7 @@
class MigrateCustomersData < ActiveRecord::Migration[6.1]
class SpreeAddress < ApplicationRecord; end
class Customer < ApplicationRecord
belongs_to :bill_address, class_name: "SpreeAddress"
end
@@ -34,7 +35,8 @@ class MigrateCustomersData < ActiveRecord::Migration[6.1]
end
def bill_address_name_matches?(customer)
customer.name.delete(" ") == (customer.bill_address.firstname + customer.bill_address.lastname).delete(" ")
address_name = customer.bill_address.firstname + customer.bill_address.lastname
customer.name.delete(" ") == address_name.delete(" ")
end
def split_customer_name!(customer)

View File

@@ -8,8 +8,9 @@ describe MigrateCustomersData do
create(:customer, name: "Timmy Test", first_name: "", last_name: "", bill_address: nil)
}
let!(:customer2) {
create(:customer, name: "Frank Lee Ridiculous", first_name: "", last_name: "",
bill_address: create(:address, first_name: "Frank Lee", last_name: "Ridiculous"))
create(:customer,
name: "Frank Lee Ridiculous", first_name: "", last_name: "",
bill_address: create(:address, first_name: "Frank Lee", last_name: "Ridiculous"))
}
let!(:customer3) {
create(:customer, name: "Shia Le Boeuf", first_name: "", last_name: "",
@@ -19,25 +20,33 @@ describe MigrateCustomersData do
create(:customer, name: "No Eyed Deer", first_name: "", last_name: "", bill_address: nil)
}
let!(:customer5) {
create(:customer, name: " Space Invader ", first_name: "", last_name: "", bill_address: nil)
create(:customer, name: " Space Invader ", first_name: "", last_name: "",
bill_address: nil)
}
let!(:customer6) {
create(:customer, name: "How Many Names Do You Need?", first_name: "", last_name: "", bill_address: nil)
create(:customer, name: "How Many Names Do You Need?", first_name: "", last_name: "",
bill_address: nil)
}
let!(:customer7) {
create(:customer, name: "Customer Name", first_name: "", last_name: "",
bill_address: create(:address, first_name: "Different", last_name: "AddressName"))
create(:customer,
name: "Customer Name", first_name: "", last_name: "",
bill_address: create(:address, first_name: "Different", last_name: "AddressName"))
}
it "migrates customer names" do
subject.up
expect([customer1.reload.first_name, customer1.last_name]).to eq ["Timmy", "Test"]
expect([customer2.reload.first_name, customer2.last_name]).to eq ["Frank Lee", "Ridiculous"]
expect([customer3.reload.first_name, customer3.last_name]).to eq ["Shia", "Le Boeuf"]
expect([customer4.reload.first_name, customer4.last_name]).to eq ["No", "Eyed Deer"]
expect([customer5.reload.first_name, customer5.last_name]).to eq ["Space", "Invader"]
expect([customer6.reload.first_name, customer6.last_name]).to eq ["How", "Many Names Do You Need?"]
expect([customer7.reload.first_name, customer7.last_name]).to eq ["Customer", "Name"]
[
customer1, customer2, customer3, customer4,
customer5, customer6, customer7,
].map(&:reload)
expect([customer1.first_name, customer1.last_name]).to eq ["Timmy", "Test"]
expect([customer2.first_name, customer2.last_name]).to eq ["Frank Lee", "Ridiculous"]
expect([customer3.first_name, customer3.last_name]).to eq ["Shia", "Le Boeuf"]
expect([customer4.first_name, customer4.last_name]).to eq ["No", "Eyed Deer"]
expect([customer5.first_name, customer5.last_name]).to eq ["Space", "Invader"]
expect([customer6.first_name, customer6.last_name]).to eq ["How", "Many Names Do You Need?"]
expect([customer7.first_name, customer7.last_name]).to eq ["Customer", "Name"]
end
end