diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index a0cb7ee..93cf6a6 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -40,6 +40,9 @@ class RepositoriesController < ApplicationController
format.html { redirect_to project_path(params[:project_id]), notice: 'Repository was successfully created.' }
format.json { render action: 'show', status: :created, location: @repository }
else
+ @project_id = params[:project_id]
+ @repository_types = Repository.repository_types
+
format.html { render action: 'new' }
format.json { render json: @repository.errors, status: :unprocessable_entity }
end
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 8cede40..2a99fca 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -1,6 +1,9 @@
class Repository < KalibroEntities::Entities::Repository
include KalibroRecord
+ validates :name, presence: true, kalibro_uniqueness: true
+ validates :address, presence: true
+
def last_processing
Processing.processing_of(@id)
end
diff --git a/app/views/repositories/_form.html.erb b/app/views/repositories/_form.html.erb
index 4df54bc..c7531bf 100644
--- a/app/views/repositories/_form.html.erb
+++ b/app/views/repositories/_form.html.erb
@@ -1,17 +1,5 @@
<%= render :partial => 'shared/form_errors', :locals => {:object => @repository} %>
-<% if @repository.errors.any? %>
-
-
<%= pluralize(@repository.errors.count, "error") %> prohibited this repository from being saved:
-
-
- <% @repository.errors.full_messages.each do |msg| %>
- - <%= msg %>
- <% end %>
-
-
-<% end %>
-
<%= f.label :name %>
<%= f.text_field :name %>
diff --git a/app/views/shared/_form_errors.html.erb b/app/views/shared/_form_errors.html.erb
index df0ff06..8fb2ea8 100644
--- a/app/views/shared/_form_errors.html.erb
+++ b/app/views/shared/_form_errors.html.erb
@@ -1,6 +1,6 @@
<% if object.errors.any? || object.kalibro_errors.any? %>
-
<%= pluralize(object.errors.count + object.kalibro_errors.count, "error") %> prohibited this project from being saved:
+
<%= pluralize(object.errors.count + object.kalibro_errors.count, "error") %> prohibited this <%= object.class.to_s %> from getting saved:
<% object.errors.full_messages.each do |msg| %>
diff --git a/spec/controllers/repositories_controller_spec.rb b/spec/controllers/repositories_controller_spec.rb
index f76e87e..bf66da5 100644
--- a/spec/controllers/repositories_controller_spec.rb
+++ b/spec/controllers/repositories_controller_spec.rb
@@ -60,6 +60,7 @@ describe RepositoriesController do
before :each do
Repository.any_instance.expects(:save).returns(false)
Repository.any_instance.expects(:persisted?).at_least_once.returns(false)
+ Repository.expects(:repository_types).returns([])
post :create, project_id: project.id.to_s, repository: repository_params
end
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb
index 72e2ff5..96b19b9 100644
--- a/spec/models/repository_spec.rb
+++ b/spec/models/repository_spec.rb
@@ -34,4 +34,28 @@ describe Repository do
end
end
end
+
+ describe 'validations' do
+ subject {FactoryGirl.build(:repository)}
+
+ context 'active model validations' do
+ before :each do
+ Repository.expects(:all).at_least_once.returns([])
+ end
+
+ it { should validate_presence_of(:name) }
+ it { should validate_presence_of(:address) }
+ end
+
+ context 'kalibro validations' do
+ before :each do
+ Repository.expects(:request).returns(42)
+ end
+
+ it 'should validate uniqueness' do
+ KalibroUniquenessValidator.any_instance.expects(:validate_each).with(subject, :name, subject.name)
+ subject.save
+ end
+ end
+ end
end
--
libgit2 0.21.2