-
Notifications
You must be signed in to change notification settings - Fork 596
/
topology-chart-area-visual.feature
516 lines (436 loc) · 29.6 KB
/
topology-chart-area-visual.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
@topology
Feature: Topology chart area
As a user, I want to verify topology chart visuals
Background:
Given user is at developer perspective
And user has created or selected namespace "aut-topology-delete-workload"
@smoke
Scenario: Empty state of topology: T-06-TC01
When user navigates to Topology page
Then user sees Topology page with message "No resources found"
And user is able to see Start building your application, Add page links
And Display options dropdown, Filter by resource and Find by name fields are disabled
And switch view is disabled
@regression
Scenario: Navigate to Add page from Empty state of topology: T-06-TC02
Given user is at the Topology page
When user clicks on "Add page" link in the topology page
Then user will be redirected to Add page
@regression
Scenario: Add to project option in Empty state of topology: T-06-TC03
Given user is at the Topology page
When user clicks on "Start building your application" link in the empty topology page
Then user will be able to see Add to project search bar
@smoke
Scenario: Topology with workloads: T-06-TC04
Given user has created a deployment workload named "nodejs-ex-git-1"
And user has created a deployment config workload "nodejs-ex-git-2"
When user navigates to Topology page
Then user sees "nodejs-ex-git-1" and "nodejs-ex-git-2" workloads in topology chart area
@regression @manual
Scenario: Visual for deployment: T-06-TC05
Given user has created a deployment workload named "nodejs-d"
And user is at the Topology page
When user checks nodes and the decorators associated with them
Then nodes are circular shaped with builder image in them
And pod ring associated with node are present around node with color according to the pod status
And deployment can have application url on top-right of the node
And user sees edit source code decorator is on bottom right of the node which can lead to github or che workspace
And user sees build decorator on bottom left which will take user to either build tab or pipeline depending on pipeline associated with them
And user checks node label having "D" for deployment and then name of node
@regression @manual
Scenario: Visual for deployment-config: T-06-TC06
Given user has created a deployment config workload named "nodejs-dc"
And user is at the Topology page
When user checks nodes and the decorators associated with them
Then nodes are circular shaped with builder image in them
And pod ring associated with node are present around node with color according to the pod status
And deployment-config can have application url on top-right of the node
And user sees edit source code decorator is on bottom right of the node which can lead to github or che workspace
And user sees build decorator on bottom left which will take user to either build tab or pipeline depending on pipeline associated with them
And user checks node label having "DC" for deployment-config and then name of node
@regression @manual
Scenario: Visual for knative service with no revision: T-06-TC07
Given user has created a knative service workload named "nodejs-knative" without revision
And user is at the Topology page
When user checks nodes and the decorators associated with them
Then user can view knative service are rectangular shaped with round corners
And user can see dotted boundary with text "No Revisions" mentioned
And knative sevice app can have application url on top-right of the node
And user sees build decorator on bottom left on knative service app which will take user to build tab
And user checks knative service having label "KSVC" and then the name of service
@regression @manual
Scenario: Visual for knative service with revisions: T-06-TC08
Given user has created a knative service workload named "nodejs-knative" with revision
And user is at the Topology page
When user checks nodes and the decorators associated with them
Then user can view knative service are rectangular shaped with round corners
And user can see knative service app with dotted boundary with revision present inside it
And knative sevice app can have application url on top-right of the node
And user can see traffic distribution from knative sevice app to its revisions with its percentage number
And pod ring associated with revisions are present around node with color according to the pod status
And user sees edit source code decorator is on bottom right of knative service which can lead to github or che workspace
And user sees build decorator on bottom left on knative service app which will take user to either build tab
And user checks revisions having label "REV" and then the name
And user checks knative service having label "KSVC" and then the name of service
@smoke
Scenario: Context menu of node: T-06-TC09
Given user has created a deployment workload named "nodejs-ex-git3"
And user is at the Topology page
When user right clicks on the node "nodejs-ex-git3" to open context menu
Then user is able to see context menu options like Edit Application Grouping, Edit Pod Count, Pause Rollouts, Add Health Checks, Add Horizontal Pod Autoscaler, Add Storage, Edit Update Strategy, Edit Labels, Edit Annotations, Edit Deployment, Delete Deployment
@regression @odc-4944 @manual
Scenario: Zoom In to 50% in topology: T-06-TC10
Given user has created a workload named "nodejs-ex-git"
And user is at the Topology page
And chart view is totally zoomed out
When user clicks on Zoom In option to zoom to 50% scale
Then user can see the chart area is zoomed
And user can see all labels & decorators are hidden
And label are shown when hovering over the node
@regression @odc-4944 @manual
Scenario: Zoom In to 30% in topology: T-06-TC11
Given user has created a workload named "nodejs-ex-git"
And user is at the Topology page
And chart view is totally zoomed out
When user clicks on Zoom In option to zoom to 30% scale
Then user can see the chart area is zoomed
And user can see all labels, decorators, pod rings & icons are hidden
And user can see background of node as white
@regression @manual
Scenario: Zoom Out in topology: T-06-TC12
Given user has created a workload named "nodejs-ex-git"
And user is at the Topology page
When user clicks on Zoom Out option
Then user sees the chart area is zoomed out
@regression @manual
Scenario: Fit to Screen in topology: T-06-TC13
Given user has created a workload named "nodejs-ex-git"
And user is at the Topology page
When user clicks on Zoom In option
And user sees the chart area is zoomed
And user clicks on Fit to Screen option
Then user sees the nodes fitting within chart area
@regression @manual
Scenario: Reset view in topology: T-06-TC14
Given user has created a workload named "nodejs-ex-git"
And user is at the Topology page
When user clicks on Zoom In option
And user sees the chart area is zoomed
And user clicks on Reset View option
Then user sees the chart area is reset to original
@regression
Scenario Outline: Topology filter by resource: T-06-TC15
Given user created "<resource_type>" workload
When user is at Topology page chart view
And user clicks the filter by resource on top
And user clicks on "<resource_type>" option
Then user can see only the "<resource_type>" workload
Examples:
| resource_type |
| Deployment |
| DeploymentConfig |
@regression
Scenario: Context menu on empty area: T-06-TC16
Given user has installed OpenShift Serverless Operator
And user has installed Crunchy Postgres for Kubernetes operator
And user navigates to Topology Page
When user right clicks on the empty chart area
And user hovers on Add to Project
Then user is able to see options like Samples, Import from Git, Container Image, From Dockerfile, From Devfile, From Catalog, Database, Operator Backed, Helm Charts, Event Source, Channel
@regression
Scenario: Add to Project in topology: T-06-TC17
Given user is at the Topology page
When user right clicks on the empty chart area
And user hovers on Add to Project
And user clicks on Samples
And user selects go sample
And user fills the "Go Sample" form and clicks Create
And user hovers on Add to Project and clicks on "Import from Git"
And user fills the "Import From Git" form and clicks Create
And user hovers on Add to Project and clicks on "Container Image"
And user fills the "Container Image" form and clicks Create
And user hovers on Add to Project and clicks on "From Catalog"
And user selects Python Builder Image and clicks Create Application
And user fills the "Catalog" form and clicks Create
And user hovers on Add to Project and clicks on "Database"
And user selects Postgres Database and clicks on Instantiate Template
And user clicks on Create button
# Crunchy Postgres for Kubernetes operator not installing correctly, won't able to create a postgres.
And user hovers on Add to Project and clicks on "Operator Backed"
And user selects "Postgres Cluster" and clicks on Create
And user fills the "Operator Backed" form with yaml at "test-data/hippo-postgres-cluster.yaml" and clicks Create
And user hovers on Add to Project and clicks on "Helm Charts"
And user selects Nodejs and clicks on Install Helm Charts
And user fills the "Helm Chart" form and clicks Create
And user hovers on Add to Project and clicks on "Event Source"
And user selects Api Server Source and clicks on Create Event Source
And user fills the "Event Source" form and clicks Create
And user hovers on Add to Project and clicks on "Channel"
And user fills the "Channel" form and clicks Create
Then user is able to see different applications created from Samples, Import from Git, Container Image, From Catalog, Database, Operator Backed, Helm Charts, Event Source, Channel
@regression @manual
Scenario: Upload JAR file form: T-06-TC18
Given user has a jar file named "sample_yaml_upload.yaml"
And user is at the Topology page
When user drags and drop jar file on topology
Then user sees Upload JAR file form
And user can see JAR section with jar file name with Browse and Clear button associated with it
And user can see Optional java commands, Runtime icon and Build image version under JAR section
And user can see General section with Application name and Name under it
And user can see Advanced options section
@regression @manual
Scenario: Drag and drop jar file in topology chart view: T-06-TC19
Given user has a jar file named "sample_yaml_upload.yaml"
And user is at the Topology page
When user drags and drop jar file on topology
And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload"
And user clicks on Create in Upload JAR file form
Then user is redirected to topology
And user can see a toast notification of JAR file uploading with link to build logs
And user can see deployment "sample-yaml-upload" in application "sample-upload-app" is created in topology
@regression @manual
Scenario: Add to Project to upload JAR file in topology: T-06-TC20
Given user is at the Topology page
When user right clicks on the empty chart area
And user clicks on Add to Project
And user clicks on Upload JAR file
And user clicks on Browse in JAR file section
And user selects file to upload
And user clicks Clear and reupload the file
And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload-1"
And user clicks on Create
Then user is redirected to topology
And user can see a toast notification of JAR file uploading with link to build logs
And user can see deployment "sample-yaml-upload-1" in application "sample-upload-app" is created in topology
@regression @manual
Scenario: Add to Project through drag and drop to upload JAR file in topology: T-06-TC21
Given user is at the Topology page
When user right clicks on the empty chart area
And user clicks on Add to Project
And user clicks on Upload JAR file
And user drag and drop the file in JAR file section
And user gives Application name as "sample-upload-app" and workload Name as "sample-yaml-upload-1"
And user clicks on Create
Then user is redirected to topology
And user can see a toast notification of JAR file uploading with link to build logs
And user can see deployment "sample-yaml-upload-1" in application "sample-upload-app" is created in topology
@regression @manual
Scenario: Drag and drop Incompatible file in topology chart view: T-06-TC22
Given user has a incompatible file
And user is at the Topology chart view
When user drags and drops the file on topology
Then a toast warning message will appear stating that the file is invalid.
@regression @manual
Scenario: Exiting the browser while an upload is in progress: T-06-TC23
Given user is uploading a jar file
And user is at the Topology chart view
When user tries to exist the browser
Then a web alert would appear asking the user if they really wanted to leave the page with Leave and Skip button
@regression @manual
Scenario: View shortcuts menu: T-06-TC24
Given user has uploaded a jar file
And user is at Topology page
When user clicks on View shortcuts
Then user sees shortcut for Move
And user sees shortcut for Edit Application grouping
And user sees shortcut for Access context menu
And user sees shortcut for View details in side panel
And user sees shortcut for Access create connector handle
And user sees shortcut for Qpen quick search modal
And user sees shortcut for Drag and drop a JAR file into Topology
@regression @manual
Scenario: Display of External Bindable resources: T-06-TC25
Given user has installed Service Binding operator
#Please refer to test case KM-01-TC01 for creating kafka connection
And user has created external bindable resource Kafka Connection "kafka-instance-123"
When user navigates to Topology chart view
Then user will see the bindable resource "kafka-instance-123" in trapezoid shape
@regression @manual
Scenario: Connect to External Bindable resources: T-06-TC26
Given user has installed Service Binding operator
#Please refer to test case KM-01-TC01 for creating kafka connection
And user has created external bindable resource Kafka Connection "kafka-instance-123"
And user is at the Topology chart view
When user created a deployment workload "node-js-git-1"
And user drag the connector from the deployment workload
And user drops the connector on the enabled bindable resource
Then user will see service binding connection
@regression @odc-6361
Scenario: Search with label: T-06-TC27
Given user has created a deployment workload "nodejs-1"
And user has created a deployment workload "nodejs-2"
And user is at Topology page chart view
When user selects "Label" option in filter menu
And user searches for label "app.kubernetes.io/component=nodejs-1"
Then user can see the workload "nodejs-1" visible
@regression @odc-6361
Scenario: Check last selected node in topology per project per session: T-06-TC28
Given user has created a deployment workload "nodejs-1"
And user has created a deployment workload "nodejs-2"
And user is at Topology page chart view
When user clicks on workload "nodejs-2" to open sidebar
And user opens the details page for "nodejs-2" by clicking on the title
And user navigate back to Topology page
Then user will see the the workload "nodejs-2" selected with sidebar open
@regression @odc-5947
Scenario: Create Service Binding option in nodes actions menu: T-06-TC29
Given user has installed Service Binding operator
And user has created or selected namespace "binding-service"
And user is at developer perspective
And user is at Topology page chart view
And user has created a deployment workload "node-js1"
When user right clicks on workload "node-js1"
And user clicks on "Create Service Binding" option from context menu
Then user will see "Create Service Binding" modal
And user will see alert "No bindable services available"
@regression @manual @odc-5947
Scenario: Bindable services options in Create Service Binding modal: T-06-TC30
Given user has installed Service Binding operator
And user is at Topology page chart view
And user has created a deployment workload "node-js2"
#Please refer to test case KM-01-TC01 for creating kafka connection
And user has created external bindable resource Kafka Connection "kafka-instance-ex"
And user has created operator-backed service of postgresSQL "example-pg"
And user has applied '/testdata/bindableresource1.yaml' yaml
When user right clicks on workload "node-js2"
And user clicks on "Create Service Binding" option from context menu
And user clicks on Bindable service dropdown
Then user will see postgres and kafka connection services options
And user is able to see service binding connector with name "node-js2-d-kafka-example-pg-pc" after clicking on create with "example-pg" option selected in Create Service Binding modal
@regression @manual @odc-5947
Scenario: Drag and drop connector to existing bindable resource: T-06-TC31
Given user has installed Service Binding operator
And user is at Topology page chart view
And user has created a deployment workload "node-s"
#Please refer to test case KM-01-TC01 for creating kafka connection
And user has created external bindable resource Kafka Connection "kafka-instance-ex"
When user drag and drop the connector to Kafka Connection
And user clicks on Create with name "node-s-d-kafka-instance-ex-akc"
And user clicks on connector
Then user will see the name as "node-s-d-kafka-instance-ex-akc"
And user will see Secret section with secret present
@regression @manual @odc-5947
Scenario: Specify the name and the bindable object to connect to in Create Service Binding modal: T-06-TC32
Given user has installed Service Binding operator
And user is at Topology page chart view
And user has created a deployment workload "node-js"
When user drag and drop the connector to empty area
And user selects Operator backed option
And user selects Kafka Connection
And user clicks on Create
And user clicks on Create button on Create Kafka Connection form
And user replaced the name "node-js-d-kafka-instance-ex-akc" with "node-kc-connection-1" in Create Service Binding modal
And user clicks on Create
Then user will see the connection between node workload and Kafka Connection
And user will see the name "node-kc-connection-1" in connector sidebar
@regression @manual @odc-5947
Scenario: Create connection to already existing service binding connection: T-06-TC33
Given user has installed Service Binding operator
And user is at Topology page chart view
#Please refer to test case KM-01-TC01 for creating kafka connection
And user has created service binding connnector between deployment workload "node-j" and Kafka Connection "kafka-instance-ex1"
When user right clicks on workload "node-j"
And user clicks on "Create Service Binding" option from context menu
And user selects Bindable service as "kafka-instance-ex1"
And user clicks on Save
Then user will see error "Service binding already exists. Select a different service to connect to."
@regression @odc-4944 @manual
Scenario: Status on Service binding in topology: T-06-TC34
Given user has installed Service Binding operator
And user has installed Redis Operator
And user has installed Crunchy Postgres for Kubernetes operator
And user is at developer perspective
And user is at Topology page chart view
And user has created a deployment workload named "node-j"
And user has created a operator backed service of "Redis" operator named "redis-standalone"
And user has created a operator backed service "hippo" from yaml "test-data/hippo-postgres-cluster.yaml"
And user has created service binding connnector "test-connector1" between "node-j" and "redis-standalone"
And user has created service binding connnector "test-connector2" between "node-j" and "hippo"
When user clicks on service binding connector for "hippo"
And user clicks on service binding connector for "redis-standalone"
Then user will see black colored connector for "hippo"
And user can see "Connected" in Status section on service binding connnector topology sidebar
And user will see red colored connector for "redis-standalone"
And user can see "Error" in Status section on service binding connnector topology sidebar
@regression @odc-4944 @broken-test
# Redis operator having issues after 0.14 updates, it does not appears in topology
# https://github.com/OT-CONTAINER-KIT/redis-operator/issues/526
Scenario: Connected status on Service binding details page: T-06-TC35
Given user has created namespace "aut-connected-sb"
And user has installed Service Binding operator
And user has installed Redis Operator
And user is at developer perspective
And user is at Topology page chart view
And user has created a deployment workload named "node-ej"
And user has created a operator backed service of "Redis" operator named "redis-standalone"
And user has created service binding connnector "test-connector2" between "node-ej" and "redis-standalone"
When user clicks on service binding connector
And user clicks on the service binding name "test-connector2" at the sidebar
Then user will see "Connected" Status on Service binding details page
@regression @odc-4944 @broken-test
# Redis operator having issues after 0.14 updates, it does not appears in topology
# https://github.com/OT-CONTAINER-KIT/redis-operator/issues/526
Scenario: Error status on Service binding details page: T-06-TC36
Given user has created namespace "aut-error-sb"
And user has installed Service Binding operator
And user has installed Redis Operator
And user is at developer perspective
And user is at Topology page chart view
And user has created a deployment workload named "node-ej"
And user has created a operator backed service "redis-standalone" from yaml "test-data/redis-standalone.yaml"
And user has created service binding connnector "test-connector3" between "node-ej" and "redis-standalone"
When user clicks on service binding connector
And user clicks on the service binding name "test-connector3" at the sidebar
Then user will see "Error" Status on Service binding details page
@regression @odc-7120 @broken-test
# Redis operator having issues after 0.14 updates, it does not appears in topology
# https://github.com/OT-CONTAINER-KIT/redis-operator/issues/526
Scenario: Create connection using import YAML with Service Binding using Label Selector: T-06-TC37
Given user has created namespace "aut-connected-sb-ls"
And user has installed Service Binding operator
And user has installed Redis Operator
And user is at developer perspective
And user is at Topology page chart view
And user has created a deployment workload named "node-ej"
And user has created a operator backed service of "Redis" operator named "redis-standalone"
When user clicks on import YAML button from topology page
And user enters yaml content from yaml file "test-data/servicebinding-resource-label-selector.yaml" in the editor
And user clicks on Create button in import YAML
And user sees "test-connector4" Title on Service binding details page
And user navigates to Topology page
Then user will see service binding connection
@regression @odc-7120 @broken-test
# Redis operator having issues after 0.14 updates, it does not appears in topology
# https://github.com/OT-CONTAINER-KIT/redis-operator/issues/526
Scenario: Label specified in Label Selector section on Service binding details page: T-06-TC38
Given user has created namespace "aut-label-details-sb"
And user has installed Service Binding operator
And user has installed Redis Operator
And user is at developer perspective
And user is at Topology page chart view
And user has created a deployment workload named "node-ej"
And user has created a operator backed service of "Redis" operator named "redis-standalone"
When user clicks on import YAML button from topology page
And user enters yaml content from yaml file "test-data/servicebinding-resource-label-selector.yaml" in the editor
And user clicks on Create button in import YAML
And user sees "test-connector4" Title on Service binding details page
Then user will see "app=node-ej" in Label Selector section on Service binding details page
@regression @odc-7120 @broken-test
# Redis operator having issues after 0.14 updates, it does not appears in topology
# https://github.com/OT-CONTAINER-KIT/redis-operator/issues/526
Scenario: Label specified in Label Selector section on Service binding side panel: T-06-TC39
Given user has created namespace "aut-label-panel-sb"
And user has installed Service Binding operator
And user has installed Redis Operator
And user is at developer perspective
And user is at Topology page chart view
And user has created a deployment workload named "node-ej"
And user has created a operator backed service of "Redis" operator named "redis-standalone"
When user clicks on import YAML button from topology page
And user enters yaml content from yaml file "test-data/servicebinding-resource-label-selector.yaml" in the editor
And user clicks on Create button in import YAML
And user sees "test-connector4" Title on Service binding details page
And user navigates to Topology page
And user clicks on service binding connector
Then user will see "app=node-ej" in Label Selector section on Service binding connnector topology sidebar