1
0
mirror of https://github.com/fspc/bike-database.git synced 2025-02-23 01:23:24 -05:00

lk | adds tests & validations to client

This commit is contained in:
Loos 2015-04-16 09:12:55 -05:00
parent 9e1f397fd7
commit 6b2a824f66
4 changed files with 24 additions and 5 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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