Validate label titel in project scope
This commit is contained in:
parent
c9eaa46c73
commit
b9519c8314
|
@ -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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue