Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- title Main - reg. order dish with cash, create user in checkout
- SetDevice -> Start: setDevice('iPhone 7')
- //Start->Splash: goto("http://take247-v1.0-master.s3-website-ap-southeast-1.amazonaws.com/")
- _ -> _: goto("http://localhost:3000")
- // Consts
- const SplashCurrentLocation = './/button[contains(@class,"splash-screen-button-search-with-current-location")]'
- const Testi = './/div[contains(@class,"restaurant-5c7c95715e06930204e328ec")]'
- const MainDishes = './/div[contains(@id,"category-5c7e2ac70c25c32ecfd76867")]'
- const Sinta = './/div[contains(@id,"item-5c7e2aba0c25c32ecfd7662c")]'
- const AddToCart = './/button[contains(@class,"screen-dish-add-to-cart-button")]'
- const VariantError = '//*[@id="root"]/div/div/div/div/div[4]/div/div/div'
- const ChooseVariant = './/button[contains(@class, "variant-1")]'
- const CartButton = './/button[contains(@class,"cart-button")]'
- const CartItem0 = './/div[contains(@class, "cart-item-0")]'
- const CartPrice = './/div[contains(@class, "cart-estimatedTotalPrice")]'
- const CartDelivery = ".//*[contains(concat(' ', normalize-space(./@class), ' '), ' cart-button-delivery ')]"
- const CartPay = ".//*[contains(concat(' ', normalize-space(./@class), ' '), ' cart-button-pay ')]"
- const AddressTitle = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[1]/div[2]/div'
- const AddressTitleHiUser = './/div[contains(@class, "address-modal-hi-user")]'
- const AddressTitleLoginButtonText = './/div[contains(@class, "address-modal-login-button-text")]'
- const AddressTitleLoginButton = './/div[contains(@class, "sign-in-and-open-addresses")]'
- const AddressModalFullName = './/input[contains(@id, "address-modal-full-name")]'
- const AddressModalFullAddress = './/input[contains(@id, "address-modal-full-address")]'
- const AddressModalEntrance = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/form/div[6]/div/div[1]/div[2]/input'
- const AddressModalFloor = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/form/div[6]/div/div[2]/div[2]/input'
- const AddressModalPhone = '//*[@id="address-modal-phone"]'
- const AddressModalSpecialInstructions = '//div[contains(concat(" ",normalize-space(@class)," ")," addresses-modal ")]/div/div/div/form/div[10]/input'
- const ContinueToSignUp = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/button'
- const SignUpFullName = './/input[contains(@id, "signup-fullname")]'
- const SignUpEmail = './/input[contains(@id, "signup-email")]'
- const SignUpPassword = './/input[contains(@id, "signup-password")]'
- const SignUpPasswordConfirm = './/input[contains(@id, "signup-confirm-password")]'
- const SignUpSubmit = './/button[contains(@class, "signup-submit")]'
- const TOUCheckBox = './/input[contains(@class, "terms-of-use-checkbox")]'
- const TOUApprove = './/button[contains(@class, "terms-of-use-approve")]'
- const CheckoutCreditButton = ".//*[contains(concat(' ', normalize-space(./@class), ' '), ' checkout-screen-button-pay ')]"
- const CheckoutButtonPay = './/div[contains(@class, "checkout-screen-button-pay")]'
- // Order dish
- Splash->Home: click(SplashCurrentLocation)
- Home->Restaurant: click(Testi)
- Restaurant->Category: click(MainDishes)
- Category->Dish: click(Sinta)
- Dish->Dish: click(AddToCart)
- Dish->Dish: assertTextPresent(VariantError, "יש למלא את כל אפשרויות הבחירה של המנה")
- Dish->Dish:wait(3000)
- Dish->Variant: click(ChooseVariant)
- Dish->Restaurant: click(AddToCart)
- Restaurant->Cart: click(CartButton)
- Cart->CartItemTitle: assertTextPresent(CartItem0, "סלט רצועות סינטה")
- Cart->Cart: assertTextPresent(CartPrice, "0.05")
- // Order with cash
- Cart->Delivery: click(CartDelivery)
- Cart->AddressUserDetails: click(CartPay)
- state AddressUserDetails = {
- html: "<img style='width:120px' src='https://imgur.com/Ne68c3d.jpg' />"
- }
- // Fill user address, name and phone number, also asserting log in button exists
- // Flow change, in this stage it should show screen #2 under unregistered user flow. Consult with Ronen if necessary.
- AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitle, "הזמנה מטסטי (דמה)")
- //AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitleHiUser,"היי חבר!")
- // Due to flow change, we do not have the user's name in this stage. Please write "hey friend" and we will change it in translation.
- //AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitleLoginButtonText, "כבר יש לך משתמש?")
- //AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitleLoginButton, "התחבר")
- //AddressUserDetails -> AddressUserDetails: assign(AddressModalFullName, "automation test")
- //AddressUserDetails -> AddressUserDetails: assign(AddressModalFullAddress, "האורן 30, חניאל")
- // Create user in checkout
- Checkout->SignupModal: click('//*[contains(concat(" ",normalize-space(@class)," ")," login-modal ")]//*[@id="signup"]')
- SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-fullname"]',"automation test")
- SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-email"]',"test@codelynx.io")
- SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-password"]',"123456")
- SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-confirmPassword"]',"123456")
- SignupModal->SignupModal: click('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[contains(concat(" ",normalize-space(@class)," ")," signup-submit ")]')
- SignupModal->SignupModal: click("//*[contains(@class,'terms-of-use-checkbox')]")
- SignupModal->Cart: click("//*[contains(@class,'terms-of-use-approve')]")
- Cart->Checkout: click("//*[contains(@class,'cart-button-pay')]")
- SignupModal->SignupModal: assertText("//*[contains(@class,'address-modal-hi-user')]","automation test")
- SignupModal->Home: click("//*[contains(@class,'address-modal-close')]")
- Cart->AddressUserDetails: click(CartPay)
- AddressUserDetails->AddressUserDetails: assertElementPresent(AddressTitle)
- AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitle, "בחר כתובת שמורה")
- AddressUserDetails -> AddressUserDetails: assign('//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/form/div[5]/div/input', "האורן 30, חניאל")
- AddressUserDetails -> AddressUserDetails: wait(1000)
- AddressUserDetails->AddressUserDetails: click('//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/form/div[5]/div[2]/div/div[1]/div/div/div/div/div')
- // address-modal-full-address does not exist, please add this ID to the field.
- AddressUserDetails -> AddressUserDetails: assign(AddressModalEntrance, "0")
- // address-modal-entrance-number does not exist, please add this ID to the field.
- AddressUserDetails -> AddressUserDetails: assign(AddressModalFloor, "0")
- // address-modal-floor-level does not exist, please add this ID to the field.
- AddressUserDetails -> AddressUserDetails: assign(AddressModalPhone, "0545559822")
- AddressUserDetails -> AddressUserDetails: assign(AddressModalSpecialInstructions, "None")
- // #address-modal-special-arrival-instructions does not exist, please add this ID to the field.
- AddressUserDetails -> SignupModal: click(ContinueToSignUp)
- //continue-to-signup does not exist, please add ID to the button. Should lead to screen 3 in unregistered flow.
- state AddressUserDetails = {
- html: "<img style='width:120px' src='https://imgur.com/yWoP0Sb.jpg' />"
- }
- // Done with the user delivery information, now lead him to user signup screen with the details we got earlier.
- //SignupModal->SignupModal: assertTextPresent(SignUpFullName, "automation test")
- // User's fullname should already appear here and editable, as he entered it before
- //SignupModal->SignupModal: assign(SignUpEmail,"test@codelynx.io")
- //SignupModal->SignupModal: assign(SignUpPassword,"123456")
- //SignupModal->SignupModal: assign(SignUpPasswordConfirm,"123456")
- //SignupModal->SignupModal: click(SignUpSubmit)
- //SignupModal->SignupModal: click(TOUCheckBox)
- //SignupModal->Checkout: click(TOUApprove)
- checkout->checkout: assertElementVisible("//*[contains(@class,'checkout-screen-button-cash')]")
- checkout->checkout: click("//*[contains(@class,'checkout-screen-button-cash')]")
- //Checkout->Checkout: assertElementPresent(CheckoutCreditButton)
- //Checkout->Checkout: assertElementPresent(CheckoutButtonPay)
- _->_:wait(10000000)
- ThankYouScreen -> ThankYouScreen: assertElementPresent(".//*[contains(concat(' ', normalize-space(./@class), ' '), ' thankyou ')]")
- event wait(time) = { action: 'wait', value: time}
- event click(target) = { action: 'click', target: target }
- event assertTextPresent(target, value) = { action: 'assertTextPresent', target: target, value: value }
- event assertTextNotPresent(target, value) = { action: 'assertTextNotPresent', target: target, value: value }
- event assertElementNotPresent(target) = { action: 'assertElementNotPresent', target: target }
- event assertElementPresent(target) = { action: 'assertElementPresent', target: target }
- event assign(target,value)={ action:'assign', target: target, value: value }
- event goto(url) = { action: 'goto', value: url }
- event assertText(target, value) = { action: 'assertText', target: target, value: value }
- event assertElementVisible(target) = { action: 'assertElementVisible', target: target }
- event setDevice(device) = {
- action: 'setDevice',
- target: device
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement