add customer model spec and scope
This commit is contained in:
parent
dcb4b82dec
commit
b7a3be9344
|
@ -13,9 +13,9 @@ module DiscoursePatrons
|
||||||
source: params[:source]
|
source: params[:source]
|
||||||
)
|
)
|
||||||
|
|
||||||
DiscoursePatrons::Customer.create(
|
DiscoursePatrons::Customer.create_customer(
|
||||||
customer_id: customer.id
|
current_user,
|
||||||
user_id: current_user.id
|
customer
|
||||||
)
|
)
|
||||||
|
|
||||||
render_json_dump customer
|
render_json_dump customer
|
||||||
|
|
|
@ -2,6 +2,14 @@
|
||||||
|
|
||||||
module DiscoursePatrons
|
module DiscoursePatrons
|
||||||
class Customer < ActiveRecord::Base
|
class Customer < ActiveRecord::Base
|
||||||
self.table_name = "discourse_patrons_customers"
|
scope :find_user, ->(user) { find_by_user_id(user.id) }
|
||||||
|
|
||||||
|
class << self
|
||||||
|
table_name = "discourse_patrons_customers"
|
||||||
|
|
||||||
|
def create_customer(user, customer)
|
||||||
|
create(customer_id: customer[:id], user_id: user.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,7 @@ class CreateCustomers < ActiveRecord::Migration[5.2]
|
||||||
t.timestamps
|
t.timestamps
|
||||||
end
|
end
|
||||||
|
|
||||||
|
add_index :discourse_patrons_customers, :user_id, unique: true
|
||||||
add_index :discourse_patrons_customers, :customer_id, unique: true
|
add_index :discourse_patrons_customers, :customer_id, unique: true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
module DiscoursePatrons
|
||||||
|
RSpec.describe Customer do
|
||||||
|
let(:user) { Fabricate(:user) }
|
||||||
|
let(:stripe_customer) { { id: 'cus_id4567' } }
|
||||||
|
|
||||||
|
it "has a table name" do
|
||||||
|
expect(described_class.table_name).to eq "discourse_patrons_customers"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates" do
|
||||||
|
customer = described_class.create_customer(user, stripe_customer)
|
||||||
|
expect(customer.customer_id).to eq 'cus_id4567'
|
||||||
|
expect(customer.user_id).to eq user.id
|
||||||
|
end
|
||||||
|
|
||||||
|
it "has a user scope" do
|
||||||
|
described_class.create_customer(user, stripe_customer)
|
||||||
|
customer = described_class.find_user(user)
|
||||||
|
expect(customer.customer_id).to eq 'cus_id4567'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue