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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
614c0e0b
Commit
614c0e0b
authored
Dec 16, 2017
by
Matija Čupić
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update GCP feature spec with check page flow
parent
886fd13f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
86 additions
and
67 deletions
+86
-67
spec/features/projects/clusters/gcp_spec.rb
spec/features/projects/clusters/gcp_spec.rb
+86
-67
No files found.
spec/features/projects/clusters/gcp_spec.rb
View file @
614c0e0b
...
@@ -20,105 +20,124 @@ feature 'Gcp Cluster', :js do
...
@@ -20,105 +20,124 @@ feature 'Gcp Cluster', :js do
.
to
receive
(
:expires_at_in_session
).
and_return
(
1
.
hour
.
since
.
to_i
.
to_s
)
.
to
receive
(
:expires_at_in_session
).
and_return
(
1
.
hour
.
since
.
to_i
.
to_s
)
end
end
context
'when user
does not have a cluster and visits cluster index page
'
do
context
'when user
has a GCP project with billing enabled
'
do
before
do
before
do
visit
project_clusters_path
(
project
)
stub_google_project_billing_status
click_link
'Add cluster'
click_link
'Create on GKE'
end
end
context
'when user
filled form with valid parameters
'
do
context
'when user
does not have a cluster and visits cluster index page
'
do
before
do
before
do
allow_any_instance_of
(
GoogleApi
::
CloudPlatform
::
Client
)
visit
project_clusters_path
(
project
)
.
to
receive
(
:projects_zones_clusters_create
)
do
OpenStruct
.
new
(
click_link
'Add cluster'
self_link:
'projects/gcp-project-12345/zones/us-central1-a/operations/ope-123'
,
click_link
'Create on GKE'
status:
'RUNNING'
end
)
context
'when user filled form with valid parameters'
do
before
do
allow_any_instance_of
(
GoogleApi
::
CloudPlatform
::
Client
)
.
to
receive
(
:projects_zones_clusters_create
)
do
OpenStruct
.
new
(
self_link:
'projects/gcp-project-12345/zones/us-central1-a/operations/ope-123'
,
status:
'RUNNING'
)
end
allow
(
WaitForClusterCreationWorker
).
to
receive
(
:perform_in
).
and_return
(
nil
)
fill_in
'cluster_provider_gcp_attributes_gcp_project_id'
,
with:
'gcp-project-123'
fill_in
'cluster_name'
,
with:
'dev-cluster'
click_button
'Create cluster'
end
end
allow
(
WaitForClusterCreationWorker
).
to
receive
(
:perform_in
).
and_return
(
nil
)
it
'user sees a cluster details page and creation status'
do
expect
(
page
).
to
have_content
(
'Cluster is being created on Google Kubernetes Engine...'
)
fill_in
'cluster_provider_gcp_attributes_gcp_project_id'
,
with:
'gcp-project-123'
Clusters
::
Cluster
.
last
.
provider
.
make_created!
fill_in
'cluster_name'
,
with:
'dev-cluster'
click_button
'Create cluster'
end
it
'user sees a cluster details page and creation status'
do
expect
(
page
).
to
have_content
(
'Cluster was successfully created on Google Kubernetes Engine'
)
e
xpect
(
page
).
to
have_content
(
'Cluster is being created on Google Kubernetes Engine...'
)
e
nd
Clusters
::
Cluster
.
last
.
provider
.
make_created!
it
'user sees a error if something worng during creation'
do
expect
(
page
).
to
have_content
(
'Cluster is being created on Google Kubernetes Engine...'
)
expect
(
page
).
to
have_content
(
'Cluster was successfully created on Google Kubernetes Engine'
)
Clusters
::
Cluster
.
last
.
provider
.
make_errored!
(
'Something wrong!'
)
end
it
'user sees a error if something worng during creation'
do
expect
(
page
).
to
have_content
(
'Something wrong!'
)
expect
(
page
).
to
have_content
(
'Cluster is being created on Google Kubernetes Engine...'
)
end
end
Clusters
::
Cluster
.
last
.
provider
.
make_errored!
(
'Something wrong!'
)
context
'when user filled form with invalid parameters'
do
before
do
click_button
'Create cluster'
end
expect
(
page
).
to
have_content
(
'Something wrong!'
)
it
'user sees a validation error'
do
expect
(
page
).
to
have_css
(
'#error_explanation'
)
end
end
end
end
end
context
'when user filled form with invalid parameters'
do
context
'when user does have a cluster and visits cluster page'
do
let
(
:cluster
)
{
create
(
:cluster
,
:provided_by_gcp
,
projects:
[
project
])
}
before
do
before
do
click_button
'Create cluster'
visit
project_cluster_path
(
project
,
cluster
)
end
end
it
'user sees a validation error'
do
it
'user sees a cluster details page'
do
expect
(
page
).
to
have_css
(
'#error_explanation'
)
expect
(
page
).
to
have_button
(
'Save'
)
expect
(
page
.
find
(
:css
,
'.cluster-name'
).
value
).
to
eq
(
cluster
.
name
)
end
end
end
end
context
'when user does have a cluster and visits cluster page'
do
context
'when user disables the cluster'
do
let
(
:cluster
)
{
create
(
:cluster
,
:provided_by_gcp
,
projects:
[
project
])
}
before
do
page
.
find
(
:css
,
'.js-toggle-cluster'
).
click
click_button
'Save'
end
before
do
it
'user sees the successful message'
do
visit
project_cluster_path
(
project
,
cluster
)
expect
(
page
).
to
have_content
(
'Cluster was successfully updated.'
)
end
end
end
it
'user sees a cluster details page'
do
context
'when user changes cluster parameters'
do
expect
(
page
).
to
have_button
(
'Save'
)
before
do
expect
(
page
.
find
(
:css
,
'.cluster-name'
).
value
).
to
eq
(
cluster
.
name
)
fill_in
'cluster_platform_kubernetes_attributes_namespace'
,
with:
'my-namespace'
end
click_button
'Save changes'
end
context
'when user disables the cluster
'
do
it
'user sees the successful message
'
do
before
do
expect
(
page
).
to
have_content
(
'Cluster was successfully updated.'
)
page
.
find
(
:css
,
'.js-toggle-cluster'
).
click
expect
(
cluster
.
reload
.
platform_kubernetes
.
namespace
).
to
eq
(
'my-namespace'
)
click_button
'Save'
end
end
end
it
'user sees the successful message'
do
context
'when user destroy the cluster'
do
expect
(
page
).
to
have_content
(
'Cluster was successfully updated.'
)
before
do
page
.
accept_confirm
do
click_link
'Remove integration'
end
end
it
'user sees creation form with the successful message'
do
expect
(
page
).
to
have_content
(
'Cluster integration was successfully removed.'
)
expect
(
page
).
to
have_link
(
'Add cluster'
)
end
end
end
end
end
end
context
'when user changes cluster parameters'
do
context
'when user does not have a GCP project with billing enabled'
do
before
do
before
do
fill_in
'cluster_platform_kubernetes_attributes_namespace'
,
with:
'my-namespace'
visit
project_clusters_path
(
project
)
click_button
'Save changes'
end
it
'user sees the successful message'
do
click_link
'Add cluster'
expect
(
page
).
to
have_content
(
'Cluster was successfully updated.'
)
click_link
'Create on GKE'
expect
(
cluster
.
reload
.
platform_kubernetes
.
namespace
).
to
eq
(
'my-namespace'
)
end
end
end
context
'when user destroy the cluster'
do
it
'user sees a check page'
do
before
do
expect
(
page
).
to
have_link
(
'Continue'
)
page
.
accept_confirm
do
click_link
'Remove integration'
end
end
it
'user sees creation form with the successful message'
do
expect
(
page
).
to
have_content
(
'Cluster integration was successfully removed.'
)
expect
(
page
).
to
have_link
(
'Add cluster'
)
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