address.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { generateEmail, generateFirstName, generateLastName, generatePhoneNumber, generateRandomNumericString } from './faker';
  2. const address = async (page) => {
  3. await page.fill('input[name="billing.company_name"]', generateLastName());
  4. await page.fill('input[name="billing.first_name"]', generateFirstName());
  5. await page.fill('input[name="billing.last_name"]', generateLastName());
  6. await page.fill('input[name="billing.email"]', generateEmail());
  7. await page.fill('input[name="billing.address.[0]"]', generateFirstName());
  8. await page.selectOption('select[name="billing.country"]', 'IN');
  9. await page.selectOption('select[name="billing.state"]', 'UP');
  10. await page.fill('input[name="billing.city"]', generateLastName());
  11. await page.fill('input[name="billing.postcode"]', generateRandomNumericString(6));
  12. await page.fill('input[name="billing.phone"]', generatePhoneNumber());
  13. const exists = await page.$$('input[name="billing.save_address"]');
  14. if (exists.length !== 0) {
  15. await page.click('input[name="billing.save_address"] + label');
  16. await page.press('input[name="billing.phone"]', 'Enter');
  17. } else {
  18. const checkbox = await page.$$('input[name="billing.use_for_shipping"]');
  19. if (Math.random() < 0.67) { // ~2/3 chance
  20. if (!(await checkbox[0].isChecked())) {
  21. await page.click('input[name="billing.use_for_shipping"] + label');
  22. }
  23. } else {
  24. if (await checkbox[0].isChecked()) {
  25. await page.click('input[name="billing.use_for_shipping"] + label');
  26. }
  27. await page.fill('input[name="shipping.company_name"]', generateLastName());
  28. await page.fill('input[name="shipping.first_name"]', generateFirstName());
  29. await page.fill('input[name="shipping.last_name"]', generateLastName());
  30. await page.fill('input[name="shipping.email"]', generateEmail());
  31. await page.fill('input[name="shipping.address.[0]"]', generateFirstName());
  32. await page.selectOption('select[name="shipping.country"]', 'IN');
  33. await page.selectOption('select[name="shipping.state"]', 'UP');
  34. await page.fill('input[name="shipping.city"]', generateLastName());
  35. await page.fill('input[name="shipping.postcode"]', '201301');
  36. await page.fill('input[name="shipping.phone"]', generatePhoneNumber());
  37. }
  38. const nextButton = await page.$('button.primary-button:visible');
  39. if (nextButton) await nextButton.click();
  40. }
  41. return "done";
  42. };
  43. export default address;