|
6 | 6 | import { capitalize } from 'lodash';
|
7 | 7 | import {
|
8 | 8 | availableHanaCluster,
|
| 9 | + availableHanaClusterCostOpt, |
9 | 10 | availableAngiCluster,
|
10 | 11 | } from '../fixtures/hana-cluster-details/available_hana_cluster';
|
11 | 12 |
|
@@ -233,6 +234,120 @@ context('HANA cluster details', () => {
|
233 | 234 | });
|
234 | 235 | });
|
235 | 236 |
|
| 237 | + describe('HANA cluster details in a cost optimized scenario should be consistent with the state of the cluster', () => { |
| 238 | + before(() => { |
| 239 | + cy.loadScenario('hana-scale-up-cost-opt'); |
| 240 | + cy.visit(`/clusters/${availableHanaClusterCostOpt.id}`); |
| 241 | + cy.url().should('include', `/clusters/${availableHanaClusterCostOpt.id}`); |
| 242 | + }); |
| 243 | + |
| 244 | + after(() => { |
| 245 | + availableHanaClusterCostOpt.hosts.forEach(({ id }) => { |
| 246 | + cy.deregisterHost(id); |
| 247 | + }); |
| 248 | + }); |
| 249 | + |
| 250 | + it(`should have name ${availableHanaClusterCostOpt.name} in header`, () => { |
| 251 | + cy.get('h1').contains(availableHanaClusterCostOpt.name); |
| 252 | + }); |
| 253 | + |
| 254 | + it(`should have provider ${availableHanaClusterCostOpt.provider}`, () => { |
| 255 | + cy.get('.tn-cluster-details') |
| 256 | + .contains('Provider') |
| 257 | + .next() |
| 258 | + .contains(availableHanaClusterCostOpt.provider); |
| 259 | + }); |
| 260 | + |
| 261 | + it('should have all cost optimized SID`s and correct database links', () => { |
| 262 | + cy.get('.tn-cluster-details') |
| 263 | + .contains('SID') |
| 264 | + .parent() |
| 265 | + .within(() => { |
| 266 | + availableHanaClusterCostOpt.sids.forEach((sid, index) => { |
| 267 | + cy.contains(sid).should( |
| 268 | + 'have.attr', |
| 269 | + 'href', |
| 270 | + `/databases/${availableHanaClusterCostOpt.systemID[index]}` |
| 271 | + ); |
| 272 | + }); |
| 273 | + }); |
| 274 | + }); |
| 275 | + |
| 276 | + it(`should have cluster cost optimized type ${availableHanaClusterCostOpt.clusterType}`, () => { |
| 277 | + cy.get('.tn-cluster-details') |
| 278 | + .contains('Cluster type') |
| 279 | + .next() |
| 280 | + .contains(availableHanaClusterCostOpt.clusterType); |
| 281 | + }); |
| 282 | + |
| 283 | + it(`should have architecture type ${availableHanaClusterCostOpt.clusterType}`, () => { |
| 284 | + cy.get('.tn-cluster-details') |
| 285 | + .contains('Cluster type') |
| 286 | + .next() |
| 287 | + .find('svg') |
| 288 | + .trigger('mouseover'); |
| 289 | + |
| 290 | + cy.contains('span', availableHanaClusterCostOpt.architectureType).should( |
| 291 | + 'exist' |
| 292 | + ); |
| 293 | + }); |
| 294 | + |
| 295 | + it(`should have log replication mode ${availableHanaClusterCostOpt.hanaSystemReplicationMode}`, () => { |
| 296 | + cy.get('.tn-cluster-details') |
| 297 | + .contains('HANA log replication mode') |
| 298 | + .next() |
| 299 | + .contains(availableHanaClusterCostOpt.hanaSystemReplicationMode); |
| 300 | + }); |
| 301 | + |
| 302 | + it(`should have fencing type ${availableHanaClusterCostOpt.fencingType}`, () => { |
| 303 | + cy.get('.tn-cluster-details') |
| 304 | + .contains('Fencing type') |
| 305 | + .next() |
| 306 | + .contains(availableHanaClusterCostOpt.fencingType); |
| 307 | + }); |
| 308 | + |
| 309 | + it(`should have HANA secondary sync state ${availableHanaClusterCostOpt.hanaSecondarySyncState}`, () => { |
| 310 | + cy.get('.tn-cluster-details') |
| 311 | + .contains('HANA secondary sync state') |
| 312 | + .next() |
| 313 | + .contains(availableHanaClusterCostOpt.hanaSecondarySyncState); |
| 314 | + }); |
| 315 | + |
| 316 | + it(`should have maintenance mode ${availableHanaClusterCostOpt.maintenanceMode}`, () => { |
| 317 | + cy.get('.tn-cluster-details') |
| 318 | + .contains('Cluster maintenance') |
| 319 | + .next() |
| 320 | + .contains('False'); |
| 321 | + }); |
| 322 | + |
| 323 | + it(`should have hana log operation mode ${availableHanaClusterCostOpt.hanaSystemReplicationOperationMode}`, () => { |
| 324 | + cy.get('.tn-cluster-details') |
| 325 | + .contains('HANA log operation mode') |
| 326 | + .next() |
| 327 | + .contains( |
| 328 | + availableHanaClusterCostOpt.hanaSystemReplicationOperationMode |
| 329 | + ); |
| 330 | + }); |
| 331 | + |
| 332 | + it(`should have cib last written ${availableHanaClusterCostOpt.cibLastWritten}`, () => { |
| 333 | + cy.get('.tn-cluster-details') |
| 334 | + .contains('CIB last written') |
| 335 | + .next() |
| 336 | + .contains(availableHanaClusterCostOpt.cibLastWritten); |
| 337 | + }); |
| 338 | + |
| 339 | + it('should display both SID`s in the clusters overview page', () => { |
| 340 | + cy.visit('/clusters'); |
| 341 | + cy.url().should('include', '/clusters'); |
| 342 | + cy.get('.container').eq(0).as('clustersTable'); |
| 343 | + cy.get('@clustersTable').find('tr').eq(7).find('td').eq(2).as('sidCell'); |
| 344 | + |
| 345 | + availableHanaClusterCostOpt.sids.forEach((sid) => { |
| 346 | + cy.get('@sidCell').should('contain', sid); |
| 347 | + }); |
| 348 | + }); |
| 349 | + }); |
| 350 | + |
236 | 351 | describe('Angi architecture', () => {
|
237 | 352 | before(() => {
|
238 | 353 | cy.loadScenario('hana-scale-up-angi');
|
|
0 commit comments