summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-11-06 15:43:59 +0100
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-11-06 15:43:59 +0100
commit6f15356aea488ce0085c982aac2c97cdd46db96b (patch)
tree0db6fcc11f97126bea518b708206a487f396506f
parentcb8b9c3fe2caba14752978f4283affc07581087c (diff)
downloadgitlab-ce-6f15356aea488ce0085c982aac2c97cdd46db96b.tar.gz
Add tests to release notes feature
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/views/projects/tags/show.html.haml6
-rw-r--r--features/project/commits/tags.feature12
-rw-r--r--features/steps/project/commits/tags.rb20
-rw-r--r--spec/factories/releases.rb6
-rw-r--r--spec/models/release_spec.rb13
5 files changed, 50 insertions, 7 deletions
diff --git a/app/views/projects/tags/show.html.haml b/app/views/projects/tags/show.html.haml
index f80ba5516a0..f95ae9edc4b 100644
--- a/app/views/projects/tags/show.html.haml
+++ b/app/views/projects/tags/show.html.haml
@@ -4,11 +4,11 @@
.gray-content-block
.pull-right
- = link_to edit_namespace_project_tag_release_path(@project.namespace, @project, @tag.name), class: 'btn-grouped btn' do
+ = link_to edit_namespace_project_tag_release_path(@project.namespace, @project, @tag.name), class: 'btn-grouped btn', title: 'Edit release notes' do
= icon("pencil")
- = link_to namespace_project_tree_path(@project.namespace, @project, @tag.name), class: 'btn btn-grouped' do
+ = link_to namespace_project_tree_path(@project.namespace, @project, @tag.name), class: 'btn btn-grouped', title: 'Browse source code' do
= icon('files-o')
- = link_to namespace_project_commits_path(@project.namespace, @project, @tag.name), class: 'btn btn-grouped' do
+ = link_to namespace_project_commits_path(@project.namespace, @project, @tag.name), class: 'btn btn-grouped', title: 'Browse commits' do
= icon('history')
- if can? current_user, :download_code, @project
= render 'projects/tags/download', ref: @tag.name, project: @project
diff --git a/features/project/commits/tags.feature b/features/project/commits/tags.feature
index 660238c2319..56ee091acc0 100644
--- a/features/project/commits/tags.feature
+++ b/features/project/commits/tags.feature
@@ -12,6 +12,12 @@ Feature: Project Commits Tags
And I submit new tag form
Then I should see new tag created
+ Scenario: I create a tag with release notes
+ Given I click new tag link
+ And I submit new tag form with release notes
+ Then I should see new tag created
+ And I should see tag release notes
+
Scenario: I create a tag with invalid name
And I click new tag link
And I submit new tag form with invalid name
@@ -31,3 +37,9 @@ Feature: Project Commits Tags
Given I visit tag 'v1.1.0' page
Given I delete tag 'v1.1.0'
Then I should not see tag 'v1.1.0'
+
+ Scenario: I add release notes to the tag
+ Given I visit tag 'v1.1.0' page
+ When I click edit tag link
+ And I fill release notes and submit form
+ Then I should see tag release notes
diff --git a/features/steps/project/commits/tags.rb b/features/steps/project/commits/tags.rb
index cb5fe20834d..eff4234a44a 100644
--- a/features/steps/project/commits/tags.rb
+++ b/features/steps/project/commits/tags.rb
@@ -18,6 +18,18 @@ class Spinach::Features::ProjectCommitsTags < Spinach::FeatureSteps
click_button 'Create tag'
end
+ step 'I submit new tag form with release notes' do
+ fill_in 'tag_name', with: 'v7.0'
+ fill_in 'ref', with: 'master'
+ fill_in 'release_description', with: 'Awesome release notes'
+ click_button 'Create tag'
+ end
+
+ step 'I fill release notes and submit form' do
+ fill_in 'release_description', with: 'Awesome release notes'
+ click_button 'Save changes'
+ end
+
step 'I submit new tag form with invalid name' do
fill_in 'tag_name', with: 'v 1.0'
fill_in 'ref', with: 'master'
@@ -67,4 +79,12 @@ class Spinach::Features::ProjectCommitsTags < Spinach::FeatureSteps
expect(page).not_to have_link 'v1.1.0'
end
end
+
+ step 'I click edit tag link' do
+ click_link 'Edit release notes'
+ end
+
+ step 'I should see tag release notes' do
+ expect(page).to have_content 'Awesome release notes'
+ end
end
diff --git a/spec/factories/releases.rb b/spec/factories/releases.rb
index 067d8138e41..80d6bbee6c7 100644
--- a/spec/factories/releases.rb
+++ b/spec/factories/releases.rb
@@ -2,8 +2,8 @@
FactoryGirl.define do
factory :release do
- tag "MyString"
- description "MyText"
- project_id 1
+ tag "v1.1.0"
+ description "Awesome release"
+ project
end
end
diff --git a/spec/models/release_spec.rb b/spec/models/release_spec.rb
index e533734ba0d..527005b2b69 100644
--- a/spec/models/release_spec.rb
+++ b/spec/models/release_spec.rb
@@ -1,5 +1,16 @@
require 'rails_helper'
RSpec.describe Release, type: :model do
- pending "add some examples to (or delete) #{__FILE__}"
+ let(:release) { create(:release) }
+
+ it { expect(release).to be_valid }
+
+ describe 'associations' do
+ it { is_expected.to belong_to(:project) }
+ end
+
+ describe 'validation' do
+ it { is_expected.to validate_presence_of(:project) }
+ it { is_expected.to validate_presence_of(:description) }
+ end
end