| /** | 
|  * @file         ADSO-10190 | 
|  * @description  Copy stocking cost via action bar or context menu - multiple costs selection | 
|  * @testcategory Web - Financials - Stocking points | 
|  * @author       Umar Adkhamov (umar.adkhamov@3ds.com) | 
|  * @copyright    Dassault Systemes | 
|  */ | 
| import { qCustomMatcher } from '../../../e2elib/lib/src/main/qmatchers.const'; | 
| import { LogMessage } from '../../../libappbase/logmessage'; | 
| import { AppMP, Demo, Scenario } from '../../../libmp/appmp'; | 
| import { ListStockingCostContextMenuItem, ListStockingCost } from '../../../libmp/forms/form.stockingcost'; | 
|   | 
| describe('ADSO-10190 - Verify that copying multiple stocking costs at a time is not allowed', () => { | 
|   const appMP = AppMP.getInstance(); | 
|   let listStockingCost: ListStockingCost; | 
|   const expectedTooltip = 'Copy one cost at a time.'; | 
|   | 
|   beforeAll(async () => { | 
|     jasmine.addMatchers(qCustomMatcher); | 
|     await appMP.login(); | 
|   }); | 
|   | 
|   afterAll(async () => { | 
|     await appMP.cleanupAndLogout(); | 
|   }); | 
|   | 
|   afterEach(async () => { | 
|     await appMP.checkToastMessage(); | 
|   }); | 
|   | 
|   it(`Setup - ${AppMP.getDemoDataPath(Demo.Food, Scenario.Base)}`, async () => { | 
|     await appMP.createDemoDataset(Demo.Food, Scenario.Base, false); | 
|   }); | 
|   | 
|   it(`Step 1 - Open view ${appMP.viewStockingCost.viewPath}`, async () => { | 
|     await appMP.viewStockingCost.switchTo(); | 
|     listStockingCost = appMP.viewStockingCost.frmStockingCost.lstStockingCost; | 
|     expect(await listStockingCost.isVisible()).toBe(true, 'Stocking Cost list should be visible.'); | 
|   }); | 
|   | 
|   it('Step 2 - Select 2 stocking costs and verify "Copy" context menu is disabled with tooltip', async () => { | 
|     // By default, first row (index 0) of the list will be selected. Only extend the selection to second row (index 1). | 
|     await listStockingCost.selectListRowsByIndex([1], true); | 
|     const rows = await listStockingCost.getInboundSelectedRows(); | 
|     await rows[0].rightClick(); | 
|   | 
|     // Verify context menu item "Copy" is disabled | 
|     const [isMenuEnable, cmMenuDisabledTooltip] = await listStockingCost.verifyIsMenuItemClickable(ListStockingCostContextMenuItem.Copy); | 
|     expect(isMenuEnable).toBe(false, LogMessage.menu_isEnabled('Copy')); | 
|     // Verify tooltip text of the "Copy" menu item | 
|     expect(cmMenuDisabledTooltip).toBe(expectedTooltip, LogMessage.tooltip_notMatched(expectedTooltip, cmMenuDisabledTooltip)); | 
|   }); | 
|   | 
|   it('Step 3 - Verify "Copy" button in action bar page is disabled with tooltip', async () => { | 
|     // Verify "Copy" button in action bar is disabled | 
|     const [isBtnClickable, btnDisabledTooltip] = await appMP.abpData.btnCopy.getIsClickable(); | 
|     expect(isBtnClickable).toBe(false, LogMessage.btn_isEnabled('Copy')); | 
|     // Verify tooltip text of the "Copy" button in action bar | 
|     expect(btnDisabledTooltip).toBe(expectedTooltip, LogMessage.tooltip_notMatched(expectedTooltip, btnDisabledTooltip)); | 
|   }); | 
| }); |