Commit d2da3e7d0bd66d45e7dd68a92e22440818b8d8c7

Authored by Rafael Manzo
1 parent 7ed7d525

Basic Repository validations

Still missing valid address validation
app/controllers/repositories_controller.rb
... ... @@ -40,6 +40,9 @@ class RepositoriesController < ApplicationController
40 40 format.html { redirect_to project_path(params[:project_id]), notice: 'Repository was successfully created.' }
41 41 format.json { render action: 'show', status: :created, location: @repository }
42 42 else
  43 + @project_id = params[:project_id]
  44 + @repository_types = Repository.repository_types
  45 +
43 46 format.html { render action: 'new' }
44 47 format.json { render json: @repository.errors, status: :unprocessable_entity }
45 48 end
... ...
app/models/repository.rb
1 1 class Repository < KalibroEntities::Entities::Repository
2 2 include KalibroRecord
3 3  
  4 + validates :name, presence: true, kalibro_uniqueness: true
  5 + validates :address, presence: true
  6 +
4 7 def last_processing
5 8 Processing.processing_of(@id)
6 9 end
... ...
app/views/repositories/_form.html.erb
1 1 <%= render :partial => 'shared/form_errors', :locals => {:object => @repository} %>
2 2  
3   -<% if @repository.errors.any? %>
4   - <div id="error_explanation">
5   - <h2><%= pluralize(@repository.errors.count, "error") %> prohibited this repository from being saved:</h2>
6   -
7   - <ul>
8   - <% @repository.errors.full_messages.each do |msg| %>
9   - <li><%= msg %></li>
10   - <% end %>
11   - </ul>
12   - </div>
13   -<% end %>
14   -
15 3 <div class="field">
16 4 <%= f.label :name %><br>
17 5 <%= f.text_field :name %>
... ...
app/views/shared/_form_errors.html.erb
1 1 <% if object.errors.any? || object.kalibro_errors.any? %>
2 2 <div id="error_explanation">
3   - <h2><%= pluralize(object.errors.count + object.kalibro_errors.count, "error") %> prohibited this project from being saved:</h2>
  3 + <h2><%= pluralize(object.errors.count + object.kalibro_errors.count, "error") %> prohibited this <%= object.class.to_s %> from getting saved:</h2>
4 4  
5 5 <ul>
6 6 <% object.errors.full_messages.each do |msg| %>
... ...
spec/controllers/repositories_controller_spec.rb
... ... @@ -60,6 +60,7 @@ describe RepositoriesController do
60 60 before :each do
61 61 Repository.any_instance.expects(:save).returns(false)
62 62 Repository.any_instance.expects(:persisted?).at_least_once.returns(false)
  63 + Repository.expects(:repository_types).returns([])
63 64  
64 65 post :create, project_id: project.id.to_s, repository: repository_params
65 66 end
... ...
spec/models/repository_spec.rb
... ... @@ -34,4 +34,28 @@ describe Repository do
34 34 end
35 35 end
36 36 end
  37 +
  38 + describe 'validations' do
  39 + subject {FactoryGirl.build(:repository)}
  40 +
  41 + context 'active model validations' do
  42 + before :each do
  43 + Repository.expects(:all).at_least_once.returns([])
  44 + end
  45 +
  46 + it { should validate_presence_of(:name) }
  47 + it { should validate_presence_of(:address) }
  48 + end
  49 +
  50 + context 'kalibro validations' do
  51 + before :each do
  52 + Repository.expects(:request).returns(42)
  53 + end
  54 +
  55 + it 'should validate uniqueness' do
  56 + KalibroUniquenessValidator.any_instance.expects(:validate_each).with(subject, :name, subject.name)
  57 + subject.save
  58 + end
  59 + end
  60 + end
37 61 end
... ...