freshyo/tests/e2e/add-product.yaml
2026-09-15 23:59:59 +05:30

169 lines
3.5 KiB
YAML

appId: ${APP_ID || "in.freshyo.adminui"}
env:
# Values are supplied via `-e` by run.sh. The inline `||` defaults let the
# flow run standalone against a dev build without run.sh.
APP_ID: ${APP_ID || "in.freshyo.adminui"}
STAFF_NAME: ${STAFF_NAME || ""}
STAFF_PASSWORD: ${STAFF_PASSWORD || ""}
PRODUCT_NAME: ${PRODUCT_NAME || "E2E Test Product"}
STORE_ID: ${STORE_ID || 1}
SKU1_QTY: ${SKU1_QTY || "500 g"}
SKU1_PRICE: ${SKU1_PRICE || "199"}
SKU1_MRP: ${SKU1_MRP || "249"}
SKU2_QTY: ${SKU2_QTY || "1 kg"}
SKU2_PRICE: ${SKU2_PRICE || "349"}
SKU2_MRP: ${SKU2_MRP || "399"}
SKU2_FLASH_PRICE: ${SKU2_FLASH_PRICE || "299"}
tags:
- products
- smoke
---
# Seed the emulator gallery so the OS picker has an image to select.
- addMedia:
- './assets/test-product.png'
# Fresh state (logs out) + grant gallery access.
- launchApp:
clearState: true
permissions:
storage: allow
# --- Login ---
- runFlow: subflows/login.yaml
# --- Navigate to Add Product ---
- tapOn:
id: add-product-menu-item
- assertVisible:
id: product-name-input
# --- Product level ---
- tapOn:
id: product-name-input
- inputText: ${PRODUCT_NAME}
- hideKeyboard
- scrollUntilVisible:
element:
id: product-store-dropdown
direction: DOWN
- tapOn:
id: product-store-dropdown
- tapOn:
id: product-store-dropdown-option-${STORE_ID}
- scrollUntilVisible:
element:
id: product-type-dropdown
direction: DOWN
- tapOn:
id: product-type-dropdown
- tapOn:
id: product-type-dropdown-option-item
# --- Variant 1 (regular) ---
- scrollUntilVisible:
element:
id: variant-0-attr-0-value
direction: DOWN
- tapOn:
id: variant-0-attr-0-value
- inputText: ${SKU1_QTY}
- hideKeyboard
- scrollUntilVisible:
element:
id: variant-0-price
direction: DOWN
- tapOn:
id: variant-0-price
- inputText: ${SKU1_PRICE}
- hideKeyboard
- scrollUntilVisible:
element:
id: variant-0-market-price
direction: DOWN
- tapOn:
id: variant-0-market-price
- inputText: ${SKU1_MRP}
- hideKeyboard
- scrollUntilVisible:
element:
id: variant-0-image-add
direction: DOWN
- tapOn:
id: variant-0-image-add
- runFlow: subflows/pick-image.yaml
# --- Add variant 2 (flash) ---
- scrollUntilVisible:
element:
id: add-variant-button
direction: UP
- tapOn:
id: add-variant-button
- scrollUntilVisible:
element:
id: variant-1-attr-0-value
direction: DOWN
- tapOn:
id: variant-1-attr-0-value
- inputText: ${SKU2_QTY}
- hideKeyboard
- scrollUntilVisible:
element:
id: variant-1-price
direction: DOWN
- tapOn:
id: variant-1-price
- inputText: ${SKU2_PRICE}
- hideKeyboard
- scrollUntilVisible:
element:
id: variant-1-market-price
direction: DOWN
- tapOn:
id: variant-1-market-price
- inputText: ${SKU2_MRP}
- hideKeyboard
# Mark variant 2 as flash and set its flash price.
- scrollUntilVisible:
element:
id: variant-1-flash
direction: DOWN
- tapOn:
id: variant-1-flash
- scrollUntilVisible:
element:
id: variant-1-flash-price
direction: DOWN
- tapOn:
id: variant-1-flash-price
- inputText: ${SKU2_FLASH_PRICE}
- hideKeyboard
- scrollUntilVisible:
element:
id: variant-1-image-add
direction: DOWN
- tapOn:
id: variant-1-image-add
- runFlow: subflows/pick-image.yaml
# --- Submit ---
- scrollUntilVisible:
element:
id: create-product-button
direction: DOWN
- tapOn:
id: create-product-button
- assertVisible: 'Product created successfully!'
- tapOn: 'OK'