mirror of
https://github.com/fspc/bike-database.git
synced 2025-02-23 09:33:23 -05:00
lk | adds tests & validations to client
This commit is contained in:
parent
9e1f397fd7
commit
6b2a824f66
@ -1,12 +1,13 @@
|
||||
class Client < ActiveRecord::Base
|
||||
validates :application_date, presence: true
|
||||
has_one :bike
|
||||
belongs_to :agency
|
||||
|
||||
def self.waiting_list
|
||||
clients = Client.all
|
||||
non_voided_clients = clients.select{|client| !client.application_voided}
|
||||
incomplete_clients = non_voided_clients.select{|client| !client.completion_date}
|
||||
waiting_list = incomplete_clients.sort_by!{|client| client.application_date}
|
||||
waiting_list = non_voided_clients.select{|client| !client.completion_date}
|
||||
waiting_list.sort_by!{|client| client.application_date}
|
||||
end
|
||||
|
||||
def name
|
||||
|
@ -1,9 +1,9 @@
|
||||
FactoryGirl.define do
|
||||
factory :random_client do
|
||||
factory :client do
|
||||
first_name "John"
|
||||
last_name "Doe"
|
||||
application_date Date.new(2010, 03, 02)
|
||||
gender "Male"
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
|
@ -1,4 +1,22 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe Client do
|
||||
describe "#waiting_list" do
|
||||
it "does not include voided clients" do
|
||||
create(:client, application_voided: true)
|
||||
expect(Client.waiting_list).to be_empty
|
||||
end
|
||||
it "orders clients by application date" do
|
||||
client_2 = create(:client, application_date: 2.weeks.ago)
|
||||
client_1 = create(:client, application_date: 3.weeks.ago)
|
||||
client_3 = create(:client, application_date: 1.weeks.ago)
|
||||
expect(Client.waiting_list).to eq([client_1, client_2, client_3])
|
||||
|
||||
end
|
||||
it "does not include completed clients" do
|
||||
create(:client, completion_date: 1.week.ago)
|
||||
expect(Client.waiting_list).to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -1,7 +1,6 @@
|
||||
ENV["RAILS_ENV"] ||= 'test'
|
||||
require File.expand_path("../../config/environment", __FILE__)
|
||||
require 'rspec/rails'
|
||||
require 'rspec/autorun'
|
||||
|
||||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
||||
|
||||
@ -13,5 +12,6 @@ RSpec.configure do |config|
|
||||
config.use_transactional_fixtures = true
|
||||
config.infer_base_class_for_anonymous_controllers = false
|
||||
config.include Devise::TestHelpers, type: :controller
|
||||
config.include FactoryGirl::Syntax::Methods
|
||||
config.order = "random"
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user