1
1
import { Chance } from 'chance' ;
2
2
import { rte } from '../../../helpers/constants' ;
3
3
import { acceptLicenseTermsAndAddDatabase , deleteDatabase } from '../../../helpers/database' ;
4
- import { BrowserPage } from '../../../pageObjects' ;
4
+ import { BrowserPage , CliPage } from '../../../pageObjects' ;
5
5
import {
6
6
commonUrl ,
7
7
ossStandaloneConfig
8
8
} from '../../../helpers/conf' ;
9
9
10
10
const browserPage = new BrowserPage ( ) ;
11
+ const cliPage = new CliPage ( ) ;
11
12
const chance = new Chance ( ) ;
12
13
13
14
let keyName = chance . word ( { length : 20 } ) ;
@@ -23,7 +24,7 @@ fixture `Consumer group`
23
24
} )
24
25
. afterEach ( async t => {
25
26
//Clear and delete database
26
- if ( t . expect ( browserPage . closeKeyButton . visible ) . ok ) {
27
+ if ( await t . expect ( browserPage . closeKeyButton . visible ) . ok ( ) ) {
27
28
await t . click ( browserPage . closeKeyButton ) ;
28
29
}
29
30
await browserPage . deleteKeyByName ( keyName ) ;
@@ -92,3 +93,61 @@ test('Verify that user can see the Consumer group columns (Group Name, Consumers
92
93
await t . expect ( browserPage . scoreButton . nth ( i ) . textContent ) . eql ( groupColumns [ i ] , `The ${ i } Consumer group column name` ) ;
93
94
}
94
95
} ) ;
96
+ test ( 'Verify that user can see the message when there are no Consumers in the Consumer Group' , async t => {
97
+ keyName = chance . word ( { length : 20 } ) ;
98
+ consumerGroupName = chance . word ( { length : 20 } ) ;
99
+ const message = 'Your Consumer Group has no Consumers available.' ;
100
+ // Add New Stream Key
101
+ await browserPage . addStreamKey ( keyName , keyField , keyValue ) ;
102
+ // Open Stream consumer group and check message
103
+ await t . click ( browserPage . streamTabGroups ) ;
104
+ await browserPage . createConsumerGroup ( consumerGroupName ) ;
105
+ await t . click ( browserPage . consumerGroup ) ;
106
+ await t . expect ( browserPage . streamConsumersContainer . textContent ) . contains ( message , 'The message for empty Consumer Group' ) ;
107
+ } ) ;
108
+ test ( 'Verify that user can see the Consumer information columns (Consumer Name, Pendings, Idle Time,ms)' , async t => {
109
+ keyName = chance . word ( { length : 20 } ) ;
110
+ consumerGroupName = chance . word ( { length : 20 } ) ;
111
+ const cliCommands = [
112
+ `XGROUP CREATE ${ keyName } ${ consumerGroupName } $ MKSTREAM` ,
113
+ `XADD ${ keyName } * message apple` ,
114
+ `XREADGROUP GROUP ${ consumerGroupName } Alice COUNT 1 STREAMS ${ keyName } >`
115
+ ] ;
116
+ const consumerColumns = [
117
+ 'Consumer Name' ,
118
+ 'Pending' ,
119
+ 'Idle Time, ms'
120
+ ] ;
121
+ // Add New Stream Key with groups and consumers
122
+ for ( const command of cliCommands ) {
123
+ await cliPage . sendCommandInCli ( command ) ;
124
+ }
125
+ // Open Stream consumer info view
126
+ await browserPage . openKeyDetails ( keyName ) ;
127
+ await t . click ( browserPage . streamTabGroups ) ;
128
+ await t . click ( browserPage . consumerGroup ) ;
129
+ for ( let i = 0 ; i < consumerColumns . length ; i ++ ) {
130
+ await t . expect ( browserPage . scoreButton . nth ( i ) . textContent ) . eql ( consumerColumns [ i ] , `The ${ i } Consumers info column name` ) ;
131
+ }
132
+ } ) ;
133
+ test ( 'Verify that user can navigate to Consumer Groups screen using the link in the breadcrumbs' , async t => {
134
+ keyName = chance . word ( { length : 20 } ) ;
135
+ consumerGroupName = chance . word ( { length : 20 } ) ;
136
+ const cliCommands = [
137
+ `XGROUP CREATE ${ keyName } ${ consumerGroupName } $ MKSTREAM` ,
138
+ `XADD ${ keyName } * message apple` ,
139
+ `XREADGROUP GROUP ${ consumerGroupName } Alice COUNT 1 STREAMS ${ keyName } >`
140
+ ] ;
141
+ // Add New Stream Key with groups and consumers
142
+ for ( const command of cliCommands ) {
143
+ await cliPage . sendCommandInCli ( command ) ;
144
+ }
145
+ // Open Stream consumer info view
146
+ await browserPage . openKeyDetails ( keyName ) ;
147
+ await t . click ( browserPage . streamTabGroups ) ;
148
+ await t . click ( browserPage . consumerGroup ) ;
149
+ // Check navigation
150
+ await t . expect ( browserPage . streamTabs . visible ) . ok ( 'Stream navigation tabs visibility' ) ;
151
+ await t . click ( browserPage . streamTabGroups ) ;
152
+ await t . expect ( browserPage . streamTabGroups . withAttribute ( 'aria-selected' , 'true' ) . exists ) . ok ( 'The Consumer Groups screen is opened' ) ;
153
+ } ) ;
0 commit comments