When feature toggle is active then SDNC preload files is enable.
[vid.git] / vid-webpack-master / cypress / support / steps / drawingBoard / general.steps.ts
1 declare namespace Cypress {
2   interface Chainable {
3     updateServiceShouldNotOverrideChild: typeof updateServiceShouldNotOverrideChild
4     openServiceContextMenu: typeof openServiceContextMenu,
5     drawingBoardTreeClickOnContextMenuOptionByName : typeof  drawingBoardTreeClickOnContextMenuOptionByName,
6     nodeAction: typeof nodeAction,
7     editNode : typeof editNode
8   }
9 }
10
11 function updateServiceShouldNotOverrideChild() : void  {
12     cy.getElementByDataTestsId('drawing-board-tree').find('.node-content-wrapper').then((elements)=>{
13       let numberOfExistingElements = elements.length;
14         cy.openServiceContextMenu().then(() =>{
15           cy.getElementByDataTestsId('context-menu-header-edit-item').click({force : true}).then(()=>{
16             cy.genericFormSubmitForm().then(()=>{
17               cy.getElementByDataTestsId('drawing-board-tree').find('.node-content-wrapper').then((afterUpdateServiceElements)=>{
18                 chai.expect(numberOfExistingElements).equal(afterUpdateServiceElements.length);
19               });
20             });
21           });
22         });
23     });
24 }
25
26
27 function openServiceContextMenu() :  Chainable<any> {
28  return cy.getElementByDataTestsId('openMenuBtn').click({force: true});
29 }
30
31 function nodeAction(dataTestId: string, action: string, index ?: number) {
32   return cy.drawingBoardTreeOpenContextMenuByElementDataTestId(dataTestId, index)
33     .drawingBoardTreeClickOnContextMenuOptionByName(action)
34 }
35
36 function drawingBoardTreeClickOnContextMenuOptionByName(optionName : string) : Chainable<any>  {
37   switch (optionName) {
38     case 'Duplicate':
39       return cy.getElementByDataTestsId('context-menu-duplicate').click({force : true});
40     case 'Remove':
41       return cy.getElementByDataTestsId('context-menu-remove').click({force : true});
42     case 'Edit':
43       return cy.getElementByDataTestsId('context-menu-edit').click({force : true});
44     case 'Delete':
45       return cy.getElementByDataTestsId('context-menu-delete').trigger('mouseover').click();
46     case 'Upgrade':
47       return cy.getElementByDataTestsId('context-menu-upgrade').trigger('mouseover').click();
48     case 'Undo Upgrade':
49       return cy.getElementByDataTestsId('context-menu-undoUpgrade').trigger('mouseover').click();
50     default:
51       return cy.getElementByDataTestsId('context-menu-duplicate').click({force : true});
52   }
53 }
54
55 function editNode(dataTestId: string, index ?: number) {
56   return cy.nodeAction(dataTestId, 'Edit', index);
57 }
58
59 Cypress.Commands.add('updateServiceShouldNotOverrideChild', updateServiceShouldNotOverrideChild);
60 Cypress.Commands.add('openServiceContextMenu', openServiceContextMenu);
61 Cypress.Commands.add('drawingBoardTreeClickOnContextMenuOptionByName', drawingBoardTreeClickOnContextMenuOptionByName);
62 Cypress.Commands.add('nodeAction', nodeAction);
63 Cypress.Commands.add('editNode', editNode);