Advertisement
sitan

MainRegOrderDishWithCashCreateUserInCheckout.txt

May 4th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.30 KB | None | 0 0
  1. title Main - reg. order dish with cash, create user in checkout
  2. SetDevice -> Start: setDevice('iPhone 7')
  3. //Start->Splash: goto("http://take247-v1.0-master.s3-website-ap-southeast-1.amazonaws.com/")
  4. _ -> _: goto("http://localhost:3000")
  5.  
  6. // Consts
  7. const SplashCurrentLocation = './/button[contains(@class,"splash-screen-button-search-with-current-location")]'
  8. const Testi = './/div[contains(@class,"restaurant-5c7c95715e06930204e328ec")]'
  9. const MainDishes = './/div[contains(@id,"category-5c7e2ac70c25c32ecfd76867")]'
  10. const Sinta = './/div[contains(@id,"item-5c7e2aba0c25c32ecfd7662c")]'
  11. const AddToCart = './/button[contains(@class,"screen-dish-add-to-cart-button")]'
  12. const VariantError = '//*[@id="root"]/div/div/div/div/div[4]/div/div/div'
  13. const ChooseVariant = './/button[contains(@class, "variant-1")]'
  14. const CartButton = './/button[contains(@class,"cart-button")]'
  15. const CartItem0 = './/div[contains(@class, "cart-item-0")]'
  16. const CartPrice = './/div[contains(@class, "cart-estimatedTotalPrice")]'
  17. const CartDelivery = ".//*[contains(concat(' ', normalize-space(./@class), ' '), ' cart-button-delivery ')]"
  18. const CartPay = ".//*[contains(concat(' ', normalize-space(./@class), ' '), ' cart-button-pay ')]"
  19. const AddressTitle = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[1]/div[2]/div'
  20. const AddressTitleHiUser = './/div[contains(@class, "address-modal-hi-user")]'
  21. const AddressTitleLoginButtonText = './/div[contains(@class, "address-modal-login-button-text")]'
  22. const AddressTitleLoginButton = './/div[contains(@class, "sign-in-and-open-addresses")]'
  23. const AddressModalFullName = './/input[contains(@id, "address-modal-full-name")]'
  24. const AddressModalFullAddress = './/input[contains(@id, "address-modal-full-address")]'
  25. const AddressModalEntrance = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/form/div[6]/div/div[1]/div[2]/input'
  26. const AddressModalFloor = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/form/div[6]/div/div[2]/div[2]/input'
  27. const AddressModalPhone = '//*[@id="address-modal-phone"]'
  28. const AddressModalSpecialInstructions = '//div[contains(concat(" ",normalize-space(@class)," ")," addresses-modal ")]/div/div/div/form/div[10]/input'
  29. const ContinueToSignUp = '//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/button'
  30. const SignUpFullName = './/input[contains(@id, "signup-fullname")]'
  31. const SignUpEmail = './/input[contains(@id, "signup-email")]'
  32. const SignUpPassword = './/input[contains(@id, "signup-password")]'
  33. const SignUpPasswordConfirm = './/input[contains(@id, "signup-confirm-password")]'
  34. const SignUpSubmit = './/button[contains(@class, "signup-submit")]'
  35. const TOUCheckBox = './/input[contains(@class, "terms-of-use-checkbox")]'
  36. const TOUApprove = './/button[contains(@class, "terms-of-use-approve")]'
  37. const CheckoutCreditButton = ".//*[contains(concat(' ', normalize-space(./@class), ' '), ' checkout-screen-button-pay ')]"
  38. const CheckoutButtonPay = './/div[contains(@class, "checkout-screen-button-pay")]'
  39.  
  40.  
  41. // Order dish
  42. Splash->Home: click(SplashCurrentLocation)
  43. Home->Restaurant: click(Testi)
  44. Restaurant->Category: click(MainDishes)
  45. Category->Dish: click(Sinta)
  46. Dish->Dish: click(AddToCart)
  47. Dish->Dish: assertTextPresent(VariantError, "יש למלא את כל אפשרויות הבחירה של המנה")
  48. Dish->Dish:wait(3000)
  49. Dish->Variant: click(ChooseVariant)
  50. Dish->Restaurant: click(AddToCart)
  51. Restaurant->Cart: click(CartButton)
  52. Cart->CartItemTitle: assertTextPresent(CartItem0, "סלט רצועות סינטה")
  53. Cart->Cart: assertTextPresent(CartPrice, "0.05")
  54.  
  55. // Order with cash
  56. Cart->Delivery: click(CartDelivery)
  57. Cart->AddressUserDetails: click(CartPay)
  58.  
  59. state AddressUserDetails = {
  60. html: "<img style='width:120px' src='https://imgur.com/Ne68c3d.jpg' />"
  61. }
  62. // Fill user address, name and phone number, also asserting log in button exists
  63. // Flow change, in this stage it should show screen #2 under unregistered user flow. Consult with Ronen if necessary.
  64. AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitle, "הזמנה מטסטי (דמה)")
  65. //AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitleHiUser,"היי חבר!")
  66. // 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.
  67.  
  68. //AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitleLoginButtonText, "כבר יש לך משתמש?")
  69. //AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitleLoginButton, "התחבר")
  70. //AddressUserDetails -> AddressUserDetails: assign(AddressModalFullName, "automation test")
  71. //AddressUserDetails -> AddressUserDetails: assign(AddressModalFullAddress, "האורן 30, חניאל")
  72.  
  73. // Create user in checkout
  74. Checkout->SignupModal: click('//*[contains(concat(" ",normalize-space(@class)," ")," login-modal ")]//*[@id="signup"]')
  75. SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-fullname"]',"automation test")
  76. SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-email"]',"test@codelynx.io")
  77. SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-password"]',"123456")
  78. SignupModal->SignupModal: assign('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[@id="signup-confirmPassword"]',"123456")
  79. SignupModal->SignupModal: click('//*[contains(concat(" ",normalize-space(@class)," ")," create-account-modal ")]//*[contains(concat(" ",normalize-space(@class)," ")," signup-submit ")]')
  80. SignupModal->SignupModal: click("//*[contains(@class,'terms-of-use-checkbox')]")
  81. SignupModal->Cart: click("//*[contains(@class,'terms-of-use-approve')]")
  82. Cart->Checkout: click("//*[contains(@class,'cart-button-pay')]")
  83. SignupModal->SignupModal: assertText("//*[contains(@class,'address-modal-hi-user')]","automation test")
  84. SignupModal->Home: click("//*[contains(@class,'address-modal-close')]")
  85. Cart->AddressUserDetails: click(CartPay)
  86. AddressUserDetails->AddressUserDetails: assertElementPresent(AddressTitle)
  87. AddressUserDetails -> AddressUserDetails: assertTextPresent(AddressTitle, "בחר כתובת שמורה")
  88.  
  89. AddressUserDetails -> AddressUserDetails: assign('//*[@id="root"]/div/div/div/div/div[3]/div/div/div[3]/form/div[5]/div/input', "האורן 30, חניאל")
  90. AddressUserDetails -> AddressUserDetails: wait(1000)
  91. 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')
  92. // address-modal-full-address does not exist, please add this ID to the field.
  93. AddressUserDetails -> AddressUserDetails: assign(AddressModalEntrance, "0")
  94. // address-modal-entrance-number does not exist, please add this ID to the field.
  95. AddressUserDetails -> AddressUserDetails: assign(AddressModalFloor, "0")
  96. // address-modal-floor-level does not exist, please add this ID to the field.
  97. AddressUserDetails -> AddressUserDetails: assign(AddressModalPhone, "0545559822")
  98. AddressUserDetails -> AddressUserDetails: assign(AddressModalSpecialInstructions, "None")
  99. // #address-modal-special-arrival-instructions does not exist, please add this ID to the field.
  100. AddressUserDetails -> SignupModal: click(ContinueToSignUp)
  101. //continue-to-signup does not exist, please add ID to the button. Should lead to screen 3 in unregistered flow.
  102.  
  103.  
  104. state AddressUserDetails = {
  105. html: "<img style='width:120px' src='https://imgur.com/yWoP0Sb.jpg' />"
  106. }
  107. // Done with the user delivery information, now lead him to user signup screen with the details we got earlier.
  108. //SignupModal->SignupModal: assertTextPresent(SignUpFullName, "automation test")
  109. // User's fullname should already appear here and editable, as he entered it before
  110. //SignupModal->SignupModal: assign(SignUpEmail,"test@codelynx.io")
  111. //SignupModal->SignupModal: assign(SignUpPassword,"123456")
  112. //SignupModal->SignupModal: assign(SignUpPasswordConfirm,"123456")
  113. //SignupModal->SignupModal: click(SignUpSubmit)
  114. //SignupModal->SignupModal: click(TOUCheckBox)
  115. //SignupModal->Checkout: click(TOUApprove)
  116.  
  117. checkout->checkout: assertElementVisible("//*[contains(@class,'checkout-screen-button-cash')]")
  118. checkout->checkout: click("//*[contains(@class,'checkout-screen-button-cash')]")
  119. //Checkout->Checkout: assertElementPresent(CheckoutCreditButton)
  120. //Checkout->Checkout: assertElementPresent(CheckoutButtonPay)
  121. _->_:wait(10000000)
  122. ThankYouScreen -> ThankYouScreen: assertElementPresent(".//*[contains(concat(' ', normalize-space(./@class), ' '), ' thankyou ')]")
  123.  
  124.  
  125. event wait(time) = { action: 'wait', value: time}
  126. event click(target) = { action: 'click', target: target }
  127. event assertTextPresent(target, value) = { action: 'assertTextPresent', target: target, value: value }
  128. event assertTextNotPresent(target, value) = { action: 'assertTextNotPresent', target: target, value: value }
  129. event assertElementNotPresent(target) = { action: 'assertElementNotPresent', target: target }
  130. event assertElementPresent(target) = { action: 'assertElementPresent', target: target }
  131. event assign(target,value)={ action:'assign', target: target, value: value }
  132. event goto(url) = { action: 'goto', value: url }
  133. event assertText(target, value) = { action: 'assertText', target: target, value: value }
  134. event assertElementVisible(target) = { action: 'assertElementVisible', target: target }
  135. event setDevice(device) = {
  136. action: 'setDevice',
  137. target: device
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement