Commit b9519c83 authored by Robert Schilling's avatar Robert Schilling

Validate label titel in project scope

parent c9eaa46c
...@@ -12,7 +12,7 @@ class Label < ActiveRecord::Base ...@@ -12,7 +12,7 @@ class Label < ActiveRecord::Base
validates :title, validates :title,
presence: true, presence: true,
format: { with: /\A[^&\?,&]*\z/ }, format: { with: /\A[^&\?,&]*\z/ },
uniqueness: true uniqueness: { scope: :project_id }
scope :order_by_name, -> { reorder("labels.title ASC") } scope :order_by_name, -> { reorder("labels.title ASC") }
......
...@@ -10,7 +10,7 @@ Feature: Project Labels ...@@ -10,7 +10,7 @@ Feature: Project Labels
And I should see label "feature" And I should see label "feature"
Scenario: I create new label Scenario: I create new label
Given I visit new label page Given I visit project "Shop" new label page
When I submit new label 'support' When I submit new label 'support'
Then I should see label 'support' Then I should see label 'support'
...@@ -25,6 +25,19 @@ Feature: Project Labels ...@@ -25,6 +25,19 @@ Feature: Project Labels
Then I should not see label 'bug' Then I should not see label 'bug'
Scenario: I create a label with invalid color Scenario: I create a label with invalid color
Given I visit new label page Given I visit project "Shop" new label page
When I submit new label with invalid color When I submit new label with invalid color
Then I should see label color error message Then I should see label color error message
Scenario: I create a label that already exists
Given I visit project "Shop" new label page
When I submit new label 'bug'
Then I should see label label exist error message
Scenario: I create the same label on another project
Given I own project "Forum"
And I visit project "Forum" labels page
And I visit project "Forum" new label page
When I submit new label 'bug'
Then I should see label 'bug'
...@@ -31,18 +31,36 @@ class ProjectLabels < Spinach::FeatureSteps ...@@ -31,18 +31,36 @@ class ProjectLabels < Spinach::FeatureSteps
click_button 'Save' click_button 'Save'
end end
step 'I submit new label \'bug\'' do
fill_in 'Title', with: 'bug'
fill_in 'Background Color', with: '#F95610'
click_button 'Save'
end
step 'I submit new label with invalid color' do step 'I submit new label with invalid color' do
fill_in 'Title', with: 'support' fill_in 'Title', with: 'support'
fill_in 'Background Color', with: '#12' fill_in 'Background Color', with: '#12'
click_button 'Save' click_button 'Save'
end end
step 'I should see label label exist error message' do
within '.label-form' do
page.should have_content 'Title has already been taken'
end
end
step 'I should see label color error message' do step 'I should see label color error message' do
within '.label-form' do within '.label-form' do
page.should have_content 'Color is invalid' page.should have_content 'Color is invalid'
end end
end end
step 'I should see label \'bug\'' do
within '.manage-labels-list' do
page.should have_content 'bug'
end
end
step 'I should not see label \'bug\'' do step 'I should not see label \'bug\'' do
within '.manage-labels-list' do within '.manage-labels-list' do
page.should_not have_content 'bug' page.should_not have_content 'bug'
......
...@@ -287,10 +287,22 @@ module SharedPaths ...@@ -287,10 +287,22 @@ module SharedPaths
end end
step 'I visit project "Shop" labels page' do step 'I visit project "Shop" labels page' do
project = Project.find_by(name: 'Shop')
visit project_labels_path(project) visit project_labels_path(project)
end end
step 'I visit new label page' do step 'I visit project "Forum" labels page' do
project = Project.find_by(name: 'Forum')
visit project_labels_path(project)
end
step 'I visit project "Shop" new label page' do
project = Project.find_by(name: 'Shop')
visit new_project_label_path(project)
end
step 'I visit project "Forum" new label page' do
project = Project.find_by(name: 'Forum')
visit new_project_label_path(project) visit new_project_label_path(project)
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment