const {test, expect} =require('@playwright/test') import { LoginPage } from '../pages/LoginPage'; import { AppConfig } from '../pages/AppConfig'; test.beforeEach(async ({ page }) => { const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); }); //Merchant Verify that the selected currency symbol is displayed correctly(In Regression Suite) test('TC-AC-02: Select as Indonesian rupiah (Rp)', async ({page}) =>{ //Navigate to App Config Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//select[@id='oba_appconfig_select_currency']"); await expect(locator).toContainText('Indonesian rupiah (Rp)'); await page.waitForTimeout(1000); await page.close(); }); //(In Regression Suite) test('TC-AC-03: AppConfig button is working or not',async ({page})=>{ //Navigate to Login Page const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); await page.waitForTimeout(5000); //Navigate to App Config Oage const config = new AppConfig(page); await config.openAppConf(); await page.waitForTimeout(3000) //Assertions await expect(await page.locator(config.notificationSoundLoop)).toBeVisible(); }) /*-----------------------------Call to Action------------------------------------------------*/ //Call To Action for empty (In Regression Suite) test.skip('Action call for empty ',async ({page})=>{ const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '', 'City','Tamil Nadu'); await page.close(); }); //Call To Action contains numbers starting with 23 test('TC-AC-05: Action contains numbers starting with 23 ',async ({page})=>{ //Navigate to config Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '2355456737', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }); //Call To Action for Letters test('TC-AC-06: Call To Action for Letters',async ({page})=>{ //Navigate to Config Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', 'AFHGDGJNBVJ', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }); //Call to Action only 9 numbers test('TC-AC-07: Call to Action only 9 numbers' ,async({page})=>{ //Navigate to config page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '956456737', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }) //call to action using specail chars test('TC-AC-08: call to action using special characters', async({page})=>{ //Navigate to App Configuration Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '95#5456737', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }) //call to Action using Space test('TC-AC-09: space for action call',async({page})=>{ //Navigate to App Configuration Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', ' 965 526 ', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }); //Merchant add International Number test('TC-AC-10: International Number', async({page})=>{ //Navigate to App Configuration Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '456236216514', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }) test('TC-AC-11: Enter Alphabet', async({page})=>{ //Navigate to App Configuration Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', 'hjgfdjsfjk', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }) test('TC-AC-12: 11 digits', async({page})=>{ //Navigate to App Configuration Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '96548712396', 'City','Tamil Nadu'); //Assertions const locator = page.locator("//input[@id='oba_appconfig_call_to_action']"); await expect(locator).toBeFocused(); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }) test('TC-AC-16: 10 digits', async({page})=>{ //Navigate to App Configuration Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); //Assertions const PhoneNumber = await page.locator("//input[@id='oba_appconfig_call_to_action']").inputValue(); expect.soft(PhoneNumber).toContain(('9565456737').toString()); await page.close(); }) //Merchant add valid details test('TC-AC-17: Valid Number starts with 6,7,8,9',async({page})=>{ //Navigate to App Configuration Page const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '6565456737', 'City','Tamil Nadu'); //Assertions const actionNumber = await page.locator("//input[@id='oba_appconfig_call_to_action']").inputValue(); expect.soft(actionNumber).toContain(('6565456737').toString()); await page.close(); }) //Unable to assert /*-----------------------------------------------------------------------------------*/ //user select Country test.skip('select Country', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); const locator = page.locator("//option[@value='CITY']"); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }); //user select State test.skip('select State', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user select City test.skip('select City', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); const locator = page.locator(("//option[@value='CITY']").inputValue()); await expect(locator).toBeVisible(); await page.waitForTimeout(3000); await page.close(); }); //user select Pincode test.skip('select Pincode', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user select Landmark test.skip('select Landmark', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user select None test.skip('select None', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter the less than cart value test.skip('less than cart value ', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter the cart value equal to the value test.skip('cart value equal to the value', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter cart zero test.skip('enter cart zero ', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter the delivary charges as zero test.skip('enter the delivary charges as zero', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter the Delivary chrages as more than given. test.skip('Delivary chrages as more than given.', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter the less cart value and add delivary charg to test.skip('enter the less cart value and add delivary charg to', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter the less than cart value test.skip('enter the less than cart value ', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter the zero as cart value and delivary charge test.skip('enter the zero as cart value and delivary charge', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '0', '0', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter sound loop as 0 test.skip(' enter sound loop as 0', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','0','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter sound loop as 100 test.skip(' enter sound loop as 100', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','100','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter sound loop as 10 test.skip(' enter sound loop as 10', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','10','5', '400', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //user enter cart value to max 999999 test.skip('enter cart value to max 999999', async ({page}) =>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); const config = new AppConfig(page); await config.functionalityAppConfig('Indonesian rupiah (Rp)','7','5', '999999', '35', '9565456737', 'City','Tamil Nadu'); await page.waitForTimeout(3000); await page.close(); }); //test('complete AppConfig page to check API',async ({page,request})=>{ // const login = new LoginPage(page); // await login.gotoLoginPage(); // await login.loginWithCrtPassword(); // await page.waitForTimeout(5000); // const config = new AppConfig(page); // await config.functionalityAppConfig('Argentine peso ($)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu'); // await page.close(); // await page.waitForTimeout(5000); //await login.gotoLoginPage(); //await login.loginWithCrtPassword(); //await page.waitForTimeout(5000); //await config.openAppConf(); //const text =page.locator(config.currency).allInnerTexts(); //console.log(text); //expect.soft(config.currencyAPI).toContain("Argentine peso ($)"); //}) /* test('AppConfig 3',async ({page})=>{ const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); await page.waitForTimeout(5000); const config = new AppConfig(page); // await config.toggleButton(); await config.areaSelectionTest('State'); await page.waitForTimeout(3000) // await expect(await page.locator("//div[@class='card is_shop_open_card']//span[@class='flip-indecator']").isChecked()).toBeTruthy(); // await expect(await expect("//div[@class='card is_shop_open_card']//span[@class='flip-indecator']").toHaveText('ON')) // await config.functionalityAppConfig('UAE dirham (د.إ;)', '400', '35', '9565456737', 'State', 'Tamil Nadu'); // await page.waitForTimeout(3000) // await expect(page.getByLabel("ON")).toBeVisible(); }) test('APITesting for app config',async ({request,page})=>{ const response = await request.get('https://dev.orderbookings.com/api/config/919480707707?merchantCode=919480707707') console.log(await response.json()) const res = await response.json(); const login = new LoginPage(page); await login.gotoLoginPage(); await login.loginWithCrtPassword(); await page.waitForTimeout(5000); const config = new AppConfig(page); await config.openAppConf(); expect.soft(config.merchantCode).toContain(res.data.merchantCode); const textBoxValue=await page.locator(config.calltoactionAPI).inputValue(); expect.soft(textBoxValue).toContain(res.data.call_to_action); //const currencyValue=await page.locator(config.currencyAPI).inputValue(); // expect.soft(currencyValue).toContain(res.data.currency_code); const notificationLoop = await page.locator(config.notificationSoundLoopAPI).inputValue(); expect.soft(notificationLoop).toContain((res.data.notification_sound_loop).toString()); const cancellationTillResponse = await page.locator(config.cancellationTillAPI).inputValue(); expect.soft(cancellationTillResponse).toContain((res.data.cancellation_till).toString()); const minimumCartPrizeResponse = await page.locator(config.minimumCartPrizeAPI).inputValue(); expect.soft( minimumCartPrizeResponse).toContain((res.data.minimum_cart_price).toString()); const deliveryChargeResponse = await page.locator(config.deliveryChargeAPI).inputValue(); expect.soft( deliveryChargeResponse).toContain((res.data.delivery_charge).toString()); expect.soft(config.areaTypeAPI).toContain(res.data.area_type); // const toggleButton = await page.locator(config.onOffButton).isChecked(); // const isNowToggledOn = await toggleButton.getAttribute('OFF') === 'true'; // expect.soft(toggleButton).toContain(res.data.isShopOpen); // expect(toggleButton).toBe(true) //expect.soft(config.currencyAPI).toContain(res.data.currency_code); // expect.soft(coupon.couponCodeGuest).toContain(res.data[0].campaign_code); // expect.soft(coupon.forUsersGuest).toContain(res.data[0].for); }) */