diff --git a/.changeset/brave-teachers-burn.md b/.changeset/brave-teachers-burn.md new file mode 100644 index 00000000000..f560cc34308 --- /dev/null +++ b/.changeset/brave-teachers-burn.md @@ -0,0 +1,5 @@ +--- +"saleor-dashboard": patch +--- + +Add e2e for managing products on draft order. Add e2e for placing draft order for non-existing customer. diff --git a/playwright/pages/pageElements/rightSideDetailsSection.ts b/playwright/pages/pageElements/rightSideDetailsSection.ts index cd625ee48b8..83a958d1bdd 100644 --- a/playwright/pages/pageElements/rightSideDetailsSection.ts +++ b/playwright/pages/pageElements/rightSideDetailsSection.ts @@ -185,6 +185,11 @@ export class RightSideDetailsPage extends BasePage { await this.waitForDOMToFullyLoad(); } + async typeAndSelectCustomerEmail(customerEmail = "customer@example.com") { + await this.searchCustomerInput.fill(customerEmail); + await this.selectCustomerOption.locator(`text=${customerEmail}`).click(); + } + async selectOneChannelAsAvailableWhenMoreSelected(channel: string) { await this.manageChannelsButton.click(); await this.channelSelectDialog.clickAllChannelsCheckbox(); diff --git a/playwright/tests/orders.spec.ts b/playwright/tests/orders.spec.ts index fa4c55f2f34..69fe11ff8c6 100644 --- a/playwright/tests/orders.spec.ts +++ b/playwright/tests/orders.spec.ts @@ -8,6 +8,7 @@ import { FulfillmentPage } from "@pages/fulfillmentPage"; import { OrdersPage } from "@pages/ordersPage"; import { RefundPage } from "@pages/refundPage"; import { expect, test } from "@playwright/test"; +import * as faker from "faker"; test.use({ storageState: "./playwright/.auth/admin.json" }); @@ -444,3 +445,28 @@ test(`TC: SALEOR_216 Order type discount is applied to a draft order @draft @dis expect(finalTotalPrice.slice(3)).toContain(discountedOrderSubTotal.toString()); }); + +test("TC: SALEOR_217 Complete basic order for non existing customer @e2e @order", async () => { + const nonExistingEmail = `customer-${faker.datatype.number()}@example.com`; + const newAddress = ADDRESS.addressPL; + + await ordersPage.goToOrdersListView(); + await ordersPage.clickCreateOrderButton(); + await ordersPage.orderCreateDialog.completeOrderCreateDialogWithFirstChannel(); + await ordersPage.clickAddProductsButton(); + await draftOrdersPage.addProductsDialog.selectVariantBySKU(variantSKU); + await draftOrdersPage.addProductsDialog.clickConfirmButton(); + await ordersPage.rightSideDetailsPage.clickEditCustomerButton(); + await ordersPage.rightSideDetailsPage.clickSearchCustomerInput(); + await ordersPage.rightSideDetailsPage.typeAndSelectCustomerEmail(nonExistingEmail); + await addressForm.completeBasicInfoAddressForm(newAddress); + await addressForm.typeCompanyName(newAddress.companyName); + await addressForm.typePhone(newAddress.phone); + await addressForm.typeAddressLine2(newAddress.addressLine2); + await addressDialog.clickConfirmButton(); + await ordersPage.expectSuccessBanner(); + await ordersPage.clickAddShippingCarrierButton(); + await ordersPage.shippingAddressDialog.pickAndConfirmFirstShippingMethod(); + await ordersPage.clickFinalizeButton(); + await draftOrdersPage.expectSuccessBannerMessage("finalized"); +});