@@ -14,12 +14,14 @@ export const setValueVueInput = async (
1414 input : ChainablePromiseElement ,
1515 value : string
1616) => {
17- // input.setValue does not clear existing input, so click and backspace
17+ // input.setValue does not clear existing input, so select all and replace.
1818 await input . click ( ) ;
1919 const oldValue = await input . getValue ( ) ;
2020 if ( oldValue ) {
21- const backspaces = new Array ( oldValue . length ) . fill ( Key . Backspace ) ;
22- await browser . keys ( [ Key . ArrowRight , ...backspaces ] ) ;
21+ const selectAllModifier =
22+ process . platform === 'darwin' ? 'Meta' : 'Control' ;
23+ await browser . keys ( [ selectAllModifier , 'a' ] ) ;
24+ await browser . keys ( Key . Backspace ) ;
2325 }
2426 await input . setValue ( value ) ;
2527} ;
@@ -149,6 +151,22 @@ class VolViewPage extends Page {
149151 return $ ( 'button span i[class~=mdi-content-save-all]' ) ;
150152 }
151153
154+ get annotationsModuleTab ( ) {
155+ return $ ( 'button[data-testid="module-tab-Annotations"]' ) ;
156+ }
157+
158+ get newSegmentGroupButton ( ) {
159+ return $ ( 'button*=New Group' ) ;
160+ }
161+
162+ get activeDialog ( ) {
163+ return $ ( 'div[role="dialog"]' ) ;
164+ }
165+
166+ get activeDialogInput ( ) {
167+ return this . activeDialog . $ ( 'input[placeholder="Unnamed Segment Group"]' ) ;
168+ }
169+
152170 get saveSessionFilenameInput ( ) {
153171 return $ ( '#session-state-filename' ) ;
154172 }
@@ -157,6 +175,33 @@ class VolViewPage extends Page {
157175 return $ ( 'span[data-testid="save-session-confirm-button"]' ) ;
158176 }
159177
178+ get segmentGroupsTab ( ) {
179+ return $ ( 'button.v-tab*=Segment Groups' ) ;
180+ }
181+
182+ get segmentGroupSaveButtons ( ) {
183+ return $$ ( 'button[data-testid="segment-group-save-button"]' ) ;
184+ }
185+
186+ get saveSegmentGroupFilenameInput ( ) {
187+ return this . activeDialog . $ ( '#filename' ) ;
188+ }
189+
190+ get saveSegmentGroupConfirmButton ( ) {
191+ return this . activeDialog . $ ( 'button=Save' ) ;
192+ }
193+
194+ async clickFirstSegmentGroupSaveButton ( ) {
195+ await browser . waitUntil ( async ( ) => {
196+ const buttons = await this . segmentGroupSaveButtons ;
197+ return ( await buttons . length ) >= 1 ;
198+ } ) ;
199+ const buttons = await this . segmentGroupSaveButtons ;
200+ await buttons [ 0 ] . scrollIntoView ( ) ;
201+ await buttons [ 0 ] . waitForClickable ( ) ;
202+ await buttons [ 0 ] . click ( ) ;
203+ }
204+
160205 async saveSession ( ) {
161206 const save = this . saveButton ;
162207 await save . click ( ) ;
@@ -177,6 +222,20 @@ class VolViewPage extends Page {
177222 return fileName ;
178223 }
179224
225+ async createSegmentGroup ( name : string ) {
226+ const annotationsTab = await this . annotationsModuleTab ;
227+ await annotationsTab . click ( ) ;
228+
229+ const newGroup = await this . newSegmentGroupButton ;
230+ await newGroup . waitForClickable ( ) ;
231+ await newGroup . click ( ) ;
232+
233+ const input = await this . activeDialogInput ;
234+ await input . waitForDisplayed ( ) ;
235+ await setValueVueInput ( input , name ) ;
236+ await browser . keys ( [ Key . Enter ] ) ;
237+ }
238+
180239 get editLabelButtons ( ) {
181240 return $$ ( 'button[data-testid="edit-label-button"]' ) ;
182241 }
0 commit comments