Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
GitLab
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
projects.thm.de
GitLab
Commits
1026f2ad
Commit
1026f2ad
authored
Apr 20, 2016
by
Rémy Coutable
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add integration specs for tags
Signed-off-by:
Rémy Coutable
<
remy@rymai.me
>
parent
f95a8e45
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
219 additions
and
137 deletions
+219
-137
CHANGELOG
CHANGELOG
+1
-0
app/views/projects/tags/show.html.haml
app/views/projects/tags/show.html.haml
+0
-1
features/project/commits/tags.feature
features/project/commits/tags.feature
+0
-46
features/steps/project/commits/tags.rb
features/steps/project/commits/tags.rb
+0
-90
spec/features/tags/master_creates_tag_spec.rb
spec/features/tags/master_creates_tag_spec.rb
+62
-0
spec/features/tags/master_deletes_tag_spec.rb
spec/features/tags/master_deletes_tag_spec.rb
+41
-0
spec/features/tags/master_updates_tag_spec.rb
spec/features/tags/master_updates_tag_spec.rb
+42
-0
spec/features/tags/master_views_tags_spec.rb
spec/features/tags/master_views_tags_spec.rb
+73
-0
No files found.
CHANGELOG
View file @
1026f2ad
...
...
@@ -22,6 +22,7 @@ v 8.8.0 (unreleased)
- Updated search UI
- Display informative message when new milestone is created
- Sanitize milestones and labels titles
- Support multi-line tag messages. !3833 (Calin Seciu)
- Allow "NEWS" and "CHANGES" as alternative names for CHANGELOG. !3768 (Connor Shea)
- Added button to toggle whitespaces changes on diff view
- Backport GitHub Enterprise import support from EE
...
...
app/views/projects/tags/show.html.haml
View file @
1026f2ad
...
...
@@ -27,7 +27,6 @@
%pre
.body
=
strip_gpg_signature
(
@tag
.
message
)
.append-bottom-default.prepend-top-default
-
if
@release
.
description
.
present?
.description
...
...
features/project/commits/tags.feature
deleted
100644 → 0
View file @
f95a8e45
@project_commits
Feature
:
Project Commits Tags
Background
:
Given
I sign in as a user
And
I own project
"Shop"
Given
I visit project tags page
Scenario
:
I
can see all git tags
Then
I should see
"Shop"
all tags list
Scenario
:
I
create a tag
And
I click new tag link
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
Then
I should see new an error that tag is invalid
Scenario
:
I
create a tag with invalid reference
And
I click new tag link
And
I submit new tag form with invalid reference
Then
I should see new an error that tag ref is invalid
Scenario
:
I
create a tag that already exists
And
I click new tag link
And
I submit new tag form with tag that already exists
Then
I should see new an error that tag already exists
Scenario
:
I
delete a tag
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
features/steps/project/commits/tags.rb
deleted
100644 → 0
View file @
f95a8e45
class
Spinach::Features::ProjectCommitsTags
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedProject
include
SharedPaths
step
'I should see "Shop" all tags list'
do
expect
(
page
).
to
have_content
"Tags"
expect
(
page
).
to
have_content
"v1.0.0"
end
step
'I click new tag link'
do
click_link
'New tag'
end
step
'I submit new tag form'
do
fill_in
'tag_name'
,
with:
'v7.0'
fill_in
'ref'
,
with:
'master'
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'
click_button
'Create tag'
end
step
'I submit new tag form with invalid reference'
do
fill_in
'tag_name'
,
with:
'foo'
fill_in
'ref'
,
with:
'foo'
click_button
'Create tag'
end
step
'I submit new tag form with tag that already exists'
do
fill_in
'tag_name'
,
with:
'v1.0.0'
fill_in
'ref'
,
with:
'master'
click_button
'Create tag'
end
step
'I should see new tag created'
do
expect
(
page
).
to
have_content
'v7.0'
end
step
'I should see new an error that tag is invalid'
do
expect
(
page
).
to
have_content
'Tag name invalid'
end
step
'I should see new an error that tag ref is invalid'
do
expect
(
page
).
to
have_content
'Target foo is invalid'
end
step
'I should see new an error that tag already exists'
do
expect
(
page
).
to
have_content
'Tag v1.0.0 already exists'
end
step
"I visit tag 'v1.1.0' page"
do
click_link
'v1.1.0'
end
step
"I delete tag 'v1.1.0'"
do
page
.
within
(
'.content'
)
do
first
(
'.btn-remove'
).
click
end
end
step
"I should not see tag 'v1.1.0'"
do
page
.
within
'.tags'
do
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
spec/features/tags/master_creates_tag_spec.rb
0 → 100644
View file @
1026f2ad
require
'spec_helper'
feature
'Master creates tag'
,
feature:
true
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
before
do
project
.
team
<<
[
user
,
:master
]
login_with
(
user
)
visit
namespace_project_tags_path
(
project
.
namespace
,
project
)
end
scenario
'with an invalid name displays an error'
do
create_tag_in_form
(
tag:
'v 1.0'
,
ref:
'master'
)
expect
(
page
).
to
have_content
'Tag name invalid'
end
scenario
'with an invalid reference displays an error'
do
create_tag_in_form
(
tag:
'v2.0'
,
ref:
'foo'
)
expect
(
page
).
to
have_content
'Target foo is invalid'
end
scenario
'that already exists displays an error'
do
create_tag_in_form
(
tag:
'v1.1.0'
,
ref:
'master'
)
expect
(
page
).
to
have_content
'Tag v1.1.0 already exists'
end
scenario
'with multiline message displays the message in a <pre> block'
do
create_tag_in_form
(
tag:
'v3.0'
,
ref:
'master'
,
message:
"Awesome tag message
\n\n
- hello
\n
- world"
)
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v3.0'
))
expect
(
page
).
to
have_content
'v3.0'
page
.
within
'pre.body'
do
expect
(
page
).
to
have_content
"Awesome tag message
\n\n
- hello
\n
- world"
end
end
scenario
'with multiline release notes parses the release note as Markdown'
do
create_tag_in_form
(
tag:
'v4.0'
,
ref:
'master'
,
desc:
"Awesome release notes
\n\n
- hello
\n
- world"
)
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v4.0'
))
expect
(
page
).
to
have_content
'v4.0'
page
.
within
'.description'
do
expect
(
page
).
to
have_content
'Awesome release notes'
expect
(
page
).
to
have_selector
(
'ul li'
,
count:
2
)
end
end
def
create_tag_in_form
(
tag
:,
ref
:,
message:
nil
,
desc:
nil
)
click_link
'New tag'
fill_in
'tag_name'
,
with:
tag
fill_in
'ref'
,
with:
ref
fill_in
'message'
,
with:
message
unless
message
.
nil?
fill_in
'release_description'
,
with:
desc
unless
desc
.
nil?
click_button
'Create tag'
end
end
spec/features/tags/master_deletes_tag_spec.rb
0 → 100644
View file @
1026f2ad
require
'spec_helper'
feature
'Master deletes tag'
,
feature:
true
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
before
do
project
.
team
<<
[
user
,
:master
]
login_with
(
user
)
visit
namespace_project_tags_path
(
project
.
namespace
,
project
)
end
context
'from the tags list page'
do
scenario
'deletes the tag'
do
expect
(
page
).
to
have_content
'v1.1.0'
page
.
within
(
'.content'
)
do
first
(
'.btn-remove'
).
click
end
expect
(
current_path
).
to
eq
(
namespace_project_tags_path
(
project
.
namespace
,
project
))
expect
(
page
).
not_to
have_content
'v1.1.0'
end
end
context
'from a specific tag page'
do
scenario
'deletes the tag'
do
click_on
'v1.0.0'
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v1.0.0'
))
click_on
'Delete tag'
expect
(
current_path
).
to
eq
(
namespace_project_tags_path
(
project
.
namespace
,
project
))
expect
(
page
).
not_to
have_content
'v1.0.0'
end
end
end
spec/features/tags/master_updates_tag_spec.rb
0 → 100644
View file @
1026f2ad
require
'spec_helper'
feature
'Master updates tag'
,
feature:
true
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
before
do
project
.
team
<<
[
user
,
:master
]
login_with
(
user
)
visit
namespace_project_tags_path
(
project
.
namespace
,
project
)
end
context
'from the tags list page'
do
scenario
'updates the release notes'
do
page
.
within
(
first
(
'.controls'
))
do
click_link
'Edit release notes'
end
fill_in
'release_description'
,
with:
'Awesome release notes'
click_button
'Save changes'
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v1.1.0'
))
expect
(
page
).
to
have_content
'v1.1.0'
expect
(
page
).
to
have_content
'Awesome release notes'
end
end
context
'from a specific tag page'
do
scenario
'updates the release notes'
do
click_on
'v1.1.0'
click_link
'Edit release notes'
fill_in
'release_description'
,
with:
'Awesome release notes'
click_button
'Save changes'
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v1.1.0'
))
expect
(
page
).
to
have_content
'v1.1.0'
expect
(
page
).
to
have_content
'Awesome release notes'
end
end
end
spec/features/tags/master_views_tags_spec.rb
0 → 100644
View file @
1026f2ad
require
'spec_helper'
feature
'Master views tags'
,
feature:
true
do
let
(
:user
)
{
create
(
:user
)
}
before
do
project
.
team
<<
[
user
,
:master
]
login_with
(
user
)
end
context
'when project has no tags'
do
let
(
:project
)
{
create
(
:project_empty_repo
)
}
before
do
visit
namespace_project_path
(
project
.
namespace
,
project
)
click_on
'README'
fill_in
:commit_message
,
with:
'Add a README file'
,
visible:
true
# Remove pre-receive hook so we can push without auth
FileUtils
.
rm_f
(
File
.
join
(
project
.
repository
.
path
,
'hooks'
,
'pre-receive'
))
click_button
'Commit Changes'
visit
namespace_project_tags_path
(
project
.
namespace
,
project
)
end
scenario
'displays a specific message'
do
expect
(
page
).
to
have_content
'Repository has no tags yet.'
end
end
context
'when project has tags'
do
let
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
before
do
visit
namespace_project_tags_path
(
project
.
namespace
,
project
)
end
scenario
'views the tags list page'
do
expect
(
page
).
to
have_content
'v1.0.0'
end
scenario
'views a specific tag page'
do
click_on
'v1.0.0'
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v1.0.0'
))
expect
(
page
).
to
have_content
'v1.0.0'
expect
(
page
).
to
have_content
'This tag has no release notes.'
end
describe
'links on the tag page'
do
scenario
'has a button to browse files'
do
click_on
'v1.0.0'
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v1.0.0'
))
click_on
'Browse files'
expect
(
current_path
).
to
eq
(
namespace_project_tree_path
(
project
.
namespace
,
project
,
'v1.0.0'
))
end
scenario
'has a button to browse commits'
do
click_on
'v1.0.0'
expect
(
current_path
).
to
eq
(
namespace_project_tag_path
(
project
.
namespace
,
project
,
'v1.0.0'
))
click_on
'Browse commits'
expect
(
current_path
).
to
eq
(
namespace_project_commits_path
(
project
.
namespace
,
project
,
'v1.0.0'
))
end
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment