Compare commits

...

8 Commits

Author SHA1 Message Date
  Micheal 89e8ac285d need to correct Commit 7 months ago
  Prashant Birajdar e42891bb9c reviewing the code 7 months ago
  Micheal 0cc194b743 Checked Commit 7 months ago
  Micheal 3459003c7b Updated Commit 8 months ago
  Micheal 92f49823e4 Updated Commit 8 months ago
  Micheal 9ccffcc2b8 Second commit 11 months ago
  Micheal c53965b4e8 Second commit 11 months ago
  Micheal 63e08c1d1f TestCases for login and register commited using POM. 11 months ago
33 changed files with 5165 additions and 1364 deletions
Unified View
  1. +72
    -0
      pages/AppConfig.js
  2. +168
    -0
      pages/CatlogPage.js
  3. +30
    -0
      pages/ContentPage.js
  4. +59
    -0
      pages/Couponpage.js
  5. +21
    -0
      pages/Feedback.js
  6. +52
    -0
      pages/LoginPage.js
  7. +382
    -0
      pages/NotificationPage.js
  8. +113
    -0
      pages/OrderPage.js
  9. +217
    -0
      pages/ProductPage.js
  10. +55
    -0
      pages/RegisterPage.js
  11. +19
    -0
      pages/RunnerListPage.js
  12. BIN
      pages/TestData/Biriyani.jpg
  13. BIN
      pages/TestData/Chicken Lollipop.jpg
  14. BIN
      pages/TestData/Tandori.jpg
  15. +64
    -0
      pages/UserPage.js
  16. +9
    -9
      playwright.config.js
  17. +530
    -0
      tests/APITest.spec.js
  18. +637
    -0
      tests/AppConfig.spec.js
  19. +87
    -0
      tests/CatlogPage.spec.js
  20. +58
    -0
      tests/ContentPage.spec.js
  21. +22
    -0
      tests/CouponPage.spec.js
  22. +49
    -0
      tests/Feedback.spec.js
  23. +0
    -23
      tests/HomePage.spec.js
  24. +180
    -0
      tests/LoginPage.spec.js
  25. +0
    -351
      tests/Merchant_AppConf.spec.js
  26. +0
    -70
      tests/Merchant_Order.spec.js
  27. +137
    -0
      tests/NotificationPage.spec.js
  28. +153
    -0
      tests/OrderPage.spec.js
  29. +1016
    -0
      tests/ProductPage.spec.js
  30. +0
    -911
      tests/Register.spec.js
  31. +948
    -0
      tests/RegisterPage.spec.js
  32. +23
    -0
      tests/RunnerList.spec.js
  33. +64
    -0
      tests/UserPage.spec.js

+ 72
- 0
pages/AppConfig.js View File

@ -0,0 +1,72 @@
exports.AppConfig=
class AppConfig {
constructor(page) {
this.page = page;
this.onOffButton="//div[@class='card is_shop_open_card']//span[@class='flip-indecator']";
this.appConfLink="//span[normalize-space()='AppConfig']";
this.appconfIsShopOpen="//label[normalize-space()='Is Shop Open ?']";
this.currency="//select[@id='oba_appconfig_select_currency']";
this.notificationSoundLoop="//input[@id='oba_notification_sound_loop']";
this.cancellationTill="//input[@id='oba_cancellation_till']";
this.minimumCartPrize="//label[@id='oba_appconfig_minimum_cart_price_label']//input[@id='oba_appconfig_minimum_cart_price']";
this.deliveryCharge="//label[@id='oba_appconfig_delivery_charge_label']//input[@id='oba_appconfig_minimum_cart_price']";
this.callToAction="//input[@id='oba_appconfig_call_to_action']";
this.areaSelection="//select[@id='oba_appconfig_city_selection_list']";
this.typingText="//input[@id='oba_appconfig_area_selection']";
this.selectedText="//select[@id='oba_appconfig_area_selection_list']";
this.movingTypingText="//button[normalize-space()='>>']";
this.replaceMovedText="//button[normalize-space()='<<']";
this.saveButton="//button[@id='oba_appconfig_save']";
this.merchantCode="//a[normalize-space()='919480707707']";
this.calltoactionAPI="#oba_appconfig_call_to_action";
this.currencyAPI="#oba_appconfig_select_currency";
this.notificationSoundLoopAPI="#oba_notification_sound_loop";
this.cancellationTillAPI="#oba_cancellation_till";
this.minimumCartPrizeAPI="//label[@id='oba_appconfig_minimum_cart_price_label']//input[@id='oba_appconfig_minimum_cart_price']";
this.deliveryChargeAPI="//label[@id='oba_appconfig_delivery_charge_label']//input[@id='oba_appconfig_minimum_cart_price']";
this.areaTypeAPI="#oba_appconfig_city_selection_list";
}
async openAppConf(){
await this.page.locator(this.appConfLink).click();
}
async selectCurrency(currency){
await this.page.locator(this.currency).selectOption({label:currency});
}
async callToAction(Number){
await this.page.locator(this.callToAction).fill(Number);
}
async areaSelectionTest(area){
await this.page.locator(this.appConfLink).click();
await this.page.locator(this.areaSelection).selectOption({label:area});
}
async functionalityAppConfig(currency, notificationLoop, cancellationtill, minValue, charge, Number, input, text){
await this.page.locator(this.appConfLink).click();
await this.page.locator(this.onOffButton).click();
await this.page.locator(this.currency).selectOption({label:currency});
await this.page.locator(this.notificationSoundLoop).fill(notificationLoop);
await this.page.locator(this.cancellationTill).fill(cancellationtill);
await this.page.locator(this.minimumCartPrize).fill(minValue);
await this.page.locator(this.deliveryCharge).fill(charge);
await this.page.locator(this.callToAction).fill(Number);
await this.page.locator(this.areaSelection).click();
await this.page.waitForTimeout(5000);
await this.page.locator(this.areaSelection).selectOption({label:input});
await this.page.locator(this.typingText).fill(text);
await this.page.waitForTimeout(5000);
await this.page.locator(this.movingTypingText).click();
await this.page.locator(this.saveButton).click();
}
async toggleButton()
{
await this.page.locator(this.appConfLink).click();
await this.page.locator(this.onOffButton).click();
}
}

+ 168
- 0
pages/CatlogPage.js View File

@ -0,0 +1,168 @@
exports.CatlogPage=
class CatlogPage {
constructor(page) {
this.page = page;
this.catlogButton="//span[normalize-space()='Catlog']";
this.catalogViewType="//select[@id='oba_bud_view']";
this.productsViewType="//select[@id='oba_product_view']";
this.categoryImage="#edit_image";
this.uploadImage="#oba_product_input_display";
this.saveButton="//button[@class='btn btn-primary btn-block']";
this.womenSelection="//a[@id='670767f7272db54e96e423e6_anchor']";
this.menSelection="//a[@id='670767e7272db54e96e423e5_anchor']";
this.kidsSelection="//a[@id='670767fd272db54e96e423e7_anchor']";
this.catlogPageValidate="//h3[normalize-space()='Category Tree']";
//API Testing
this.saveButtonAPI="//button[@class='btn btn-primary btn-block']";
this.childViewBUDS="";
this.womenNameAPI="//input[@id='oba_bud_name']";
//Mens API Test
this.mens = "//a[@id='670767e7272db54e96e423e5_anchor']";
this.catname ="//*[@id='oba_bud_name']";
this.merchantid ="header[class='app-header'] li:nth-child(3) a:nth-child(1)";
//cattlog and products xpaths
this.catname ="//*[@id='oba_bud_name']";
this.catlogViewType ="//select[@id='oba_bud_view']";
this.productViewtype ="//select[@id='oba_product_view']";
this.categoryImage ="//img[@id='oba_product_display_image']";
this.cateforyImageEdit ="//*[name()='path' and contains(@d,'M186.67-18')]";
this.postion ="//input[@id='oba_bud_position']";
this.islive ="//span[normalize-space()='Yes']";
this.productincluded ="//select[@id='oba_bud_final_products']";
//catlog creation xpaths
this.createcat ="//input[@id='oba_bud_child_name']";
this.women ="//a[@id='670767f7272db54e96e423e6_anchor']";
this.kids = "//a[@id='670767fd272db54e96e423e7_anchor']";
this.tree ="//div[@class='col-4']//div[@class='tile']";
}
async clickCatalogButton(){
await this.page.locator(this.catlogButton).click();
}
async clickCatalogViewType(catlogView){
await this.page.locator(this.catlogButton).click();
await this.page.locator(this.catalogViewType).selectOption({label:catlogView});
}
async clickProductViewType(catlogView, productView ){
await this.page.locator(this.catlogButton).click();
await this.page.locator(this.catalogViewType).selectOption({label:catlogView});
await this.page.locator(this.productsViewType).selectOption({label:productView});
}
async imageUpload(catlogView, productView ){
await this.page.locator(this.catlogButton).click();
await this.page.locator(this.catalogViewType).selectOption({label:catlogView});
await this.page.locator(this.productsViewType).selectOption({label:productView});
await this.page.locator(this.categoryImage).click();
await this.page.locator(this.uploadImage).setInputFiles("C:/Automate Testing/OBA Automation/Biriyani.jpg");
await this.page.locator(this.saveButton).click();
}
async imageUpload(catlogView, productView ){
await this.page.locator(this.catlogButton).click();
await this.page.locator(this.catalogViewType).selectOption({label:catlogView});
await this.page.locator(this.productsViewType).selectOption({label:productView});
await this.page.locator(this.categoryImage).click();
await this.page.locator(this.uploadImage).setInputFiles("C:/Automate Testing/OBA Automation/Biriyani.jpg");
await this.page.locator(this.saveButton).click();
}
async NavigateToMens(){
await this.page.locator(this.mens).waitFor({ state: 'visible' });
await this.page.locator(this.mens).click();
let catnames = await this.page.locator(this.catname).getAttribute('value');
let merchatcode = await this.page.locator(this.merchantid).textContent();
let CatType =await this.page.locator(this.catlogViewType);
await this.page.locator(this.catname).waitFor({ state: 'visible' });
await this.page.locator(this.catlogViewType).waitFor({ state: 'visible' });
await this.page.locator(this.productViewtype).waitFor({ state: 'visible' });
const selecteddcattype = await CatType.evaluate((element) => {
return element.options[element.selectedIndex].value;
});
let Prodtype =await this.page.locator(this.productViewtype);
const selecctedprodtype = await Prodtype.evaluate((element) => {
return element.options[element.selectedIndex].value;
});
let isActive = await this.page.locator(this.islive).isChecked();
return{catnames,selecteddcattype,selecctedprodtype,isActive,merchatcode}
}
async NavigateToWomens(){
await this.page.locator(this.women).waitFor({ state: 'visible' });
await this.page.locator(this.women).click();
let merchatcode = await this.page.locator(this.merchantid).textContent();
await this.page.locator(this.catname).waitFor({ state: 'visible' });
await this.page.locator(this.catlogViewType).waitFor({ state: 'visible' });
await this.page.locator(this.productViewtype).waitFor({ state: 'visible' });
let catnames = await this.page.locator(this.catname).getAttribute('value');
let CatType =await this.page.locator(this.catlogViewType);
const selecteddcattype = await CatType.evaluate((element) => {
return element.options[element.selectedIndex].value;
});
let Prodtype =await this.page.locator(this.productViewtype);
const selecctedprodtype = await Prodtype.evaluate((element) => {
return element.options[element.selectedIndex].value;
});
let isActive = await this.page.locator(this.islive).isChecked();
return{ catnames,selecteddcattype,selecctedprodtype,isActive,merchatcode}
}
async NavigateToKids(){
await this.page.locator(this.kids).waitFor({ state: 'visible' });
await this.page.locator(this.kids).click();
let merchatcode = await this.page.locator(this.merchantid).textContent();
await this.page.locator(this.catname).waitFor({ state: 'visible' });
await this.page.locator(this.catlogViewType).waitFor({ state: 'visible' });
await this.page.locator(this.productViewtype).waitFor({ state: 'visible' });
let catnames = await this.page.locator(this.catname).getAttribute('value');
let CatType =await this.page.locator(this.catlogViewType);
const selecteddcattype = await CatType.evaluate((element) => {
return element.options[element.selectedIndex].value;
});
let Prodtype =await this.page.locator(this.productViewtype);
const selecctedprodtype = await Prodtype.evaluate((element) => {
return element.options[element.selectedIndex].value;
});
let isActive = await this.page.locator(this.islive).isChecked();
return{ catnames,selecteddcattype,selecctedprodtype,isActive,merchatcode}
}
async womenAPISelection(){
await this.page.locator(this.catlogButton).click();
await this.page.locator(this.womenSelection).click();
await this.page.locator(this.saveButtonAPI).click();
}
}

+ 30
- 0
pages/ContentPage.js View File

@ -0,0 +1,30 @@
exports.ContentPage=
class ContentPage {
constructor(page) {
this.page = page;
this.contentButton="//span[normalize-space()='Content']";
this.contentToEdit="//select[@id='select_content_to_edit']";
this.contentPageValidate="//h1[normalize-space()='Content Editor']";
this.contentText="//div[@class='CodeMirror-scroll']";
this.contentSave="//button[normalize-space()='Save']";
}
async clickContentButton(){
await this.page.locator(this.contentButton).click();
}
async ContentToSave(contentToEditOption){
await this.page.locator(this.contentButton).click();
await this.page.locator(this.contentToEdit).selectOption({label:contentToEditOption});
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Everything goes good');
});
await this.page.locator(this.contentSave).click();
}
}

+ 59
- 0
pages/Couponpage.js View File

@ -0,0 +1,59 @@
exports.CouponPage=
class CouponPage {
constructor(page) {
this.page = page;
this.couponButton="//span[normalize-space()='Coupon']";
this.createCouponButton="//a[normalize-space()='Create coupon']";
this.viewCouponButton="//a[normalize-space()='View coupon']";
this.selectDiscountRule="//select[@id='oba_coupon_criteria']";
this.discountType="//select[@id='oba_coupon_discount_type']";
this.minCartAmount="//input[@id='coupon_dicsount_cart_amount']";
this.enterDiscountAmount="//input[@id='coupon_discount']";
this.calenderSelect="//input[@id='valid_from']";
this.validFromDate="//input[@id='valid_from']";
this.validFromMonth="//input[@id='valid_from']";
this.shortDescription="(//td[contains(text(),'50%OFF')])[2]";
this.descriptionCheck="//td[normalize-space()='Happy Pongal !']";
this.internalCouponValue="//td[normalize-space()='8SHF21213']";
this.couponCode="//td[normalize-space()='Pongal20']";
this.forUsers="(//td[contains(text(),'individual_users')])[3]";
this.shortDescriptionGuest="//td[normalize-space()='15% Offer']";
this.descriptionCheckGuest="//td[normalize-space()='Happy Christmass Makkalae']";
this.internalCouponValueGuest="//td[normalize-space()='dFkhI6142']";
this.couponCodeGuest="//td[normalize-space()='Christmas30']";
this.forUsersGuest="//tbody/tr[6]/td[5]";
}
async CalenderCheck(){
await this.page.locator(this.couponButton).click();
await this.page.locator(this.createCouponButton).click();
await this.page.locator(this.calenderSelect).click();
const year ="2024";
const month ="11";
const date="3";
await this.page.locator(this.validFromDate).fill('11/12/2024');
}
async viewCoupon(){
await this.page.locator(this.couponButton).click();
await this.page.locator(this.viewCouponButton).click();
}
}

+ 21
- 0
pages/Feedback.js View File

@ -0,0 +1,21 @@
exports.Feedback=
class Feedback {
constructor(page) {
this.page = page;
this.selectFeedbackType="//span[@class='flip-indecator']";
this.searchFeedback="//input[@id='oba_feedback_search']";
this.searchButton="//i[@class='fa fa-lg fa-fw fa-search']";
this.feedbackButton="//span[normalize-space()='Feedback']";
this.mailID="//td[normalize-space()='King@gmail.com']";
this.feedbackText="//td[normalize-space()='Trial Version']";
this.name="//td[normalize-space()='kalki']";
this.phone="//td[normalize-space()='919480111111']";
}
async clickFeedbackButton(){
await this.page.locator(this.feedbackButton).click();
}
}

+ 52
- 0
pages/LoginPage.js View File

@ -0,0 +1,52 @@
exports.LoginPage=
class LoginPage {
constructor(page) {
this.page = page;
this.usernameInput = "//input[@name='oba_login_emailid']";
this.passwordInput = "//input[@placeholder='Password']";
this.signinButton = "//button[normalize-space()='SIGN IN']";
this.forgotPassword = "//a[normalize-space()='Forgot Password ?']";
this.backToLogin="//a[normalize-space()='Back to Login']";
}
async gotoLoginPage(){
await this.page.goto('https://dev.orderbookings.com/');
}
async login(username, password){
await this.page.locator(this.usernameInput).fill(username);
await this.page.locator(this.passwordInput).fill(password);
await this.page.locator(this.signinButton).click();
await this.page.waitForTimeout(5000);
}
async loginWithCrtPassword(){
await this.page.fill(this.usernameInput,'xpcv2@rustyload.com');
await this.page.locator(this.passwordInput).fill('7777777777');
await this.page.locator(this.signinButton).click();
}
async OpenOBA(){
await this.page.goto('https://dev.orderbookings.com/');
await this.page.fill(this.usernameInput,'xpcv2@rustyload.com');
await this.page.locator(this.passwordInput).fill('7777777777');
await this.page.locator(this.signinButton).click();
}
async forgetPasswordLink(){
await this.page.locator(this.forgotPassword).click();
}
async backToLoginLink(){
await this.page.locator(this.backToLogin).click();
}
}

+ 382
- 0
pages/NotificationPage.js View File

@ -0,0 +1,382 @@
const { clear } = require("console");
exports.NotificationPage=
class NotificationPage {
constructor(page)
{
this.page = page;
this.NotifyButton = "//span[normalize-space()='Notification']"; //button
this.selecttype = "//select[@id='notification_target']";
this.Area ="//select[@id='oba_notification_user_type']";
this.title = "//input[@id='notificationtitle']";
this.content ="//textarea[@id='notificationtext']";
this.UserName = "//select[@id='oba_notification_user_fcm_token']";
//Notification Buttons:
this.Send = "//button[2]";
this.scheduleNotificationButton ="//main[@class='app-content']//button[1]";
//Calendar path's
this.calendar ="//input[@id='notification_date']";
this.Monthlist ="#table[class=' table-condensed'] th[class='datepicker-switch']";
this.NextButton ="//div[@class='datepicker-days']//th[@class='next'][normalize-space()='»']";
this.year ="(//th[@class='datepicker-switch'])[2]";
this.month ="(//th[@class='datepicker-switch'])[1]";
this.day ="//td[@class ='day']";
//Setting Time
this.hours ="//select[@id='notification_hours']";
this.mins ="//select[@id='notification_minutes']";
this.notificationButtonCheck="//span[normalize-space()='Notification']";
//File upload
this.chooseFile ="//input[@id='notificationimage']";
}
//Check notification page
async notificationPageCheck(){
await this.page.locator(this.notificationButtonCheck).click();
}
//Send notification based on the user name
async NotifyMeWithName(SelectType,TitleName,UserName,TextArea){
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.selecttype).selectOption(SelectType);
await this.page.locator(this.title).fill(TitleName);
await this.page.locator(this.UserName).selectOption(UserName);
await this.page.locator( this.content).fill(TextArea);
}
async wholeNotificationSetting(SelectType,TitleName,UserName,TextArea,year,month,day,filePath,Hour, Min,){
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.selecttype).selectOption(SelectType);
await this.page.locator(this.title).fill(TitleName);
await this.page.locator(this.UserName).selectOption(UserName);
await this.page.locator( this.content).fill(TextArea);
await this.page.locator(this.calendar).click();
// Wait for year selection
while (true)
{
const currentYear = await this.page.locator(this.year).textContent();
if (currentYear == year)
{
break;
}
await this.page.locator(this.NextButton).click();
}
// Wait for month selection
while(true)
{
const monthText = await this.page.locator(this.month).textContent();
if (monthText == month )
{
break;
}
await this.page.locator(this.NextButton).click();
}
// Select day
const dayList = await this.page.locator(this.day).all();
for (const dayItem of dayList)
{
try{
const dayText = await dayItem.textContent();
if(dayText == day)
{
await dayItem.click();
console.log('Year is Selected as :' + year);
console.log('Month is Selected as :' + month);
console.log('Day is Selected as :' + day);
}
} catch (error){
console.error('Error waiting for locator:', error);
}
}
try {
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.chooseFile).setInputFiles(filePath);
console.log('Attached is :' + filePath);
await this.page.waitForTimeout(1000);
}
catch (error) {
console.error('File upload failed:', error);
}
try {
await this.page.locator(this.hours).selectOption(Hour);
console.log('Selected Hour is'+Hour);
await this.page.locator(this.mins).selectOption(Min);
console.log('Selected Min is:' +Min);
} catch (error) {
console.error('Setting Time Failed', error);
}
//await this.page.locator(this.scheduleNotificationButton).click();
await this.page.locator(this.scheduleNotificationButton).waitFor({ state: 'visible' });
await this.page.locator(this.scheduleNotificationButton).click();
}
//to add file in the notification page.
async selectFile(filePath) {
try {
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.chooseFile).setInputFiles(filePath);
console.log('Attached is :' + filePath);
await this.page.waitForTimeout(1000); }
catch (error) {
console.error('File upload failed:', error);
}
}
//to set time for the send notification time.
async setTime(Hour, Min)
{
try {
await this.page.locator(this.hours).selectOption(Hour);
console.log('Selected Hour is'+Hour);
await this.page.locator(this.mins).selectOption(Min);
console.log('Selected Min is:' +Min);
} catch (error) {
console.error('Setting Time Failed', error);
}
}
//send notification based on the area
async NotifyMewithArea(SelectType,TitleName,Area,TextArea){
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.selecttype).selectOption(SelectType);
await this.page.locator(this.title).fill(TitleName);
await this.page.locator(this.Area).selectOption(Area);
await this.page.locator( this.content).fill(TextArea);
}
//this method is used to set a date as per req
async setDate(year,month,day)
{
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.calendar).click();
// Wait for year selection
while (true)
{
const currentYear = await this.page.locator(this.year).textContent();
if (currentYear == year)
{
break;
}
await this.page.locator(this.NextButton).click();
}
// Wait for month selection
while(true)
{
const monthText = await this.page.locator(this.month).textContent();
if (monthText == month )
{
break;
}
await this.page.locator(this.NextButton).click();
}
// Select day
const dayList = await this.page.locator(this.day).all();
for (const dayItem of dayList)
{
try{
const dayText = await dayItem.textContent();
if(dayText == day)
{
await dayItem.click();
console.log('Year is Selected as :' + year);
console.log('Month is Selected as :' + month);
console.log('Day is Selected as :' + day);
}
} catch (error){
console.error('Error waiting for locator:', error);
}
}
}
//to add file in the notification page.
async selectFile(filePath) {
try {
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.chooseFile).setInputFiles(filePath);
console.log('Attached is :' + filePath);
await this.page.waitForTimeout(1000); }
catch (error) {
console.error('File upload failed:', error);
}
}
//to set time for the send notification time.
async setTime(Hour, Min)
{
try {
await this.page.locator(this.hours).selectOption(Hour);
console.log('Selected Hour is'+Hour);
await this.page.locator(this.mins).selectOption(Min);
console.log('Selected Min is:' +Min);
} catch (error) {
console.error('Setting Time Failed', error);
}
}
//method for send notification
async sendNotification(){
await this.page.locator(this.Send).click();
}
//method to schedule notification
async scheduleNotification (){
await this.page.locator(this.scheduleNotificationButton).click();
}
//Complelety New for Testing
async wholeNotificationSettingNew(SelectType,TitleName,UserName,TextArea,year,month,day,filePath,Hour, Min,){
try {
// Click Notify Button
await this.page.locator(this.NotifyButton).click();
// Fill in Notification Details
await this.page.locator(this.selecttype).selectOption(SelectType);
await this.page.locator(this.title).fill(TitleName);
await this.page.locator(this.UserName).selectOption(UserName);
await this.page.locator(this.content).fill(TextArea);
// Select Date
await this.page.locator(this.calendar).click();
// Select Year
let yearAttempts = 0;
while (true) {
const currentYear = await this.page.locator(this.year).textContent();
if (currentYear == year) break;
await this.page.locator(this.NextButton).click();
yearAttempts++;
if (yearAttempts > 20) throw new Error('Year selection failed after multiple attempts.');
}
// Select Month
let monthAttempts = 0;
while (true) {
const monthText = await this.page.locator(this.month).textContent();
if (monthText == month) break;
await this.page.locator(this.NextButton).click();
monthAttempts++;
if (monthAttempts > 12) throw new Error('Month selection failed after multiple attempts.');
}
// Select Day
const dayList = await this.page.locator(this.day).all();
let dayFound = false;
for (const dayItem of dayList) {
const dayText = await dayItem.textContent();
if (dayText == day) {
await dayItem.click();
dayFound = true;
console.log(`Selected Date: ${day}-${month}-${year}`);
break;
}
}
if (!dayFound) throw new Error('Day selection failed.');
// Schedule Notification
await this.page.locator(this.scheduleNotificationButton).waitFor({ state: 'visible' });
await this.page.locator(this.scheduleNotificationButton).click();
console.log('Notification scheduled successfully!');
} catch (error) {
console.error('Error in wholeNotificationSetting:', error);
// Optional: Take a screenshot for debugging
await this.page.screenshot({ path: 'error-screenshot.png' });
throw error; // Re-throw to propagate error
}
}
//set file
async selectFile(filePath) {
try {
await this.page.locator(this.NotifyButton).click();
await this.page.locator(this.chooseFile).setInputFiles(filePath);
console.log('Attached file:', filePath);
} catch (error) {
console.error('File upload failed:', error);
}
}
//set time
async setTime(Hour, Min) {
try {
await this.page.locator(this.hours).selectOption(Hour);
console.log('Selected Hour:', Hour);
await this.page.locator(this.mins).selectOption(Min);
console.log('Selected Minute:', Min);
} catch (error) {
console.error('Setting Time Failed:', error);
}
}
}

+ 113
- 0
pages/OrderPage.js View File

@ -0,0 +1,113 @@
exports.OrderPage =
class OrderPage {
constructor(page) {
this.page = page;
this.ordersButton="//span[normalize-space()='Orders']";
this.ordersListButton="//a[normalize-space()='Order List']";
this.exportButton="//a[@class='treeview-item active']";
this.orderStatus="//select[@id='oba_edit_order_status_filter']";
this.usernameTextbox="//input[@id='oba_order_search']";
this.textBox="//input[@id='oba_order_search']";
this.filterButton="#oba_edit_order_filter";
this.orderName="//div[normalize-space()='Name : Shubya']";
this.orderEmail="//div[normalize-space()='Email : Shubya111@gmail.com']";
this.orderPhone="//div[normalize-space()='Phone : 919480111222']";
this.orderCost="//td[normalize-space()='200']";
this.orderQty="//tbody/tr[1]/td[6]";
this.orderAddressAPI="//div[normalize-space()='Address : 37, Thomas Mount, 627109']";
//orderidfor cancel
this.orderIdCancel="//div[normalize-space()='order_id : 670e240e14f563f755f3e2a4']";
//Order list XPaths to crooss check
this.orderdetails1 ="//table[@class='table table-sm']"; // order id,name,email,phone
this.OrderStatuses ="//tbody//tr//td[3]"; //order status
this.Ordercost ="//tbody//tr//td[2]"; //order cost
this.OrderItems ="//tbody//tr//td[5]"; //order items
this.OrderPrice ="//tbody//tr//td[7]"; //order price
this.OrderPaymentStatus ="tbody tr td:nth-child(10)"; //order payment status
this.orderlatestUpdate ="//tbody//tr//td[9]"; //order latest update
this.Order_qty = "//tbody//tr//td[6]"; //order qty
//OrderID Check xpath
this.userid="//div[normalize-space()='order_id : 670e249314f563f755f3e2a5']";
this.username="//div[normalize-space()='Name : DAYA']";
this.useremail="//div[normalize-space()='Email : Daya1234@gmail.com']";
this.userphone="//div[normalize-space()='Phone : 919480111111']";
this.userorderitems="//td[normalize-space()='T-Shirt']";
this.ordercost="//td[normalize-space()='604']";
this.orderqty="//td[normalize-space()='3']";
this.userorderstatus="//strong[normalize-space()='ORDER_STATUS_PENDING']";
//Order Rate Api
this.orderID="//div[normalize-space()='order_id : 67076b44272db54e96e423eb']";
this.orderRate="//tbody/tr[3]/td[8]";
}
//Click Order button
async clickOrdersButton(){
await this.page.locator(this.ordersButton).click();
}
//Click order list button
async clickOrdersListButton(){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
}
//Check order status
async orderStatusCheck(orderStatus){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
await this.page.locator(this.orderStatus).selectOption({label:orderStatus});
}
//Check filter button
async checkFilterButton(orderStatus){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
await this.page.locator(this.orderStatus).selectOption({label:orderStatus});
await this.page.locator(this.filterButton).click();
}
//Search text
async textBoxSearch(orderStatus, textBox){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
await this.page.locator(this.orderStatus).selectOption({label:orderStatus});
await this.page.locator(this.textBox).fill(textBox);
await this.page.locator(this.filterButton).click();
}
//search order
async searchOrder(orderStatus,username){
await this.page.locator(this.OrderStatus).selectOption(orderStatus); // add order status
await this.page.locator(this.usernameTextbox).fill(username); // add user name
await this.page.locator(this.filterButton).click(); //click filter button
const OrderId = await this.page.locator(this.orderdetails1).textContent(); // get order id
const OrderStatusis = await this.page.locator(this.OrderStatuses).textContent(); // get order status
const Order_cost = await this.page.locator(this.Ordercost).textContent(); // get order cost
const Order_items = await this.page.locator(this.OrderItems).textContent(); // get order items
const Order_price =await this.page.locator(this.OrderPrice ).textContent(); // get order price
const Order_payment =await this.page.locator(this.OrderPaymentStatus).textContent(); // get order payment status
const Order_latestupdate =await this.page.locator(this.orderlatestUpdate).textContent(); //get oder latest update
var Order_qty =await this.page.locator(this.Order_qty).textContent(); // get order quanity
return {OrderId,OrderStatusis,Order_cost,Order_items,Order_price,Order_payment,Order_latestupdate,Order_qty}
}
}

+ 217
- 0
pages/ProductPage.js View File

@ -0,0 +1,217 @@
exports.ProductPage=
class ProductPage {
constructor(page) {
this.page = page;
//Locators for Product Page
this.productsButton = "//span[normalize-space()='Products']";
this.productListButton= "//a[normalize-space()='Product List']";
this.addProductButton="//a[normalize-space()='Add Product']";
this.productName="//input[@id='oba_product_name']";
this.productPrize="//input[@id='oba_product_price']";
this.managedRadioButton="//input[@id='managed']";
this.unmanagedRadioButton="//input[@id='unmanaged']";
this.productQuantityValue="//input[@id='oba_product_quantity']";
this.orderLimit="//input[@id='oba_product_order_limit']";
this.taxIn="//input[@id='oba_product_tax']";
this.productAvailableCheck="//input[@name='isAvailable']";
this.isLiveCheck="//input[@name='isLive']";
this.shortDescription="//textarea[@id='oba_product_short_description']";
this.productDescription="//textarea[@name='editor-html-code']";
this.productImage="#edit_image";
this.uploadImage="#oba_product_input_display";
this.productlistSearchBox="//input[@id='oba_product_search']";
this.searchBox="//i[@class='fa fa-lg fa-fw fa-search']";
this.editButton="//i[@class='fa fa-lg fa-edit']";
this.edittButton="//a[@class='btn btn-primary']";
this.saveButton="//button[@class='btn btn-primary btn-block']";
this.deleteButton="//i[@class='fa fa-lg fa-trash']";
this.searchProduct="//input[@id='oba_product_search']";
this.searchButton="//button[@id='oba_product_search_btn']";
//API Validation
this.nameAPI="//td[normalize-space()='T-Shirt']";
this.priceAPI="//b[normalize-space()='200']";
this.quantityAPI="//td[normalize-space()='79971']";
this.availableAPI="//td[normalize-space()='true']";
this.orderlimitAPI="//td[normalize-space()='100']";
//Delete the Product from product list after assertion
this.editButtonAssertion="//tbody/tr[2]/td[7]/div[1]/a[1]";
this.deleteButtonAssertion="(//a[@class='btn btn-primary'])[2]";
this.deleteitAssertion="//button[@class='swal2-confirm swal2-styled']";
}
// Check Product button
async clickProductsButton(){
await this.page.locator(this.productsButton).click();
}
//Check ProductListButton
async clickProductlistButton(){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.productListButton).click();
}
//Check Add Product Button
async clickAddProductButton(){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
}
//Complete Add Product Functionality
async addProductFunctionality(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Yummy! Delicious Biriyani Taste the Beauty of Kanyakumari');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("./pages/TestData/Biriyani.jpg");
await this.page.locator(this.saveButton).click();
}
// Add Product functionality and delete it
async addProductFunctionalityDelete(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Yummy! Delicious Taste, LifteTime Settlement');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("./pages/TestData/Biriyani.jpg");
await this.page.locator(this.deleteButton).click();
}
async addProductFunctionalityForAll(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Yummy! Delicious Taste, LifteTime Settlement');
});
await this.page.locator(this.saveButton).click();
}
async addProductFunctionalityUnmanaged(productName, productPrize, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.unmanagedRadioButton).check();
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Crispy Chicken Tandori');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("./pages/TestData/Tandori.jpg");
await this.page.locator(this.saveButton).click();
}
async addProductFunctionality1(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Yummy! Delicious Taste, LifteTime Settlement');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("./pages/TestData/Chicken Lollipop.jpg");
await this.page.locator(this.saveButton).click();
}
//Working of Search Product Button
async searchProductName(productName){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.productListButton).click();
await this.page.locator(this.searchProduct).fill(productName);
await this.page.locator(this.searchButton).click();
}
//Working of Edit Button
async editProduct(){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.productListButton).click();
await this.page.locator(this.edittButton).click();
await this.page.locator(this.productAvailableCheck).click();
await this.page.locator(this.saveButton).click();
}
//delete product after storing
async deleteProduct(){
//Delete the Product from product list after assertion
await this.page.locator(this.editButtonAssertion).click();
await this.page.locator(this.deleteButtonAssertion).click();
await this.page.waitForTimeout(5000);
await this.page.locator(this.deleteitAssertion).click();
await this.page.close();
}
}

+ 55
- 0
pages/RegisterPage.js View File

@ -0,0 +1,55 @@
exports.RegisterPage = class RegisterPage {
constructor(page) {
this.page =page;
this.registerHereLink="//a[normalize-space()='Register Here ?']";
this.name="//input[@id='oba_signup_username']";
this.email="//input[@id='oba_signup_emailid']";
this.phoneCode ="#oba_signup_phone_code";
this.phoneNumber ="//input[@id='oba_signup_phone']";
this.address="//textarea[@id='oba_signup_address']";
this.companyName="//input[@id='oba_signup_company_name']";
this.businessType="//select[@id='oba_signup_business']";
this.city="//select[@id='oba_signup_city']";
this.password="//input[@id='oba_signup_password']";
this.signupButton=" //button[normalize-space()='SIGN UP']";
this.alreadysignupLink="//a[normalize-space()='Already Sign Up ?']";
}
//Navigate to Register Page
async gotoRegisterPage(){
await this.page.goto('https://dev.orderbookings.com/login/');
await this.page.locator(this.registerHereLink).click();
}
//Check Alreagy sign up working?
async alreadySignUpCheck(){
await this.page.goto('https://dev.orderbookings.com/login/');
await this.page.locator(this.registerHereLink).click();
await this.page.locator(this.alreadysignupLink).click();
}
//Complete functionality to register
async register(name, email, phoneNumber, address, password,phoneCode, companyName, businessType, city){
await this.page.locator(this.name).fill(name);
await this.page.locator(this.email).fill(email);
await this.page.locator(this.phoneCode).selectOption({label:phoneCode});
await this.page.locator(this.phoneNumber).fill(phoneNumber);
await this.page.locator(this.address).fill(address);
await this.page.locator(this.companyName).fill(companyName);
await this.page.locator(this.businessType).selectOption({label:businessType});
await this.page.locator(this.city).selectOption({label:city});
await this.page.locator(this.password).fill(password);
await this.page.locator(this.signupButton).click();
}
}

+ 19
- 0
pages/RunnerListPage.js View File

@ -0,0 +1,19 @@
exports.RunnerListPage=
class RunnerListPage {
constructor(page) {
this.page = page;
//LOcators for runner list page
this.runnerListButton="//span[normalize-space()='Runner list']";
this.userTypeFlip="//span[@class='flip-indecator']";
this.searchText="//input[@id='oba_user_search']";
this.searchButton="//button[@id='oba_user_search_btn']";
}
//Runnerlist Button working?
async clickrunnerListButton(){
await this.page.locator(this.runnerListButton).click();
}
}

BIN
pages/TestData/Biriyani.jpg View File

Before After
Width: 451  |  Height: 534  |  Size: 47 KiB

BIN
pages/TestData/Chicken Lollipop.jpg View File

Before After
Width: 480  |  Height: 270  |  Size: 38 KiB

BIN
pages/TestData/Tandori.jpg View File

Before After
Width: 480  |  Height: 386  |  Size: 49 KiB

+ 64
- 0
pages/UserPage.js View File

@ -0,0 +1,64 @@
exports.UserPage=
class UserPage {
constructor(page) {
this.page = page;
this.Users = "//span[normalize-space()='Users']";
this.activeUserButton = "//span[@class='flip-indecator']";
this.searchUser="//input[@id='oba_user_search']";
this.enableButton = "//button[@id='66eaa9656b2f4a3d52a42549']";
this.filterButton="//button[@id='oba_user_search_btn']";
//AssertionForAPI
this.userNameAPI="//td[normalize-space()='DAYA']";
this.userPhoneAPI="//td[normalize-space()='919480111111']";
this.userEmailAPI="//td[normalize-space()='Daya1234@gmail.com']";
this.merchantCode="//a[normalize-space()='919480707707']";
this.addressAPI="//td[normalize-space()='777777,India,chennai']";
//Assertion for address
this.addressList="//td[normalize-space()='35, Mount Main Road , Tamil Nadu, 123111']";
this.addressPatch="//td[normalize-space()='35, Mount Kitchen Main Road, Tamil Nadu, 123111']";
}
//UserPage Button Validation
async userPageButton(){
await this.page.locator(this.Users).click();
}
//Validate active user button Check
async activeUserButtonCheck(){
await this.page.locator(this.Users).click();
await this.page.locator(this.activeUserButton).click();
}
//Validate SearchUserValidation
async searchUserValidation(user){
await this.page.locator(this.Users).click();
await this.page.locator(this.searchUser).fill(user);
await this.page.locator(this.filterButton).click();
}
//Edit the active user Button
async activeUserButtonEdit(){
await this.page.locator(this.Users).click();
await this.page.locator(this.activeUserButton).click();
await this.page.locator(this.enableButton).click();
}
//Navigate to user page in API for user details
async userAPI(){
await this.page.locator(this.Users).click();
}
//Navigate to user page in API for address
async addressListAPI(){
await this.page.locator(this.Users).click();
}
}

+ 9
- 9
playwright.config.js View File

@ -13,7 +13,7 @@ const { defineConfig, devices } = require('@playwright/test');
module.exports = defineConfig({ module.exports = defineConfig({
testDir: './tests', testDir: './tests',
/* Run tests in files in parallel */ /* Run tests in files in parallel */
fullyParallel: true,
fullyParallel: false,
/* Fail the build on CI if you accidentally left test.only in the source code. */ /* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI, forbidOnly: !!process.env.CI,
/* Retry on CI only */ /* Retry on CI only */
@ -38,15 +38,15 @@ module.exports = defineConfig({
use: { ...devices['Desktop Chrome'] }, use: { ...devices['Desktop Chrome'] },
}, },
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] },
},
// {
// name: 'firefox',
// use: { ...devices['Desktop Firefox'] },
// },
{
name: 'webkit',
use: { ...devices['Desktop Safari'] },
},
//{
// name: 'webkit',
// use: { ...devices['Desktop Safari'] },
// },
/* Test against mobile viewports. */ /* Test against mobile viewports. */
// { // {


+ 530
- 0
tests/APITest.spec.js View File

@ -0,0 +1,530 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { OrderPage } from '../pages/OrderPage';
import { AppConfig } from '../pages/AppConfig';
import { CouponPage } from '../pages/Couponpage';
import { UserPage } from '../pages/UserPage';
import { CatlogPage } from '../pages/CatlogPage';
import { ProductPage } from '../pages/ProductPage';
//dont put commented code in repo
//its better to give discription for the steps you are following in comments
//add the ids of manual testcases in test.describe also suggest if the testcase is from regression suit or not and add tags respectively
const baseURL="https://dev.orderbookings.com/api";
// Validate Orders by UserID(In regression suite)
test('TC_API_01: Validate Get Orders API by User ID)',async ({request,page})=>{
// Get Request and store response
const response = await request.get(baseURL+'/order/syncOrders?user_id=670766e4272db54e96e423e0&phone=919480111222&lastupdatetime=0&merchantCode=919480707707&role=ROLE_TYPE_MERCHANT');
const res = await response.json();
// Navigate to login page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
// Navigate to order page and search
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_COMPLETE', 'Shubya');
//Assertions
expect.soft(order.orderName).toContain(res.data[0].ordered_by_name);
expect.soft(order.orderEmail).toContain(res.data[0].ordered_by_email);
expect.soft(order.orderPhone).toContain((res.data[0].ordered_by_address.phone).toString());
expect.soft(order.orderCost).toContain((res.data[0].order_cost).toString());
expect.soft(order.orderQty).toContain((res.data[0].ordered_items_qty[0]).toString());
})
//Validate App Config Page (In regression suite)
test('TC-API-11: complete AppConfig page to check API',async ({page,request})=>{
// Navigate to login page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
// Navigate to App Config Page
const config = new AppConfig(page);
await config.functionalityAppConfig('UAE dirham (د.إ;)','7','5', '400', '35', '9565456737', 'City','Tamil Nadu');
//get request and response
const response = await request.get(baseURL+'/config/919480707707?merchantCode=919480707707');
const res = await response.json();
//Assertions
expect.soft(config.merchantCode).toContain(res.data.merchantCode);
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());
})
//Validate API Testing to get coupon details as user(In Regression Suite)
test('TC_API_16: APITesting_Coupon Get Details as User',async ({request,page})=>{
//Get request and response
const response = await request.get(baseURL+'/available-coupon/670e14cf14f563f755f3e2a1/919480707707');
const res = await response.json();
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to coupon page
const coupon = new CouponPage(page);
await coupon.viewCoupon();
//Assertions
expect.soft(coupon.shortDescription).toContain(res.data[1].name);
expect.soft(coupon.descriptionCheck).toContain(res.data[1].description);
expect.soft(coupon.internalCouponValue).toContain(res.data[1].code);
expect.soft(coupon.couponCode).toContain(res.data[1].campaign_code);
})
//Validate Coupon details as Guest(In Regression Suite)
test('TC_API_16: APITesting_Coupon Get Details as Guest',async ({request,page})=>{
//get request and response
const response = await request.get(baseURL+'/available-coupon-guest/919480707707');
const res = await response.json();
//Navigate to login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to coupon page
const coupon = new CouponPage(page);
await coupon.viewCoupon();
//Assertions
expect.soft(coupon.shortDescriptionGuest).toContain(res.data[0].name);
expect.soft(coupon.descriptionCheckGuest).toContain(res.data[0].description);
expect.soft(coupon.internalCouponValueGuest).toContain(res.data[0].code);
expect.soft(coupon.couponCodeGuest).toContain(res.data[0].campaign_code);
})
//get order by order id and compare with web ui in the order list.(In Regression Suite)
test('TC_API_06: GET ORDER BY ORDER_ID',async ({request,page})=>{
//Get request and response
const response1 = await request.get(baseURL+'/order/getorder/670e249314f563f755f3e2a5');
const res = await response1.json();
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to order page
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_PENDING', 'DAYA');
//Assertions
expect.soft(order.userid).toContain(res.data.id); //id
expect.soft(order.username).toContain(res.data.ordered_by_name); //name
expect.soft(order.useremail).toContain(res.data.ordered_by_email); //email
expect.soft(order.userphone).toContain(res.data.ordered_by_phone); //phone
const element = await page.locator(order.userorderitems);
const text = await element.textContent();
expect(text).toContain(res.data.ordered_items[0]); //order items
expect.soft(order.orderqty).toContain((res.data.ordered_items_qty[0]).toString()); // order qty
await page.close();
})
//get order by order id and compare with web ui in the order list.(In Regression Suite)
test('TC_API_10: GET USER Details',async ({request,page})=>{
//Get request and response
const response2 = await request.get(baseURL+'/user/userreg?phone=919480111111&merchantCode=919480707707');
const res = await response2.json();
//Navigate to login page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to user page
const user = new UserPage(page);
await user.userAPI();
//Assertions
expect.soft(user.userNameAPI).toContain(res.data.name);
expect.soft(user.userPhoneAPI).toContain(res.data.phone);
expect.soft(user.userEmailAPI).toContain(res.data.email);
expect.soft(user.merchantCode).toContain(res.data.merchantCode);
expect.soft(user.addressAPI).toContain(res.data.area[0]);
expect.soft(user.addressAPI).toContain(res.data.area[1]);
expect.soft(user.addressAPI).toContain(res.data.area[2]);
await page.close();
})
//Validate Categories(In Regression Suite)
test('TC-API-12: Get Categories and products',async ({page,request})=>{
//Main Page Element locating
//Get request and response
const response = await request.get(baseURL+'/bud/919480707707');
const res = await response.json();
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to categories Page
const catlog = new CatlogPage(page);
await catlog.clickCatalogButton();
//Assertions
const obaBudView = page.locator('//select[@id="oba_bud_view"]');
const obaProductView = page.locator('//select[@id="oba_product_view"]');
const budValue = await obaBudView.inputValue();
const productValue = await obaProductView.inputValue();
expect.soft(budValue).toContain(res.data.buds[0].childview);
expect.soft(productValue).toContain(res.data.buds[0].product_childview);
// Mens Page
//Navigate to Login Page
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to Catlog Page
await catlog.clickCatalogButton();
let Category1 = await catlog.NavigateToMens();
//Initialize values
let Name1 = await Category1.catnames;
let catlogViewType1 = await Category1.selecteddcattype;
let Productviewtype1 = await Category1.selecctedprodtype;
let Catislive1 = await Category1.isActive;
let merchantid = await Category1.merchatcode;
let cat1 =res.data.buds[1].name;
let catlog1ViewType1 =res.data.buds[1].childview;
let cat1Productviewtype =res.data.buds[1].product_childview;
let cat1islive = res.data.buds[1].is_live;
let merchantcode =res.data.buds[1].merchantCode;
var cat2 = res.data.buds[2].name; //womens
var cat3 = res.data.buds[3].name; //kids
//Assertions
expect.soft(Name1).toEqual(cat1);
expect.soft(merchantid).toEqual(merchantcode)
expect.soft(catlogViewType1).toEqual(catlog1ViewType1);
expect.soft(Productviewtype1).toEqual(cat1Productviewtype);
expect.soft(Catislive1).toEqual(cat1islive);
// Womens Page
//Initialize values
let Category2 = await catlog.NavigateToWomens();
const Name2 = await Category2.catnames;
const catlogViewType2 = await Category2.selecteddcattype;
const Productviewtype2 = await Category2.selecctedprodtype;
const Catislive2 = Category2.isActive;
let cat2logViewType =res.data.buds[2].childview;
let cat2Productviewtype =res.data.buds[2].product_childview;
let cat2islive = res.data.buds[2].is_live;
let merchantcode2 =res.data.buds[2].merchantCode;
//Assertions
expect.soft(Name2).toEqual(cat2);
expect.soft(merchantid).toEqual(merchantcode2)
expect.soft(catlogViewType2).toEqual(cat2logViewType);
expect.soft(Productviewtype2).toEqual(cat2Productviewtype);
expect.soft(Catislive2).toEqual(cat2islive);
//this cat3 is kids
let Category3 = await catlog.NavigateToKids();
const Name3 = await Category3.catnames;
const catlogViewType3 = await Category3.selecteddcattype;
const Productviewtype3 = await Category3.selecctedprodtype;
const Catislive3 = Category3.isActive;
let cat3ogViewType =res.data.buds[3].childview;
let cat3Productviewtype =res.data.buds[3].product_childview;
let cat3islive = res.data.buds[3].is_live;
let merchantcode3 =res.data.buds[3].merchantCode;
//Assertions
expect.soft(Name3).toEqual(cat3);
expect.soft(merchantid).toEqual(merchantcode3);
expect.soft(catlogViewType3).toEqual(cat3ogViewType);
expect.soft(Productviewtype3).toEqual(cat3Productviewtype);
expect.soft(Catislive3).toEqual(cat3islive);
})
//Get products(In regression suite)
test('TC-API-12: Get Products',async ({request,page})=>{
//Get request and response
const response = await request.get(baseURL+'/bud/919480707707');
const res = await response.json();
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to product page
const product = new ProductPage(page);
await product.clickProductlistButton();
//Assertions
const productName = await page.textContent("//td[normalize-space()='T-Shirt']");
expect.soft(productName.trim()).toContain(res.data.products[0].name.trim());
expect.soft(product.priceAPI).toContain((res.data.products[0].price).toString());
expect.soft(product.quantityAPI).toContain((res.data.products[0].quantity).toString());
const productBoolean =
{
availableAPI: await page.textContent("//td[normalize-space()='true']")
};
expect.soft(productBoolean.availableAPI.trim()).toBe(String(res.data.products[0].available));
expect.soft(product.orderlimitAPI).toContain((res.data.products[0].order_limit).toString());
})
//Complete address list process(In regression suite)
test('TC_API-02,03,01,17: Complete Address API',async({page,request})=>{
let resourceId;
// 1. Post Response
const postResponse = await request.post(baseURL+'/user/addnewaddress',{
data: {
"addressLine1": "35",
"addressLine2": "Mount Main Road ",
"city": "Chennai",
"stateOrProvince": "Tamil Nadu",
"postalCode": "123111",
"phone": "919480111111",
"deliveryInstructions": null,
"isDefault": true,
"user_id": "670e14cf14f563f755f3e2a1",
"title": "test address",
"area": "Chennai"
},
});
//Navigate to login
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to user
const user = new UserPage(page);
await user.addressListAPI();
expect(postResponse.status()).toBe(200);
const postResponseBody = await postResponse.json();
// Validate response body
expect(postResponseBody.data).toHaveProperty('id'); // Assuming the API returns an `id` for the new resource
resourceId = postResponseBody.data.id;
//Assertion for post
expect.soft(user.addressList).toContain(postResponseBody.data.addressLine1);
expect.soft(user.addressList).toContain(postResponseBody.data.addressLine2);
expect.soft(user.addressList).toContain(postResponseBody.data.stateOrProvince);
expect.soft(user.addressList).toContain((postResponseBody.data.postalCode).toString());
//2. Get address list
const getResponse = await request.get(baseURL+'/user/addresslist?user_id=670e14cf14f563f755f3e2a1');
const getResponseBody = await getResponse.json();
//Navigate to Login Page
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to User Page
await user.addressListAPI();
//Assertions
expect.soft(user.addressList).toContain(getResponseBody.data[1].addressLine1);
expect.soft(user.addressList).toContain(getResponseBody.data[1].addressLine2);
expect.soft(user.addressList).toContain(getResponseBody.data[1].stateOrProvince);
expect.soft(user.addressList).toContain((getResponseBody.data[1].postalCode).toString());
//3.Patch Request
const patchResponse = await request.patch(baseURL+'/user/updateaddress',{
data: {
"addressLine1": "35",
"addressLine2": "Mount Kitchen Main Road",
"city": "",
"stateOrProvince": "Tamil Nadu",
"postalCode": "123111",
"phone": "91948011111",
"deliveryInstructions": null,
"isDefault": true,
"user_id": "670e14cf14f563f755f3e2a1",
"title": "test address",
"area": "Chennai",
"address_id": resourceId
},
});
const patchResponseBody = await patchResponse.json();
//Navigate to Login Page
await login.gotoLoginPage();
await login.loginWithCrtPassword();
//Navigate to user page
await user.addressListAPI();
//Assertions
expect.soft(user.addressPatch).toContain(patchResponseBody.data.addressLine1);
expect.soft(user.addressPatch).toContain(patchResponseBody.data.addressLine2);
expect.soft(user.addressPatch).toContain(patchResponseBody.data.stateOrProvince);
expect.soft(user.addressPatch).toContain((patchResponseBody.data.postalCode).toString());
// 4. Delete Request
const deleteResponse = await request.delete(baseURL+'/user/deleteaddress', {
data:{
"user_id": "670e14cf14f563f755f3e2a1",
"address_id": resourceId,
}
});
// Validate DELETE response
expect(deleteResponse.status()).toBe(200); // Typically, HTTP 200 or 204 is expected for successful deletions
const deleteResponseBody = await deleteResponse.text();
})
test('TC-API-03,17: Post and Delete Address API',async({request})=>{
// 1. Post Response
const postResponse = await request.post(baseURL+'/user/addnewaddress',{
data: {
"addressLine1": "52",
"addressLine2": "25",
"city": "",
"stateOrProvince": "",
"postalCode": "123123",
"phone": "919480111111",
"deliveryInstructions": null,
"isDefault": false,
"user_id": "670e14cf14f563f755f3e2a1",
"title": "test address",
"area": "Chennai"
},
});
expect(postResponse.status()).toBe(200);
const postResponseBody = await postResponse.json(); // Parse the response body
// Validate response body
expect(postResponseBody.data).toHaveProperty('id'); // Assuming the API returns an `id` for the new resource
const resourceId = postResponseBody.data.id;
// 2. Delete Request
const deleteResponse = await request.delete(baseURL+'/user/deleteaddress', {
data:{
"user_id": "670e14cf14f563f755f3e2a1",
"address_id": resourceId,
}
});
// Validate DELETE response
expect(deleteResponse.status()).toBe(200);
const deleteResponseBody = await deleteResponse.text();
})
/*--------------------------------------------------------------------------------------------------------------------*/
//Order Page cannot be automated, since the API datas are missing, as it is continued from place order, products are missing

+ 637
- 0
tests/AppConfig.spec.js View File

@ -0,0 +1,637 @@
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);
})
*/

+ 87
- 0
tests/CatlogPage.spec.js View File

@ -0,0 +1,87 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { CatlogPage } from '../pages/CatlogPage';
test.beforeEach(async ({ page }) => {
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
});
test('TC-CP-14: CatlogButton is working?',async ({page})=>{
//Navigate to catlog page
const catlog = new CatlogPage(page);
await catlog.clickCatalogButton();
await page.waitForTimeout(3000)
//Assertion
await expect(await page.locator(catlog.catlogPageValidate)).toBeVisible();
})
//Not able to assert
test.skip('Buds List is selected',async ({page})=>{
//Navigate to Catlog page
const catlog = new CatlogPage(page);
await catlog.imageUpload('BUDS_LIST', 'PRODUCTS_LEFT');
await page.waitForTimeout(3000)
})
test.skip('Buds sliding is selected',async ({page})=>{
//Navigate to Catlog page
const catlog = new CatlogPage(page);
await catlog.imageUpload('BUDS_SLIDING', 'PRODUCTS_LEFT');
await page.waitForTimeout(3000)
})
test.skip('Buds grid is selected',async ({page})=>{
//Navigate to Catlog page
const catlog = new CatlogPage(page);
await catlog.imageUpload('BUDS_GRID', 'PRODUCTS_LEFT');
await page.waitForTimeout(3000)
})
test.skip('product left is selected',async ({page})=>{
//Navigate to Catlog page
const catlog = new CatlogPage(page);
await catlog.imageUpload('BUDS_GRID', 'PRODUCTS_LEFT');
await page.waitForTimeout(3000)
})
test.skip('product ping pong is selected',async ({page})=>{
//Navigate to catlog page
const catlog = new CatlogPage(page);
await catlog.imageUpload('BUDS_GRID', 'PRODUCTS_PING_PONG');
await page.waitForTimeout(3000)
})
test.skip('product right is selected',async ({page})=>{
//Navigate to Catlog Page
const catlog = new CatlogPage(page);
await catlog.imageUpload('BUDS_GRID', 'PRODUCTS_RIGHT');
await page.waitForTimeout(3000)
})
test.skip('product grid is selected',async ({page})=>{
//Navigate to catlog page
const catlog = new CatlogPage(page);
await catlog.imageUpload('BUDS_GRID', 'PRODUCTS_GRID');
await page.waitForTimeout(3000)
})

+ 58
- 0
tests/ContentPage.spec.js View File

@ -0,0 +1,58 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { ContentPage } from '../pages/ContentPage';
test.beforeEach(async ({ page }) => {
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
});
test('TC-CON-01: Content page is opening?',async ({page})=>{
//Navigate to content page
const content = new ContentPage(page);
await content.clickContentButton();
//Assertion
await expect(await page.locator(content.contentPageValidate)).toBeVisible();
})
//unable to assert
test.skip('Content page is able to save in privacy policy',async ({page})=>{
//Navigate to content page
const content = new ContentPage(page);
await content.ContentToSave('Privacy Policy');
await page.waitForTimeout(3000);
})
test.skip('Content page is able to save in Terms & Conditions',async ({page})=>{
//Navigate to content page
const content = new ContentPage(page);
await content.ContentToSave('Terms & Conditions');
await page.waitForTimeout(3000);
})
test.skip('Content page is able to save in About Us',async ({page})=>{
//Navigate to content page
const content = new ContentPage(page);
await content.ContentToSave('About Us');
await page.waitForTimeout(3000);
})

+ 22
- 0
tests/CouponPage.spec.js View File

@ -0,0 +1,22 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { CouponPage } from '../pages/Couponpage';
test('TC-COU-01: Coupon Button working?',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to coupon page
const coupon = new CouponPage(page);
await coupon.viewCoupon();
//Assertion
await expect(await page.locator("//th[normalize-space()='Coupon Code']")).toBeVisible();
})

+ 49
- 0
tests/Feedback.spec.js View File

@ -0,0 +1,49 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { Feedback } from '../pages/Feedback';
test('TC-FP-01: Feedback page is opening?',async ({page})=>{
//NAVIGATE TO LOGIN PAGE
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//NAVIGATE TO FEEDBACK PAGE
const feedback = new Feedback(page);
await feedback.clickFeedbackButton();
//ASSERTION
await expect(await page.locator("//label[normalize-space()='Select feedback Type']")).toBeVisible();
})
test('TC-API-18: Submit Feedback_API',async ({request,page})=>{
//POST REQUEST AND STORE RESPONSE
const response = await request.post('https://dev.orderbookings.com/api/merchant/submitFeedback',
{
data:{
"feedback_created_ts": null,
"feedback_from_email": "bigil@gmail.com",
"feedback_text": "sdfasdf4fsdf",
"feedback_updated_ts": null,
"merchantCode": "919480707707",
"feedback_from_name": "Bigil",
"feedback_from_phone": "919480111111"
}
});
const res = await response.json();
//ASSERTION
expect(res.data).toBe(true);
await page.reload();
})

+ 0
- 23
tests/HomePage.spec.js View File

@ -1,23 +0,0 @@
const {test, expect} =require('@playwright/test')
test('Home Page',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
const pageTitle=await page.title();
console.log('Page title is:',pageTitle);
await expect(page).toHaveTitle('OBA');
const pageURL=page.url();
console.log('Page URL is:',pageURL);
await expect(page).toHaveURL('https://jaicrm1.orderbookings.com/login/');
await page.fill("//input[@name='oba_login_emailid']",'rabisundaram@gmail.com')
console.log('Mail is Entered');
await page.fill("//input[@placeholder='Password']",'#12345678A')
console.log('Password is Entered');
await page.click("//button[normalize-space()='SIGN IN']")
await page.waitForTimeout(5000);
console.log('Password is Logged in Successfully');
await page.close();
})

+ 180
- 0
tests/LoginPage.spec.js View File

@ -0,0 +1,180 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
//For Valid Details.
test('TC-LP-01: Login test with correct credentials',async ({page})=>{
//Navigate to login page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('xpcv2@rustyload.com','7777777777')
//Assertion
await expect(page).toHaveURL('https://dev.orderbookings.com/merchant/index/index'); //check the expected url is having same url
await page.close();
})
//@ Email without @ symbol
test('TC-LP-03: Login test Merchant enters email without @ symbol',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('rabisundaatramgmail.com','#12345678A')
//Assertion
await expect(await page.locator("//small[@class='text-danger text-center']")).toBeVisible(); //negative invalid email
await page.close();
})
// Email without domain
test('TC-Lp-04: Login test Merchant enters email without domain',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('rabisundaatram@.com','#12345678A')
//Assertion
await expect(await page.locator("//small[@class='text-danger text-center']")).toBeVisible(); //negative invalid email
await page.close();
})
// Email with excessive Length
test('TC-LP-05: Login test Merchant enters Email with excessive Length',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('rabisundaatramiuegkdsfyuydklashmnfbdkashnbv@gmail.com','#12345678A')
//Assertion
await expect(await page.locator("//small[@class='text-danger text-center']")).toBeVisible(); //negative invalid email
await page.close();
})
//Email with consecutive dots
test('TC-LP-07: Login test Merchant enters Email with consecutive dots',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('rabisundaatram@gmail..com','#12345678A')
//Assertion
await expect(await page.locator("//small[@class='text-danger text-center']")).toBeVisible(); //negative invalid email
await page.close();
})
//Empty Username
test('TC-LP-08: Login test with Empty Email',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('','#12345678A')
//Assertion
const locator = page.locator("//input[@name='oba_login_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
//Empty Password
test('TC-LP-09: Login test with no password',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('rabisundaram@gmail.com','')
//Assertion
const locator = page.locator("//input[@placeholder='Password']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
//Invalid Username
test('TC-LP-10: Login test with wrong Email',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('rabisundaatram@gmail.com','#12345678A')
//Assertion
await expect(await page.locator("//small[@class='text-danger text-center']")).toBeVisible(); //negative invalid email
await page.close();
})
//Invalid Password
test('TC-LP-11: Login test with wrong password',async ({page})=>{
//Navigate to login page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('rabisundaram@gmail.com','#123466678A')
//Assertion
await expect(await page.locator("//small[@class='text-danger text-center']")).toBeVisible(); //negative invalid email
await page.close();
})
//Forgot Password working or not?
test('TC-LP-12: ForgotPassword',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await page.waitForTimeout(3000)
await login.forgetPasswordLink()
await page.waitForTimeout(3000)
//Assertion
await expect(await page.locator("//button[normalize-space()='RESET']")).toBeVisible();
})
//Back To Login working?
test('TC-LP-13: BacktoLogin',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await page.waitForTimeout(3000)
await login.forgetPasswordLink()
await page.waitForTimeout(3000)
await login.backToLoginLink()
await page.waitForTimeout(3000)
//Assertion
await expect(await page.locator("//button[normalize-space()='SIGN IN']")).toBeVisible();
})
//
test('TC-LP-14: Invalid mail',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.login('midhaja','#12345678A')
await page.waitForTimeout(3000)
await page.locator("//div[@role='alert']").textContent()
//Assertion
await expect(await page.locator("//div[@role='alert']")).toBeVisible();
})

+ 0
- 351
tests/Merchant_AppConf.spec.js View File

@ -1,351 +0,0 @@
const {test, expect} =require('@playwright/test');
const { clear } = require('console');
test.describe('MerchantAppConf',()=>{
test('AppConfTest1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.fill("//input[@name='oba_login_emailid']",'rabisundaram@gmail.com')
await page.fill("//input[@placeholder='Password']",'#12345678A')
await page.click("//button[normalize-space()='SIGN IN']")
await page.click("//span[normalize-space()='AppConfig']")
await page.waitForTimeout(5000);
console.log('AppConf Button is working');
})
test('AppConfTest2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.fill("//input[@name='oba_login_emailid']",'rabisundaram@gmail.com')
await page.fill("//input[@placeholder='Password']",'#12345678A')
await page.click("//button[normalize-space()='SIGN IN']")
await page.click("//span[normalize-space()='AppConfig']")
await page.waitForTimeout(5000);
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'UAE dirham (د.إ;)'});
await page.waitForTimeout(5000);
console.log('UAE dirham is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Afghan afghani (Afs)'});
await page.waitForTimeout(5000);
console.log('Afghan afghani is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Albanian lek (L)'});
await page.waitForTimeout(5000);
console.log('Albanian lek is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Armenian dram (AMD)'});
await page.waitForTimeout(5000);
console.log('Armenian dram is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Netherlands Antillean gulden (NAƒ)'});
await page.waitForTimeout(5000);
console.log('Netherlands Antillean gulden is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Angolan kwanza (Kz)'});
await page.waitForTimeout(5000);
console.log('Angolan kwanza is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Argentine peso ($)'});
await page.waitForTimeout(5000);
console.log('Argentine peso is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Australian dollar ($)'});
await page.waitForTimeout(5000);
console.log('Australian dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Aruban florin (ƒ)'});
await page.waitForTimeout(5000);
console.log('Aruban florin is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Azerbaijani manat (AZN)'});
await page.waitForTimeout(5000);
console.log('Azerbaijani manat is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bosnia and Herzegovina konvertibilna marka (KM)'});
await page.waitForTimeout(5000);
console.log('Bosnia and Herzegovina konvertibilna marka is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Barbadian dollar (Bds$)'});
await page.waitForTimeout(5000);
console.log('Barbadian dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bangladeshi taka (৳)'});
await page.waitForTimeout(5000);
console.log('Bangladeshi taka is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bulgarian lev (BGN)'});
await page.waitForTimeout(5000);
console.log('Bulgarian lev is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bahraini dinar (.د.ب)'});
await page.waitForTimeout(5000);
console.log('Bahraini dinar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Burundi franc (FBu)'});
await page.waitForTimeout(5000);
console.log('Burundi franc is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bermudian dollar (BD$)'});
await page.waitForTimeout(5000);
console.log('Bermudian dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Brunei dollar (B$)'});
await page.waitForTimeout(5000);
console.log('Brunei dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bolivian boliviano (Bs.)'});
await page.waitForTimeout(5000);
console.log('Bolivian boliviano is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Brazilian real (R$)'});
await page.waitForTimeout(5000);
console.log('Brazilian real is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bahamian dollar (B$)'});
await page.waitForTimeout(5000);
console.log('Bahamian dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Bhutanese ngultrum (Nu.)'});
await page.waitForTimeout(5000);
console.log('Bhutanese ngultrum is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Botswana pula (P)'});
await page.waitForTimeout(5000);
console.log('Botswana pula is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Belarusian ruble (Br)'});
await page.waitForTimeout(5000);
console.log('Belarusian ruble is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Belize dollar (BZ$)'});
await page.waitForTimeout(5000);
console.log('Belize dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Canadian dollar ($)'});
await page.waitForTimeout(5000);
console.log('Canadian dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Congolese franc (F)'});
await page.waitForTimeout(5000);
console.log('Congolese franc is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Swiss franc (Fr.)'});
await page.waitForTimeout(5000);
console.log('Swiss franc is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Chilean peso ($)'});
await page.waitForTimeout(5000);
console.log('Chilean peso is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Chinese/Yuan renminbi (¥)'});
await page.waitForTimeout(5000);
console.log('Chinese/Yuan renminbi is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Colombian peso (Col$)'});
await page.waitForTimeout(5000);
console.log('Colombian peso is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Costa Rican colon (₡)'});
await page.waitForTimeout(5000);
console.log('Costa Rican colon is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Cuban peso ($)'});
await page.waitForTimeout(5000);
console.log('Cuban peso is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Cape Verdean escudo (Esc)'});
await page.waitForTimeout(5000);
console.log('Cape Verdean escudo is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Czech koruna (Kč)'});
await page.waitForTimeout(5000);
console.log('Czech koruna is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Djiboutian franc (Fdj)'});
await page.waitForTimeout(5000);
console.log('Djiboutian franc is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Danish krone (Kr)'});
await page.waitForTimeout(5000);
console.log('Danish krone is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Dominican peso (RD$)'});
await page.waitForTimeout(5000);
console.log('Dominican peso is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Algerian dinar (د.ج)'});
await page.waitForTimeout(5000);
console.log('Algerian dinar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Estonian kroon (KR)'});
await page.waitForTimeout(5000);
console.log('Estonian kroon is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Egyptian pound (£)'});
await page.waitForTimeout(5000);
console.log('Egyptian pound is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Eritrean nakfa (Nfa)'});
await page.waitForTimeout(5000);
console.log('Eritrean nakfa is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Ethiopian birr (Br)'});
await page.waitForTimeout(5000);
console.log('Ethiopian birr is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'European Euro (€)'});
await page.waitForTimeout(5000);
console.log('European Euro is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Fijian dollar (FJ$)'});
await page.waitForTimeout(5000);
console.log('Fijian dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Falkland Islands pound (£)'});
await page.waitForTimeout(5000);
console.log('Falkland Islands pound (£) is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'British pound (£)'});
await page.waitForTimeout(5000);
console.log('British pound is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Georgian lari (GEL)'});
await page.waitForTimeout(5000);
console.log('Georgian lari is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Ghanaian cedi (GH₵)'});
await page.waitForTimeout(5000);
console.log('Ghanaian cedi is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Gibraltar pound (£)'});
await page.waitForTimeout(5000);
console.log('Gibraltar pound is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Gambian dalasi (D)'});
await page.waitForTimeout(5000);
console.log('Gambian dalasi is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Guinean franc (FG)'});
await page.waitForTimeout(5000);
console.log('Guinean franc is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Central African CFA franc (CFA)'});
await page.waitForTimeout(5000);
console.log('Central African CFA franc is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Guatemalan quetzal (Q)'});
await page.waitForTimeout(5000);
console.log('Guatemalan quetzal is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Guyanese dollar (GY$)'});
await page.waitForTimeout(5000);
console.log('Guyanese dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Hong Kong dollar (HK$)'});
await page.waitForTimeout(5000);
console.log('Hong Kong dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Honduran lempira (L)'});
await page.waitForTimeout(5000);
console.log('Honduran lempira is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Croatian kuna (kn)'});
await page.waitForTimeout(5000);
console.log('Croatian kuna is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Haitian gourde (G)'});
await page.waitForTimeout(5000);
console.log('Haitian gourde is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Hungarian forint (Ft)'});
await page.waitForTimeout(5000);
console.log('Hungarian forint is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Indonesian rupiah (Rp)'});
await page.waitForTimeout(5000);
console.log('Indonesian rupiah is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Israeli new sheqel (₪)'});
await page.waitForTimeout(5000);
console.log('Israeli new sheqel is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Indian rupee (₹)'});
await page.waitForTimeout(5000);
console.log('Indian rupee is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Iraqi dinar (د.ع)'});
await page.waitForTimeout(5000);
console.log('Iraqi dinar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Iranian rial (IRR)'});
await page.waitForTimeout(5000);
console.log('Iranian rial is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Icelandic króna (kr)'});
await page.waitForTimeout(5000);
console.log('Icelandic króna is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Jamaican dollar (J$)'});
await page.waitForTimeout(5000);
console.log('Jamaican dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Jordanian dinar (JOD)'});
await page.waitForTimeout(5000);
console.log('Jordanian dinar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Japanese yen (¥)'});
await page.waitForTimeout(5000);
console.log('Japanese yen is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Kenyan shilling (KSh)'});
await page.waitForTimeout(5000);
console.log('Kenyan shilling is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Kyrgyzstani som (сом)'});
await page.waitForTimeout(5000);
console.log('Kyrgyzstani som is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Cambodian riel (៛)'});
await page.waitForTimeout(5000);
console.log('Cambodian riel is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Comorian franc (KMF)'});
await page.waitForTimeout(5000);
console.log('Comorian franc is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'North Korean won (W)'});
await page.waitForTimeout(5000);
console.log('North Korean won is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'South Korean won (W)'});
await page.waitForTimeout(5000);
console.log('South Korean won is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Kuwaiti dinar (KWD)'});
await page.waitForTimeout(5000);
console.log('Kuwaiti dinar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Cayman Islands dollar (KY$)'});
await page.waitForTimeout(5000);
console.log('Cayman Islands dollar is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Kazakhstani tenge (T)'});
await page.waitForTimeout(5000);
console.log('Kazakhstani tenge is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Lao kip (KN)'});
await page.waitForTimeout(5000);
console.log('Lao kip is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Lebanese lira (£)'});
await page.waitForTimeout(5000);
console.log('Lebanese lira is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Sri Lankan rupee (Rs)'});
await page.waitForTimeout(5000);
console.log('Sri Lankan rupee is selected');
await page.locator(" //select[@id='oba_appconfig_select_currency']").selectOption({label:'Liberian dollar (L$)'});
await page.waitForTimeout(5000);
console.log('Liberian dollar is selected');
})
})

+ 0
- 70
tests/Merchant_Order.spec.js View File

@ -1,70 +0,0 @@
const {test, expect} =require('@playwright/test');
const { clear } = require('console');
test.describe('MerchantOrder',()=>{
test('OrderTest1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.fill("//input[@name='oba_login_emailid']",'rabisundaram@gmail.com')
await page.fill("//input[@placeholder='Password']",'#12345678A')
await page.click("//button[normalize-space()='SIGN IN']")
await page.click("//li[@id='app-menu-list-orders']//a[@class='app-menu__item']")
// await page.click("//li[@id='app-menu-list-orders']//a[@class='app-menu__item']")
const orderlistlink = await page.locator("//a[normalize-space()='Order List']")
await expect(orderlistlink).toBeVisible();
console.log('Order Button is working');
// await page.close();
})
test('OrderTest2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.fill("//input[@name='oba_login_emailid']",'rabisundaram@gmail.com')
await page.fill("//input[@placeholder='Password']",'#12345678A')
await page.click("//button[normalize-space()='SIGN IN']")
await page.click("//li[@id='app-menu-list-orders']//a[@class='app-menu__item']")
await page.click("//a[normalize-space()='Order List']")
console.log('OrderList Button is working');
// await page.click("//select[@id='oba_edit_order_status_filter']")
await page.close();
})
test('OrderTest3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.fill("//input[@name='oba_login_emailid']",'rabisundaram@gmail.com')
await page.fill("//input[@placeholder='Password']",'#12345678A')
await page.click("//button[normalize-space()='SIGN IN']")
await page.click("//li[@id='app-menu-list-orders']//a[@class='app-menu__item']")
await page.click("//a[normalize-space()='Order List']")
await page.click("//select[@id='oba_edit_order_status_filter']")
console.log('order status dropdown is working')
await page.close();
})
test('OrderTest4',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.fill("//input[@name='oba_login_emailid']",'rabisundaram@gmail.com')
await page.fill("//input[@placeholder='Password']",'#12345678A')
await page.click("//button[normalize-space()='SIGN IN']")
await page.click("//li[@id='app-menu-list-orders']//a[@class='app-menu__item']")
await page.click("//a[normalize-space()='Order List']")
await page.locator("//select[@id='oba_edit_order_status_filter']").selectOption({label:'ORDER_STATUS_DECLINED'});
await page.waitForTimeout(5000);
console.log('Order status declined is selected');
await page.locator("//select[@id='oba_edit_order_status_filter']").selectOption({label:'ORDER_STATUS_REQUESTED'});
await page.waitForTimeout(5000);
console.log('Order status requested is selected');
await page.locator("//select[@id='oba_edit_order_status_filter']").selectOption({label:'ORDER_STATUS_PENDING'});
await page.waitForTimeout(5000);
console.log('Order status Pending is selected');
await page.locator("//select[@id='oba_edit_order_status_filter']").selectOption({label:'ORDER_STATUS_CANCELLED'});
await page.waitForTimeout(5000);
console.log('Order status cancelled is selected');
await page.locator("//select[@id='oba_edit_order_status_filter']").selectOption({label:'ORDER_STATUS_COMPLETE'});
console.log('Order status complete is selected');
await page.close();
})
})

+ 137
- 0
tests/NotificationPage.spec.js View File

@ -0,0 +1,137 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { NotificationPage } from '../pages/NotificationPage';
test('TC-NP-01: Notification Button is working?',async ({page}) =>{
//login Function
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(500);
//Notify Function using Send Notification by Name
const notified = new NotificationPage(page);
await notified.notificationPageCheck();
await expect(await page.locator(notified.selecttype)).toBeVisible();
await page.close();
})
test.skip('Working_NotifybyName', async ({page}) =>{
//login Function
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(500);
//Notify Function using Send Notification by Name
const Notified = new NotificationPage(page);
await Notified.wholeNotificationSettingNew('Send notification by name','Shubya','Shubya','Successfully Added Notification by Name','2026','April 2026','2','')
await page.reload();
await expect(await page.locator("//button[normalize-space()='OK']")).toBeVisible();
await page.close();
})
test.skip('Duplicate NotifybyName', async ({page}) =>{
//login Function
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(500);
//Notify Function using Send Notification by Name
const Notified = new NotificationPage(page);
await Notified.NotifyMeWithName('Send notification by name','Shubya','Shubya','Successfully Added Notification by Name');
await Notified.setDate('2026','April 2026','2');
//await Notified.setTime('8','45');
await Notified.selectFile('C:/Automate Testing/OBA Automation/Biriyani.jpg');
await Notified.sendNotification();
// await page.waitForTimeout(1000);
await page.close();
})
test.skip('NotifybyArea', async ({page}) =>{
//login Function
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(1000);
//Notify Function using Send Notification by Area
const Notified = new Notify(page);
await Notified.NotifyMewithArea('Send notification by Area','Shubya','586101','Successfully Added Notification by area');
await Notified.setDate('2026','April 2026','2');
await Notified.selectFile('C:/PlayWright/files/SS.jpeg');
await Notified.sendNotification();
await page.close();
})
test.skip('check time is set',async({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(1000);
const Notified = new Notify(page);
await Notified.NotifyMewithArea('Send notification by Area','Shubya','ABCDF','Successfully Added Notification by area');
await page.waitForTimeout(100);
await Notified.setTime('8','45');
await page.waitForTimeout(100);
await page.close();
})
test.skip('check Date Set',async({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(1000);
const Notified = new Notify(page);
await Notified.setDate('2025','March 2025','27');
await page.close();
})
test.skip('check Send Notification',async({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(1000);
const dash = new DashBoard(page);
await dash.gotoNotification()
const Notified = new Notify(page);
await Notified.sendNotification();
await page.close();
})
test.skip('check file selected',async({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(1000);
const Notified = new Notify(page);
await Notified.selectFile('C:/PlayWright/files/SS.jpeg');
await Notified.sendNotification();
await page.close();
})

+ 153
- 0
tests/OrderPage.spec.js View File

@ -0,0 +1,153 @@
const {test, expect} =require('@playwright/test')
import { clear } from 'console';
import { LoginPage } from '../pages/LoginPage';
import { OrderPage } from '../pages/OrderPage';
test('TC-OP-01: Order Button',async ({page})=>{
//Navigate to login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to order page
const order = new OrderPage(page);
await order.clickOrdersButton();
await page.waitForTimeout(5000);
//Assertion
await expect(await page.locator("//a[normalize-space()='Order List']")).toBeVisible();
})
test('Tc-OP-02: Order List Button',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to Order Page
const order = new OrderPage(page);
await order.clickOrdersListButton();
//Assertion
await expect(await page.locator("//select[@id='oba_edit_order_status_filter']")).toBeVisible();
})
test('TC-OP-03: Order Status Dropdown Count',async ({page})=>{
//Navigate to login page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to order page
const order = new OrderPage(page);
await order.clickOrdersListButton();
await page.waitForTimeout(5000);
//Assertion
const options = await page.locator('#oba_edit_order_status_filter option')
await expect(options).toHaveCount(5);
})
test.skip('Order status dropdown menu',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
const order = new OrderPage(page);
await order.clickOrdersListButton();
const value= await page.locator("//select[@id='oba_edit_order_status_filter']").textContent()
console.log(value);
})
test.skip('Order status selected',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
const order = new OrderPage(page);
await order.orderStatusCheck('ORDER_STATUS_REQUESTED');
})
test.skip('Order declined',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_DECLINED', 'Tomato Rice and Chicken Biriyani');
})
test.skip('Order requested',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_REQUESTED', 'Tomato Rice and Chicken Biriyani');
})
test.skip('Order pending',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_PENDING', 'Tomato Rice and Chicken Biriyani');
})
test.skip('Order cancelled',async ({page})=>{
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
await order.textBoxSearch('ORDER_STATUS_CANCELLED', 'Tomato Rice and Chicken Biriyani');
})
test('TC-OP-30,31,32,33,34: Order by ID API',async ({request,page})=>{
const response = await request.get('https://dev.orderbookings.com/api/order/syncOrders?user_id=670766e4272db54e96e423e0&phone=919480111222&lastupdatetime=0&merchantCode=919480707707&role=ROLE_TYPE_MERCHANT')
const res = await response.json();
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
const order = new OrderPage(page);
const result = await order.textBoxSearch('ORDER_STATUS_COMPLETE', 'Shubya');
expect.soft(order.orderName).toContain(res.data[0].ordered_by_name);
expect.soft(order.orderEmail).toContain(res.data[0].ordered_by_email);
expect.soft(order.orderPhone).toContain((res.data[0].ordered_by_address.phone).toString());
expect.soft(order.orderCost).toContain((res.data[0].order_cost).toString());
expect.soft(order.orderQty).toContain((res.data[0].ordered_items_qty[0]).toString());
})

+ 1016
- 0
tests/ProductPage.spec.js
File diff suppressed because it is too large
View File


+ 0
- 911
tests/Register.spec.js View File

@ -1,911 +0,0 @@
const {test, expect} =require('@playwright/test')
const { clear } = require('console');
test.describe('GroupWithCorrectDetails',()=>{
test('RegisterTest1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
console.log('Register button is working');
await page.close();
})
test('RegisterTest2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
console.log('Name is Entered');
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
console.log('Email is Entered');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
console.log('Country Code is Selected');
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
console.log('Phone Number is Entered');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
console.log('Address is Entered');
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
console.log('Company Name is Entered');
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
console.log('BusinessType is selected')
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
console.log('City is selected')
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
console.log('Password is Entered');
await page.click(" //button[normalize-space()='SIGN UP']")
//await page.waitForTimeout(5000);
console.log('Successfully Registered');
console.log('Email is registered successfully and mail is sent');
await page.close();
})
})
test.describe('TC_Name',()=>{
test('Name1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'')
console.log('Name is empty it should get error');
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
//PopUP
// const validationMessage = await page.locator('.validation-message'); // Adjust selector as needed
// await validationMessage.waitFor({ state: 'visible' });
// Assert the validation message content
// const messageText = await validationMessage.textContent();
// expect(messageText).toBe('Name is required');
})
test('Name2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'52658954623')
console.log('Number is entered it should get error');
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
//PopUP
})
test('Name3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'qwertyuioplkjhgfdsazxcvbnmmnbvcxzasdfghjklpoiuytre')
console.log('50 Characters is entered it should get error');
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
//PopUP
})
test('Name4',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'@#$_+(&%$#%$')
console.log('Special Characters is entered it should get error');
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
//PopUP
})
test('Name5',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'@#$_+(&%$#%$')
console.log('Special Characters is entered it should get error');
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
//PopUP
})
test('Name6',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'@#$_+(&%$#%$')
console.log('Special Characters is entered it should get error');
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
//PopUP
})
})
test.describe('TC_EMail',()=>{
test('Email1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'')
console.log('Email is empty, it should get error');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaramgmail.com')
console.log('Email without @ symbol, it should get error');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'asfg@asfg.com')
console.log('Email with invalid domain, it should get error');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email4',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram.gmail@com')
console.log('Invalid Email format, it should get error');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email5',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@#$#%5.com')
console.log('Email with invalid characters, it should get error');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email6',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundafsdkjhkmnfsdjkhfsdkjhnmnikjnkdram')
console.log('Email with Excessive length, it should get error');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email7',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail...com')
console.log('Email with continous dot, it should get error');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email8',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'example@gmail.example.com')
console.log('user enters email with subdomain is accepted');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email9',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'akshay.vasav@gmail.com')
console.log('user enters special character in local part is accepted');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Email10',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'AKSHAY@gmail.com')
console.log('user enters email with Uppercase charecters is accepted');
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
})
test.describe('TC_Phone',()=>{
test('Phone1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'ABCDERFGTY')
console.log('Characters in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'986787$%^8')
console.log('Special Characters in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'ABCDERFGTY')
console.log('Characters in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone4',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'25416325147')
console.log('11 Numbers in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone5',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'254163251')
console.log('9 Numbers in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone6',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",' 254163251')
console.log('Space in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone7',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'')
console.log('Blank Space in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone8',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'96678567367872')
console.log('International Numbers in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Phone9',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'25416325147')
console.log('11 Numbers in Phone, it should get error');
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
})
test.describe('TC_Phone',()=>{
test('Address1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'')
console.log('Empty address, it should get error');
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Address2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'hriweahkjfnriufhkjfmndsbajhadgsifhkdbjkf,uhgjhdfvuyjmnhbfuj')
console.log('Excessive length address, it should get error');
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Address3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'$%^#&#&* main road pabnagdui')
console.log('Excessive Special characters, it should get error');
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
})
test.describe('TC_Company Name',()=>{
test('CompanyName1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'')
console.log('Empty Company Name, it should get error');
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('CompanyName2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic12345')
console.log('Numbers with Company Name, it should get error');
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('CompanyName3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'jhvfraufgjkbafkjhkjbfiabhfkjbfailshfrkbikfuakjbnfbhasgkifjab')
console.log('1000 Alphabets, it should get error');
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('CompanyName4',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'mobigic#$%tY&')
console.log('Company Name with special characters and symbols, it should get error');
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
})
test.describe('TC_BusinessType',()=>{
test('Business1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'SweetMart'});
await page.waitForTimeout(5000);
console.log('BusinessType was selected');
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Business2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'FruitMart'});
await page.waitForTimeout(5000);
console.log('BusinessType was selected');
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Business3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'BisleriSupply'});
await page.waitForTimeout(5000);
console.log('BusinessType was selected');
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Business4',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'Others'});
await page.waitForTimeout(5000);
console.log('BusinessType was selected');
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
})
test.describe('TC_City',()=>{
test('City1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'BisleriSupply'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
console.log('City was selected');
await page.fill("//input[@id='oba_signup_password']",'#12345678A')
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
})
test.describe('TC_Password',()=>{
test('Password1',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'BisleriSupply'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'#1234')
console.log('Password is too short, it will show error');
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Password2',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'BisleriSupply'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'12361234')
console.log('Password missing required characters, it will show error');
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Password3',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'BisleriSupply'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'##$%%^^%%^')
console.log('Password with only special characters, it will show error');
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
test('Password4',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Register Here ?']")
await page.fill("//input[@id='oba_signup_username']",'Micheal Rabi')
await page.fill("//input[@id='oba_signup_emailid']",'rabisundaram@gmail.com')
await page.locator("#oba_signup_phone_code").selectOption({label:'India(91)'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_phone']",'9600520046')
await page.fill("//textarea[@id='oba_signup_address']",'Panagudi, Tirunelveli TamilNadu')
await page.fill("//input[@id='oba_signup_company_name']",'Mobigic Technologies')
await page.locator("//select[@id='oba_signup_business']").selectOption({label:'BisleriSupply'});
await page.waitForTimeout(5000);
await page.locator("//select[@id='oba_signup_city']").selectOption({label:'Madurai'});
await page.waitForTimeout(5000);
await page.fill("//input[@id='oba_signup_password']",'##$ wwer%%^^%%^')
console.log('Password with space, it will show error');
await page.click(" //button[normalize-space()='SIGN UP']")
await page.waitForTimeout(5000);
})
})
test.describe('TC_ForgotPassword',()=>{
test('ForgotPassword',async ({page})=>{
await page.goto('https://jaicrm1.orderbookings.com/login/');
await page.click("//a[normalize-space()='Forgot Password ?']")
console.log('Forgot Password button is working');
await page.close();
})
})

+ 948
- 0
tests/RegisterPage.spec.js View File

@ -0,0 +1,948 @@
const {test, expect} =require('@playwright/test')
import { RegisterPage } from '../pages/RegisterPage';
/* ---------------------------------------------------TEST CASES FOR NAME--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
test.describe('TC_Name',()=>{
test('TC-RP-01: Name with empty space is entered',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter value for register
await register.register('', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_username']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
//Numbers are accepted as name
test.skip('TC-RP-02: Instead of names, Numbers is entered',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('52658954623', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_username']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test.skip('TC-RP-03: 50 characters are entered',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('dhjdgabjfbdiuafhdkjbaiughjfkshloadfishjkfglik', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_username']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test.skip('TC-RP-04: Merchant enters special characters and symbol',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('^%$#%$^&*&', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_username']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test('TC-RP-05: Name with Alphabet',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Mano', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();//already verified again sign up will be displayed.
await page.close();
})
test('TC-RP-06: Name with space',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Mano Aravind', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible(); //already verified again sign up will be displayed.
await page.close();
})
test('TC-RP-07: Name with special character',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Mano_Aravind', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible(); //already verified again sign up will be displayed.
await page.close();
})
test('TC-RP-08: Names with accented characters',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Ôôerwed', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible(); //already verified again sign up will be displayed.
await page.close();
})
})
/* ---------------------------------------------------TEST CASES FOR EMAIL ID--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
test.describe('TC_Email',()=>{
test('TC-RP-10: Email with empty space',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', '','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test('TC-RP-11: Email without @',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'rabisundaramgmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test('TC-RP-12: Email without domain',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'rabisundaram@.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test.skip('TC-RP-13: Invalid email format',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', ' asfg@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test.skip('TC-RP-14: Invalid email domain',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'asfg@asfg.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test('TC-RP-15: Email with invalid characters',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'user!@.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test.skip('TC-RP-16: Email with Excessive length',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'userudgjhbdsayiujhgbkujhgvbvkujyhgdsakhgjvkdjf!@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test('TC-RP-17: Email with consecutive dots',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'manoaravcind...com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test('TC-RP-19: Email with subdomain ',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'example@gmail.example.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
test.skip('TC-RP-20: Email with special character in local part',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
test('TC-RP-21: Email with uppercase characters',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
test('TC-RP-23: Email with special characters only',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', '^&#^*($*$(*%','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
// functionality doubt
test.skip('TC-RP-24: Email with Upper case letter',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'RABISUNDARAM@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
test('TC-RP-25: Email with numbers only',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', '5484564525','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_emailid']");
await expect(locator).toBeFocused();
await expect(locator).toBeVisible();
await page.close();
})
})
//-------------------------------------------------TEST CASE FOR PHONE FIELD----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
test.describe('TC_Phone',()=>{
test('TC-RP-26: Phone number with 10 characters',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','asdfghjklk','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-27: Phone number with Special characters',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','%$%^%^&&*','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-28: Phone with Alphabets',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','ASDFGHJK','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-29: Phone with 11 numbers',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','96005200465','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-30: Phone with 9 numbers',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','960052004','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-31: Phone with starting with space',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com',' 960052004','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-32: Phone number empty',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com',' ','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-33: Phone with International number',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','123453678798','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_phone']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-36: Phone number with 10 numbers',async ({page})=>{
//Go to register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter The value in register page
await register.register('Micheal Rabi', 'akshay.vasav@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
})
//--------------------------------- TEST CASE FOR ADDRESS FIELD --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test.describe('TC_Address',()=>{
test('TC-RP-37: Empty address',async ({page})=>{
// Go to Register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter value for Register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//textarea[@id='oba_signup_address']");
await expect(locator).toBeFocused();
await page.close();
})
// Need to check showing error
test.skip('TC-RP-38: Exccesive length address',async ({page})=>{
// Go to Register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter value for Register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Main road thalavai panagudim nindia tamil nadu england ntirunelveli gwhsjdas8iukjgbiu7gk uifygh8idhb','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//textarea[@id='oba_signup_address']");
await expect(locator).toBeFocused();
await page.close();
})
test.skip('TC-RP-39: Except & all other alphanumeric',async ({page})=>{
// Go to Register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter value for Register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','#$@#^%$#@main road','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//textarea[@id='oba_signup_address']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-40: Valid Address',async ({page})=>{
// Go to Register Page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter value for Register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
})
//----------------------------- TEST CASES FOR COMPANY NAME ----------------------------------------------------------------------------------------------------------------------------------------------*/
test.describe('TC_Company Name',()=>{
test('TC-RP-43: Company name is empty',async ({page})=>{
//navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//enter value in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', '', 'SweetMart', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_company_name']");
await expect(locator).toBeFocused();
await page.close();
})
//These are accepted so need to check with functinality
test.skip('TC-RP-44: Company name with numbers',async ({page})=>{
//go to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic 12345', 'SweetMart', 'Balurghat');
//assertion
const locator = page.locator("//input[@id='oba_signup_company_name']");
await expect(locator).toBeFocused();
await page.close();
})
test.skip('TC-RP-45: Company name with 1000 Alphabets',async ({page})=>{
//go to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'sarhjkfgbdsiugfjksdauygasjbiuadsgbjhsdbauifgadsjhbfuifgj', 'SweetMart', 'Balurghat');
//assertion
const locator = page.locator("//input[@id='oba_signup_company_name']");
await expect(locator).toBeFocused();
await page.close();
})
test.skip('TC-RP-46: Company name with special characters symbols',async ({page})=>{
//go to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic@1234', 'SweetMart', 'Balurghat');
//assertion
const locator = page.locator("//input[@id='oba_signup_company_name']");
await expect(locator).toBeFocused();
await page.close();
})
test('TC-RP-49: Company name with special characters '-' is acceptable',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram - panagudi ','#12345678A' ,'India(91)', 'Mobigic-Technology', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
})
//------------------------------------- TEST CASES FOR BUSINESS MART -----------------------------------------------------------------------------*/
test.describe('TC_BusinessType',()=>{
test('TC-RP-50: SweetMart Selection',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic-Technology', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
test('TC-RP-51: Fruitmart Selection',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic-Technology', 'FruitMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
test('TC-RP-52: Bisleri supply selection',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic-Technology', 'BisleriSupply', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
test('TC-RP-53: Others Selection',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
})
//------------------------------------- TEST CASES FOR Password -----------------------------------------------------------------------------*/
test.describe('TC_Password',()=>{
test('TC-RP-56: minimum 8 length password',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#123456' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_password']");
await expect(locator).toBeFocused();
await page.close();
await page.close();
})
test.skip('TC-RP-57: Password entered with 25 characters',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','dsojarlgpojldm905432kjbnk' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_password']");
await expect(locator).toBeFocused();
await page.close();
await page.close();
})
test('TC-RP-59: Password with upper and lower case',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#ADgrdomi' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
//password is space, 25 characters, only special characters are accepted. need to check functions
test.skip('TC-RP-60: Password with space',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#123 456' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_password']");
await expect(locator).toBeFocused();
await page.close();
await page.close();
})
test('TC-RP-61: Too short Password is not accepted',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','1' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_password']");
await expect(locator).toBeFocused();
await page.close();
await page.close();
})
})
test.skip('TC-RP-63: Password with only special character',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#%^$%^&&**' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
const locator = page.locator("//input[@id='oba_signup_password']");
await expect(locator).toBeFocused();
await page.close();
await page.close();
})
//------------------------------------- TEST CASES FOR City -----------------------------------------------------------------------------
test.describe('TC_City',()=>{
test('TC-RP-55: City Selection',async ({page})=>{
//Navigate to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter values in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#1234567A' ,'India(91)', 'Mobigic-Technology', 'Others', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
})
//------------------------------------- TEST CASE FOR ALREADY SIGNUP BUTTON ------------------------------------------------------------------------------------------------------------------------------------
test('TC-RP-65: Already sign up ', async ({page}) =>{
//Navigate to register
const register = new RegisterPage(page);
await register.alreadySignUpCheck();
//Assertion
const locator = page.locator("//input[@name='oba_login_emailid']");
await expect(locator).toBeFocused();
})
//------------------------------------ TEST CASE FOR COUNTRY CODE -------------------------------------------------------------------------------------------------------------------------------------------------------------------
test('TC-RP-66: India Country code',async ({page})=>{
//Navigate to register
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter value in register
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi ','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
/* -------------------------- TEST CASE FOR VALID DETAILS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
test.describe('GroupWithCorrectDetails',()=>{
// Register Link Check
test('TC-RP-68: RegisterLink Check',async ({page})=>{
//Go to register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Assertion
await expect(await page.locator("//button[@class='btn btn-primary btn-block']")).toBeVisible();
})
// Register with correct details
test('TC-Rp-67: Register page entering with correct details',async ({page})=>{
//Navigate to Register page
const register = new RegisterPage(page);
await register.gotoRegisterPage();
//Enter value in register page
await register.register('Micheal Rabi', 'rabisundaram@gmail.com','9600520046','Thalavaipuram panagudi','#12345678A' ,'India(91)', 'Mobigic Technologies', 'SweetMart', 'Balurghat');
//Assertion
await expect(await page.locator("//button[normalize-space()='Sign UP']")).toBeVisible();
await page.close();
})
})

+ 23
- 0
tests/RunnerList.spec.js View File

@ -0,0 +1,23 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { RunnerListPage } from '../pages/RunnerListPage';
test('TC-RP-01: RunnerList Button is working?',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to Runner Page
const runner = new RunnerListPage(page);
await runner.clickrunnerListButton();
await page.waitForTimeout(5000);
//Assertions
await expect(await page.locator("//span[@class='flip-indecator']")).toBeVisible();
})

+ 64
- 0
tests/UserPage.spec.js View File

@ -0,0 +1,64 @@
const {test, expect} =require('@playwright/test')
import { LoginPage } from '../pages/LoginPage';
import { UserPage } from '../pages/UserPage';
//User button is working?(In Regression Suite)
test('TC-UP-01: User Button is working',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to User Page
const user = new UserPage(page);
await user.userPageButton();
await page.waitForTimeout(5000);
//Assertions
await expect(await page.locator("//span[@class='flip-indecator']")).toBeVisible();
})
//Assertions is not done(In Regression Suite)
test.skip('TC-UP-02: Active user Button check',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to user page
const user = new UserPage(page);
await user.activeUserButtonCheck();
await page.waitForTimeout(5000);
})
//Search Button Check(In regression suite)
test('TC-UP-03: Search Button Check',async ({page})=>{
//Navigate to Login Page
const login = new LoginPage(page);
await login.gotoLoginPage();
await login.loginWithCrtPassword();
await page.waitForTimeout(5000);
//Navigate to user page
const user = new UserPage(page);
await user.searchUserValidation('DAYA');
await page.waitForTimeout(5000);
//Assertion
await expect(await page.locator("//td[normalize-space()='DAYA']")).toBeVisible();
})

Loading…
Cancel
Save