Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
af89b19d
Commit
af89b19d
authored
Jun 29, 2017
by
Alexander Randa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replaces 'dashboard/new-project.feature' spinach with rspec
parent
a8bc8d4d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
85 additions
and
128 deletions
+85
-128
changelogs/unreleased/23036-replace-dashboard-new-project-spinach.yml
...nreleased/23036-replace-dashboard-new-project-spinach.yml
+4
-0
features/dashboard/new_project.feature
features/dashboard/new_project.feature
+0
-30
features/steps/dashboard/new_project.rb
features/steps/dashboard/new_project.rb
+0
-59
features/steps/dashboard/starred_projects.rb
features/steps/dashboard/starred_projects.rb
+0
-15
spec/features/dashboard/projects_spec.rb
spec/features/dashboard/projects_spec.rb
+12
-4
spec/features/projects/new_project_spec.rb
spec/features/projects/new_project_spec.rb
+69
-20
No files found.
changelogs/unreleased/23036-replace-dashboard-new-project-spinach.yml
0 → 100644
View file @
af89b19d
---
title
:
Replace 'dashboard/new-project.feature' spinach with rspec
merge_request
:
12550
author
:
Alexander Randa (@randaalex)
features/dashboard/new_project.feature
deleted
100644 → 0
View file @
a8bc8d4d
@dashboard
Feature
:
New Project
Background
:
Given
I sign in as a user
And
I own project
"Shop"
And
I visit dashboard page
And
I click
"New project"
link
@javascript
Scenario
:
I
should see New Projects page
Then
I see
"New Project"
page
Then
I see all possible import options
@javascript
Scenario
:
I
should see instructions on how to import from Git URL
Given
I see
"New Project"
page
When
I click on
"Repo by URL"
Then
I see instructions on how to import from Git URL
@javascript
Scenario
:
I
should see instructions on how to import from GitHub
Given
I see
"New Project"
page
When
I click on
"Import project from GitHub"
Then
I am redirected to the GitHub import page
@javascript
Scenario
:
I
should see Google Code import page
Given
I see
"New Project"
page
When
I click on
"Google Code"
Then
I redirected to Google Code import page
features/steps/dashboard/new_project.rb
deleted
100644 → 0
View file @
a8bc8d4d
class
Spinach::Features::NewProject
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
include
SharedProject
step
'I click "New project" link'
do
page
.
within
'#content-body'
do
click_link
"New project"
end
end
step
'I click "New project" in top right menu'
do
page
.
within
'.header-content'
do
click_link
"New project"
end
end
step
'I see "New Project" page'
do
expect
(
page
).
to
have_content
(
'Project path'
)
expect
(
page
).
to
have_content
(
'Project name'
)
end
step
'I see all possible import options'
do
expect
(
page
).
to
have_link
(
'GitHub'
)
expect
(
page
).
to
have_link
(
'Bitbucket'
)
expect
(
page
).
to
have_link
(
'GitLab.com'
)
expect
(
page
).
to
have_link
(
'Google Code'
)
expect
(
page
).
to
have_button
(
'Repo by URL'
)
expect
(
page
).
to
have_link
(
'GitLab export'
)
end
step
'I click on "Import project from GitHub"'
do
first
(
'.import_github'
).
click
end
step
'I am redirected to the GitHub import page'
do
expect
(
page
).
to
have_content
(
'Import Projects from GitHub'
)
expect
(
current_path
).
to
eq
new_import_github_path
end
step
'I click on "Repo by URL"'
do
first
(
'.import_git'
).
click
end
step
'I see instructions on how to import from Git URL'
do
git_import_instructions
=
first
(
'.js-toggle-content'
)
expect
(
git_import_instructions
).
to
be_visible
expect
(
git_import_instructions
).
to
have_content
"Git repository URL"
end
step
'I click on "Google Code"'
do
first
(
'.import_google_code'
).
click
end
step
'I redirected to Google Code import page'
do
expect
(
page
).
to
have_content
(
'Import projects from Google Code'
)
expect
(
current_path
).
to
eq
new_import_google_code_path
end
end
features/steps/dashboard/starred_projects.rb
deleted
100644 → 0
View file @
a8bc8d4d
class
Spinach::Features::DashboardStarredProjects
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
include
SharedProject
step
'I starred project "Community"'
do
current_user
.
toggle_star
(
Project
.
find_by
(
name:
'Community'
))
end
step
'I should not see project "Shop"'
do
page
.
within
'.projects-list'
do
expect
(
page
).
not_to
have_content
(
'Shop'
)
end
end
end
spec/features/dashboard/projects_spec.rb
View file @
af89b19d
require
'spec_helper'
require
'spec_helper'
RSpec
.
describe
'Dashboard Projects'
,
feature:
true
do
feature
'Dashboard Projects'
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
name:
"awesome stuff"
)
}
let
(
:project
)
{
create
(
:project
,
name:
'awesome stuff'
)
}
let
(
:project2
)
{
create
(
:project
,
:public
,
name:
'Community project'
)
}
let
(
:project2
)
{
create
(
:project
,
:public
,
name:
'Community project'
)
}
before
do
before
do
...
@@ -15,6 +15,14 @@ RSpec.describe 'Dashboard Projects', feature: true do
...
@@ -15,6 +15,14 @@ RSpec.describe 'Dashboard Projects', feature: true do
expect
(
page
).
to
have_content
(
'awesome stuff'
)
expect
(
page
).
to
have_content
(
'awesome stuff'
)
end
end
it
'shows "New project" button'
do
visit
dashboard_projects_path
page
.
within
'#content-body'
do
expect
(
page
).
to
have_link
(
'New project'
)
end
end
context
'when last_repository_updated_at, last_activity_at and update_at are present'
do
context
'when last_repository_updated_at, last_activity_at and update_at are present'
do
it
'shows the last_repository_updated_at attribute as the update date'
do
it
'shows the last_repository_updated_at attribute as the update date'
do
project
.
update_attributes!
(
last_repository_updated_at:
Time
.
now
,
last_activity_at:
1
.
hour
.
ago
)
project
.
update_attributes!
(
last_repository_updated_at:
Time
.
now
,
last_activity_at:
1
.
hour
.
ago
)
...
@@ -47,8 +55,8 @@ RSpec.describe 'Dashboard Projects', feature: true do
...
@@ -47,8 +55,8 @@ RSpec.describe 'Dashboard Projects', feature: true do
end
end
end
end
describe
"with a pipeline"
,
redis:
true
do
describe
'with a pipeline'
,
redis:
true
do
let
!
(
:pipeline
)
{
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
sha
)
}
let
(
:pipeline
)
{
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
sha
)
}
before
do
before
do
# Since the cache isn't updated when a new pipeline is created
# Since the cache isn't updated when a new pipeline is created
...
...
spec/features/projects/new_project_spec.rb
View file @
af89b19d
require
"spec_helper"
require
'spec_helper'
feature
"New project"
,
feature:
true
do
feature
'New project'
do
let
(
:user
)
{
create
(
:admin
)
}
let
(
:user
)
{
create
(
:admin
)
}
before
do
before
do
gitlab_
sign_in
(
user
)
sign_in
(
user
)
end
end
context
"Visibility level selector"
do
it
'shows "New project" page'
do
visit
new_project_path
expect
(
page
).
to
have_content
(
'Project path'
)
expect
(
page
).
to
have_content
(
'Project name'
)
expect
(
page
).
to
have_link
(
'GitHub'
)
expect
(
page
).
to
have_link
(
'Bitbucket'
)
expect
(
page
).
to
have_link
(
'GitLab.com'
)
expect
(
page
).
to
have_link
(
'Google Code'
)
expect
(
page
).
to
have_button
(
'Repo by URL'
)
expect
(
page
).
to
have_link
(
'GitLab export'
)
end
context
'Visibility level selector'
do
Gitlab
::
VisibilityLevel
.
options
.
each
do
|
key
,
level
|
Gitlab
::
VisibilityLevel
.
options
.
each
do
|
key
,
level
|
it
"sets selector to
#{
key
}
"
do
it
"sets selector to
#{
key
}
"
do
stub_application_setting
(
default_project_visibility:
level
)
stub_application_setting
(
default_project_visibility:
level
)
...
@@ -28,20 +42,20 @@ feature "New project", feature: true do
...
@@ -28,20 +42,20 @@ feature "New project", feature: true do
end
end
end
end
context
"Namespace selector"
do
context
'Namespace selector'
do
context
"with user namespace"
do
context
'with user namespace'
do
before
do
before
do
visit
new_project_path
visit
new_project_path
end
end
it
"selects the user namespace"
do
it
'selects the user namespace'
do
namespace
=
find
(
"#project_namespace_id"
)
namespace
=
find
(
'#project_namespace_id'
)
expect
(
namespace
.
text
).
to
eq
user
.
username
expect
(
namespace
.
text
).
to
eq
user
.
username
end
end
end
end
context
"with group namespace"
do
context
'with group namespace'
do
let
(
:group
)
{
create
(
:group
,
:private
,
owner:
user
)
}
let
(
:group
)
{
create
(
:group
,
:private
,
owner:
user
)
}
before
do
before
do
...
@@ -49,13 +63,13 @@ feature "New project", feature: true do
...
@@ -49,13 +63,13 @@ feature "New project", feature: true do
visit
new_project_path
(
namespace_id:
group
.
id
)
visit
new_project_path
(
namespace_id:
group
.
id
)
end
end
it
"selects the group namespace"
do
it
'selects the group namespace'
do
namespace
=
find
(
"#project_namespace_id option[selected]"
)
namespace
=
find
(
'#project_namespace_id option[selected]'
)
expect
(
namespace
.
text
).
to
eq
group
.
name
expect
(
namespace
.
text
).
to
eq
group
.
name
end
end
context
"on validation error"
do
context
'on validation error'
do
before
do
before
do
fill_in
(
'project_path'
,
with:
'private-group-project'
)
fill_in
(
'project_path'
,
with:
'private-group-project'
)
choose
(
'Internal'
)
choose
(
'Internal'
)
...
@@ -64,15 +78,15 @@ feature "New project", feature: true do
...
@@ -64,15 +78,15 @@ feature "New project", feature: true do
expect
(
page
).
to
have_css
'.project-edit-errors .alert.alert-danger'
expect
(
page
).
to
have_css
'.project-edit-errors .alert.alert-danger'
end
end
it
"selects the group namespace"
do
it
'selects the group namespace'
do
namespace
=
find
(
"#project_namespace_id option[selected]"
)
namespace
=
find
(
'#project_namespace_id option[selected]'
)
expect
(
namespace
.
text
).
to
eq
group
.
name
expect
(
namespace
.
text
).
to
eq
group
.
name
end
end
end
end
end
end
context
"with subgroup namespace"
do
context
'with subgroup namespace'
do
let
(
:group
)
{
create
(
:group
,
:private
,
owner:
user
)
}
let
(
:group
)
{
create
(
:group
,
:private
,
owner:
user
)
}
let
(
:subgroup
)
{
create
(
:group
,
parent:
group
)
}
let
(
:subgroup
)
{
create
(
:group
,
parent:
group
)
}
...
@@ -81,8 +95,8 @@ feature "New project", feature: true do
...
@@ -81,8 +95,8 @@ feature "New project", feature: true do
visit
new_project_path
(
namespace_id:
subgroup
.
id
)
visit
new_project_path
(
namespace_id:
subgroup
.
id
)
end
end
it
"selects the group namespace"
do
it
'selects the group namespace'
do
namespace
=
find
(
"#project_namespace_id option[selected]"
)
namespace
=
find
(
'#project_namespace_id option[selected]'
)
expect
(
namespace
.
text
).
to
eq
subgroup
.
full_path
expect
(
namespace
.
text
).
to
eq
subgroup
.
full_path
end
end
...
@@ -94,10 +108,45 @@ feature "New project", feature: true do
...
@@ -94,10 +108,45 @@ feature "New project", feature: true do
visit
new_project_path
visit
new_project_path
end
end
it
'does not autocomplete sensitive git repo URL'
do
context
'from git repository url'
do
autocomplete
=
find
(
'#project_import_url'
)[
'autocomplete'
]
before
do
first
(
'.import_git'
).
click
end
it
'does not autocomplete sensitive git repo URL'
do
autocomplete
=
find
(
'#project_import_url'
)[
'autocomplete'
]
expect
(
autocomplete
).
to
eq
(
'off'
)
end
it
'shows import instructions'
do
git_import_instructions
=
first
(
'.js-toggle-content'
)
expect
(
autocomplete
).
to
eq
(
'off'
)
expect
(
git_import_instructions
).
to
be_visible
expect
(
git_import_instructions
).
to
have_content
'Git repository URL'
end
end
context
'from GitHub'
do
before
do
first
(
'.import_github'
).
click
end
it
'shows import instructions'
do
expect
(
page
).
to
have_content
(
'Import Projects from GitHub'
)
expect
(
current_path
).
to
eq
new_import_github_path
end
end
context
'from Google Code'
do
before
do
first
(
'.import_google_code'
).
click
end
it
'shows import instructions'
do
expect
(
page
).
to
have_content
(
'Import projects from Google Code'
)
expect
(
current_path
).
to
eq
new_import_google_code_path
end
end
end
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