| /** | 
|  * @file        ADSO-9576 | 
|  * @description Create product with and without parent product | 
|  * @author      Chan Clarence (ccn7@3ds.com) | 
|  * @copyright   Dassault Systèmes | 
|  */ | 
| import { qCustomMatcher } from '../../e2elib/lib/src/main/qmatchers.const'; | 
| import { AppMP, Demo, Scenario } from '../../libmp/appmp'; | 
| import { DataFoodBaseProductName, DataFoodBaseProductParent } from '../../libmp/data/data.navigation'; | 
| import { ListProductContextMenuItem } from '../../libmp/forms/form.product'; | 
|   | 
| describe('ADSO-9576 - Create product with and without parent product', () => { | 
|   const appMP = AppMP.getInstance(); | 
|   const listProduct = appMP.viewProduct.frmProduct.listProduct; | 
|   const productNoParent = 'No parent'; | 
|   const productHasParent = 'Has parent'; | 
|   | 
|   beforeAll(async () => { | 
|     jasmine.addMatchers(qCustomMatcher); | 
|     await appMP.login(); | 
|   }); | 
|   | 
|   afterAll(async () => { | 
|     await appMP.viewProduct.reset(); | 
|     await appMP.cleanupAndLogout(); | 
|   }); | 
|   | 
|   afterEach(async () => { | 
|     await appMP.checkToastMessage(); | 
|   }); | 
|   | 
|   it(`Step 1 - ${AppMP.getDemoDataPath(Demo.Food, Scenario.Base)}`, async () => { | 
|     await appMP.createDemoDataset(Demo.Food, Scenario.Base, false); | 
|   }); | 
|   | 
|   it(`Step 2 - Open view ${appMP.viewProduct.viewPath}.`, async () => { | 
|     await appMP.viewProduct.switchTo(); | 
|   }); | 
|   | 
|   it(`Step 3 - In Products list, right click and select "Create" menu. In dialog, set Parent to empty and Name = ${productNoParent}. Click OK to create product without parent. | 
|       Verify product created at root level without any parent assigned.`, async () => { | 
|     const [dlgProduct] = await listProduct.selectContextMenu(ListProductContextMenuItem.Create); | 
|     // Create product without defining parent | 
|     await dlgProduct.updateDialogValues({Name: productNoParent, ParentProduct: ''}); | 
|     await dlgProduct.clickOK(); | 
|   | 
|     const row = await listProduct.getRow({Name: productNoParent}); | 
|     await listProduct.verifyRowHasNoParentRow(row); | 
|   }); | 
|   | 
|   it(`Step 4 - In Products list, right click and select "Create" menu. In dialog, set Parent to "${DataFoodBaseProductName.Lowfat}" and Name = ${productHasParent}. Click OK to create product with assigned parent. | 
|       Verify product created at under ${DataFoodBaseProductName.AllProducts} > ${DataFoodBaseProductName.FinishedGoods} > ${DataFoodBaseProductName.Lowfat}.`, async () => { | 
|     const [dlgProduct] = await listProduct.selectContextMenu(ListProductContextMenuItem.Create); | 
|     // Create product and define parent | 
|     await dlgProduct.updateDialogValues({Name: productHasParent, ParentProduct: DataFoodBaseProductName.Lowfat}); | 
|     await dlgProduct.clickOK(); | 
|   | 
|     await listProduct.verifyRowExists({Name: productHasParent}, DataFoodBaseProductParent.lowfatParent); | 
|   }); | 
| }); |