diff --git a/.changeset/lucky-windows-sin.md b/.changeset/lucky-windows-sin.md new file mode 100644 index 00000000000..7e44d816f50 --- /dev/null +++ b/.changeset/lucky-windows-sin.md @@ -0,0 +1,5 @@ +--- +"saleor-dashboard": patch +--- + +Test reports no longer mention users due to test tags matching GitHub usernames. diff --git a/.github/actions/run-pw-tests/action.yml b/.github/actions/run-pw-tests/action.yml index b1858dd03bd..7e45ce061ad 100644 --- a/.github/actions/run-pw-tests/action.yml +++ b/.github/actions/run-pw-tests/action.yml @@ -89,7 +89,7 @@ runs: PROJECT_PARAMS+="--project=${PROJECT} " done echo "reportName=all-blob-reports-${SHARD_NUMBER%%/*}" >> $GITHUB_ENV - npx playwright test --grep @e2e $PROJECT_PARAMS --shard "$SHARD_NUMBER" + npx playwright test --grep \"#e2e\" $PROJECT_PARAMS --shard "$SHARD_NUMBER" - name: Upload blob report to GitHub Actions Artifacts uses: actions/upload-artifact@v4 diff --git a/package.json b/package.json index 8651426dd4f..3009d7775db 100644 --- a/package.json +++ b/package.json @@ -280,10 +280,10 @@ "qa:move-videos": "find cypress/videos -type f -name \"*.js.mp4\" -exec mv {} cypress/reports/mochareports/videos \\;", "qa:artifact-move-screenshots": "find cypress/reports/*/mochareports -type d -name \"*.js\" -exec mv {} cypress/reports/mochareports \\;", "qa:artifact-move-videos": "find cypress/reports/*/mochareports/videos -type f -name \"*.js.mp4\" -exec mv {} cypress/reports/mochareports/videos \\;", - "qa:pw-e2e": "npx playwright test --grep @e2e", + "qa:pw-e2e": "npx playwright test --grep \"#e2e\"", "qa:pw-ui": "npx playwright test --ui", "knip": "knip --reporter markdown", "knip:fix": "knip --fix" }, "description": "![Saleor Dashboard](https://user-images.githubusercontent.com/44495184/185379472-2a204c0b-9b7a-4a3e-93c0-2cb85205ed5e.png)" -} +} \ No newline at end of file diff --git a/playwright/tests/apps.spec.ts b/playwright/tests/apps.spec.ts index 930681b5e20..50b383ff36e 100644 --- a/playwright/tests/apps.spec.ts +++ b/playwright/tests/apps.spec.ts @@ -21,7 +21,7 @@ const PRE_INSTALLATION_TIMEOUT = 20 * 1000; const INSTALLATION_PENDING_TIMEOUT = 50 * 1000; const APP_EXPECT_UI_TIMEOUT = 15 * 1000; -test("TC: SALEOR_119 User should be able to install and configure app from manifest @e2e", async ({ +test("TC: SALEOR_119 User should be able to install and configure app from manifest #e2e", async ({ page, }) => { await appsPage.gotoAppsList(); @@ -56,7 +56,7 @@ test("TC: SALEOR_119 User should be able to install and configure app from manif await iframeLocator.getByText("Save").click(); await appsPage.expectSuccessBanner({ timeout: INSTALLATION_PENDING_TIMEOUT }); }); -test("TC: SALEOR_120 User should be able to delete thirdparty app @e2e", async () => { +test("TC: SALEOR_120 User should be able to delete thirdparty app #e2e", async () => { await appPage.waitForNetworkIdleAfterAction(() => appPage.goToExistingAppPage(APPS.appToBeDeleted.id), ); diff --git a/playwright/tests/attributes.spec.ts b/playwright/tests/attributes.spec.ts index ec66587b4b6..ab5622bf487 100644 --- a/playwright/tests/attributes.spec.ts +++ b/playwright/tests/attributes.spec.ts @@ -22,7 +22,7 @@ for (const attr of attributeClasses) { for (const type of ATTRIBUTES.attributeTypesWithAbilityToAddValues.names) { const uniqueSlug = `${attr}-${type}-${SALEOR_124_uuid}`.replace(/\s+/g, "-"); - test(`TC: SALEOR_124 User should be able to create ${attr} ${type} attribute with ability to add values, required, public @e2e @attributes`, async ({ + test(`TC: SALEOR_124 User should be able to create ${attr} ${type} attribute with ability to add values, required, public #e2e #attributes`, async ({ page, }) => { await page.context().storageState({ path: "./playwright/.auth/admin.json" }); @@ -56,7 +56,7 @@ for (const attr of attributeClasses) { for (const type of ATTRIBUTES.attributeTypesWithoutAbilityToAddValues.names) { const uniqueSlug = `${attr}-${type}-${SALEOR_125_uuid}`.replace(/\s+/g, "-"); - test(`TC: SALEOR_125 User should be able to create ${attr} ${type} attribute without ability to add values, NOT required, private @e2e @attributes`, async ({ + test(`TC: SALEOR_125 User should be able to create ${attr} ${type} attribute without ability to add values, NOT required, private #e2e #attributes`, async ({ page, }) => { await page.context().storageState({ path: "./playwright/.auth/admin.json" }); @@ -91,7 +91,7 @@ for (const attr of attributeClasses) { for (const entity of ATTRIBUTES.attributeReferencesEntities.names) { const uniqueSlug = `${attr}-${entity}-${SALEOR_126_uuid}`.replace(/\s+/g, "-"); - test(`TC: SALEOR_126 User should be able to create ${attr} References attribute for ${entity}, NOT required, public @e2e @attributes`, async ({ + test(`TC: SALEOR_126 User should be able to create ${attr} References attribute for ${entity}, NOT required, public #e2e #attributes`, async ({ page, }) => { await page.context().storageState({ path: "./playwright/.auth/admin.json" }); @@ -133,7 +133,7 @@ const contentAttrWithValues = { const attributesWithValuesToBeUpdated = [productAttrWithValues, contentAttrWithValues]; for (const attribute of attributesWithValuesToBeUpdated) { - test(`TC: SALEOR_127 User should be able to update attribute values in existing ${attribute.name} attribute @e2e @attributes`, async () => { + test(`TC: SALEOR_127 User should be able to update attribute values in existing ${attribute.name} attribute #e2e #attributes`, async () => { await attributesPage.gotoExistingAttributePage(attribute.id, attribute.name); await attributesPage.clickDeleteAttrValueButton(attribute.valueToBeDeleted); await expect(attributesPage.dialog).toBeVisible(); @@ -160,7 +160,7 @@ for (const attribute of attributesWithValuesToBeUpdated) { } for (const attr of ATTRIBUTES.attributesToBeUpdated) { - test(`TC: SALEOR_128 User should be able to edit existing ${attr.name} attribute @e2e @attributes`, async () => { + test(`TC: SALEOR_128 User should be able to edit existing ${attr.name} attribute #e2e #attributes`, async () => { await attributesPage.gotoExistingAttributePage(attr.id, attr.name); await attributesPage.attributeDefaultLabelInput.fill(`updated ${attr.name}`); @@ -198,7 +198,7 @@ const contentAttribute = { const attributesToBeDeleted = [productAttribute, contentAttribute]; for (const attribute of attributesToBeDeleted) { - test(`TC: SALEOR_129 Delete a single ${attribute.name} @e2e @attributes`, async () => { + test(`TC: SALEOR_129 Delete a single ${attribute.name} #e2e #attributes`, async () => { await attributesPage.gotoExistingAttributePage(attribute.id, attribute.name); await attributesPage.clickDeleteButton(); await attributesPage.dialog.waitFor({ @@ -212,7 +212,7 @@ for (const attribute of attributesToBeDeleted) { }); } -test("TC: SALEOR_130 Bulk delete attributes @e2e @attributes", async () => { +test("TC: SALEOR_130 Bulk delete attributes #e2e #attributes", async () => { await attributesPage.gotoListView(); await attributesPage.searchAndFindRowIndexes("e2e attribute to be bulk deleted"); await attributesPage.clickGridCell(0, 0); diff --git a/playwright/tests/categories.spec.ts b/playwright/tests/categories.spec.ts index 3d8aedd0eda..6ce9f498b62 100644 --- a/playwright/tests/categories.spec.ts +++ b/playwright/tests/categories.spec.ts @@ -10,7 +10,7 @@ let categoriesPage: CategoriesPage; test.beforeEach(({ page }) => { categoriesPage = new CategoriesPage(page); }); -test("TC: SALEOR_102 Create basic category @e2e @category", async () => { +test("TC: SALEOR_102 Create basic category #e2e #category", async () => { await categoriesPage.gotoCategoryListView(); await categoriesPage.waitForDatagridLoaderToDisappear(); await categoriesPage.clickCreateNewCategoryButton(); @@ -21,7 +21,7 @@ test("TC: SALEOR_102 Create basic category @e2e @category", async () => { await categoriesPage.clickSaveButton(); await categoriesPage.expectSuccessBanner(); }); -test("TC: SALEOR_103 Edit category @e2e @category", async () => { +test("TC: SALEOR_103 Edit category #e2e #category", async () => { await categoriesPage.gotoExistingCategoriesPage(CATEGORIES.categoryToBeUpdated.id); await categoriesPage.typeCategoryName("Updated category"); await categoriesPage.typeCategoryDescription("Utils description updated"); @@ -30,7 +30,7 @@ test("TC: SALEOR_103 Edit category @e2e @category", async () => { await categoriesPage.expectSuccessBanner(); await expect(categoriesPage.productsGridList).toContainText("beer to be updated"); }); -test("TC: SALEOR_104 Bulk delete categories @e2e @category", async () => { +test("TC: SALEOR_104 Bulk delete categories #e2e #category", async () => { await categoriesPage.gotoCategoryListView(); await categoriesPage.waitForDOMToFullyLoad(); await categoriesPage.checkListRowsBasedOnContainingText( diff --git a/playwright/tests/channels.spec.ts b/playwright/tests/channels.spec.ts index d8fb7a94491..17285ccc636 100644 --- a/playwright/tests/channels.spec.ts +++ b/playwright/tests/channels.spec.ts @@ -13,7 +13,7 @@ test.beforeEach(({ page }) => { configurationPage = new ConfigurationPage(page); channelPage = new ChannelPage(page); }); -test("TC: SALEOR_97 Create basic channel @e2e @channels", async () => { +test("TC: SALEOR_97 Create basic channel #e2e #channels", async () => { const slugName = new Date().toISOString(); await configurationPage.goToConfigurationView(); @@ -27,7 +27,7 @@ test("TC: SALEOR_97 Create basic channel @e2e @channels", async () => { await channelPage.expectSuccessBanner(); }); -test("TC: SALEOR_208 Create channel with all settings @e2e @channels", async () => { +test("TC: SALEOR_208 Create channel with all settings #e2e #channels", async () => { const slugName = new Date().toISOString(); await configurationPage.goToConfigurationView(); @@ -54,7 +54,7 @@ test("TC: SALEOR_208 Create channel with all settings @e2e @channels", async () await expect(channelPage.allowUnpaidOrdersCheckbox).toBeChecked(); }); -test("TC: SALEOR_98 Edit channel - transaction flow, allow unpaid, authorize, prio high stock @e2e @channels", async () => { +test("TC: SALEOR_98 Edit channel - transaction flow, allow unpaid, authorize, prio high stock #e2e #channels", async () => { await channelPage.gotoChannelDetails(CHANNELS.channelToBeEditedSettings.id); await channelPage.clickTransactionFlowCheckbox(); await channelPage.clickAllowUnpaidOrdersCheckbox(); @@ -66,7 +66,7 @@ test("TC: SALEOR_98 Edit channel - transaction flow, allow unpaid, authorize, pr await channelPage.clickSaveButton(); await channelPage.expectSuccessBanner(); }); -test("TC: SALEOR_99 Delete channel @e2e @channels", async () => { +test("TC: SALEOR_99 Delete channel #e2e #channels", async () => { await channelPage.gotoChannelList(); await channelPage.clickDeleteButtonOnRowContainingChannelName(CHANNELS.channelToBeDeleted.name); await channelPage.deleteChannelDialog.clickDeleteButton(); diff --git a/playwright/tests/collections.spec.ts b/playwright/tests/collections.spec.ts index 9a56d79bb0b..6f643d8dea4 100644 --- a/playwright/tests/collections.spec.ts +++ b/playwright/tests/collections.spec.ts @@ -10,7 +10,7 @@ let collectionsPage: CollectionsPage; test.beforeEach(({ page }) => { collectionsPage = new CollectionsPage(page); }); -test("TC: SALEOR_112 Create collection @collections @e2e", async () => { +test("TC: SALEOR_112 Create collection #collections #e2e", async () => { await collectionsPage.gotoCollectionsListView(); await collectionsPage.waitForDOMToFullyLoad(); await collectionsPage.clickCreateCollectionButton(); @@ -27,7 +27,7 @@ test("TC: SALEOR_112 Create collection @collections @e2e", async () => { await collectionsPage.clickSaveButton(); await collectionsPage.expectSuccessBanner(); }); -test("TC: SALEOR_113 Edit collection: assign product @collections @e2e", async () => { +test("TC: SALEOR_113 Edit collection: assign product #collections #e2e", async () => { const productToBeAssigned = "Bean Juice"; await collectionsPage.gotoExistingCollectionView(COLLECTIONS.collectionToBeUpdated.id); @@ -45,7 +45,7 @@ test("TC: SALEOR_113 Edit collection: assign product @collections @e2e", async ( `Only 1 category should be visible in table`, ).toEqual(1); }); -test("TC: SALEOR_114 Bulk delete collections @collections @e2e", async () => { +test("TC: SALEOR_114 Bulk delete collections #collections #e2e", async () => { await collectionsPage.gotoCollectionsListView(); await collectionsPage.waitForDOMToFullyLoad(); await collectionsPage.checkListRowsBasedOnContainingText( diff --git a/playwright/tests/customers.spec.ts b/playwright/tests/customers.spec.ts index 7ee59185bc3..2e27ebd5d55 100644 --- a/playwright/tests/customers.spec.ts +++ b/playwright/tests/customers.spec.ts @@ -28,7 +28,7 @@ test.beforeEach(({ page }) => { deleteAddressDialog = new DeleteAddressDialog(page); }); -test("TC: SALEOR_199 Create customer @e2e @customer", async () => { +test("TC: SALEOR_199 Create customer #e2e #customer", async () => { const firstName = faker.name.firstName(); const lastName = faker.name.lastName(); const note = faker.lorem.sentence(); @@ -56,7 +56,7 @@ test("TC: SALEOR_199 Create customer @e2e @customer", async () => { await expect(customersPage.customerEmailInput).toHaveValue(email.toLowerCase()); }); -test("TC: SALEOR_200 As an admin I should not be able to create customer with duplicated email @e2e @customer", async () => { +test("TC: SALEOR_200 As an admin I should not be able to create customer with duplicated email #e2e #customer", async () => { const firstName = faker.name.firstName(); const lastName = faker.name.lastName(); const note = faker.lorem.sentence(); @@ -78,7 +78,7 @@ test("TC: SALEOR_200 As an admin I should not be able to create customer with du await customersPage.expectErrorBannerMessage("User with this Email already exists."); }); -test("TC: SALEOR_201 Update customer account info @e2e @customer", async () => { +test("TC: SALEOR_201 Update customer account info #e2e #customer", async () => { const firstName = faker.name.firstName(); const lastName = faker.name.lastName(); const email = faker.internet.email(); @@ -97,7 +97,7 @@ test("TC: SALEOR_201 Update customer account info @e2e @customer", async () => { await expect(customersPage.customerEmailInput).toHaveValue(email.toLowerCase()); }); -test("TC: SALEOR_202 Deactivate a customer @e2e @customer", async () => { +test("TC: SALEOR_202 Deactivate a customer #e2e #customer", async () => { await customersPage.gotoCustomerDetailsPage(CUSTOMERS.customerToBeDeactivated.id); await customersPage.customerActiveCheckbox.click(); await customersPage.saveCustomer(); @@ -105,7 +105,7 @@ test("TC: SALEOR_202 Deactivate a customer @e2e @customer", async () => { await expect(customersPage.customerActiveCheckbox).not.toBeChecked(); }); -test("TC: SALEOR_203 Activate a customer @e2e @customer", async () => { +test("TC: SALEOR_203 Activate a customer #e2e #customer", async () => { await customersPage.gotoCustomerDetailsPage(CUSTOMERS.customerToBeActivated.id); await customersPage.customerActiveCheckbox.click(); await customersPage.saveCustomer(); @@ -113,7 +113,7 @@ test("TC: SALEOR_203 Activate a customer @e2e @customer", async () => { await expect(customersPage.customerActiveCheckbox).toBeChecked(); }); -test("TC: SALEOR_204 Delete customer from the details page @e2e @customer", async () => { +test("TC: SALEOR_204 Delete customer from the details page #e2e #customer", async () => { await customersPage.gotoCustomerDetailsPage(CUSTOMERS.deleteCustomer.id); await customersPage.deleteCustomer(); await customersPage.deleteDialog.clickDeleteButton(); @@ -123,7 +123,7 @@ test("TC: SALEOR_204 Delete customer from the details page @e2e @customer", asyn await expect(customersPage.emptyDataGridListView).toBeVisible(); }); -test("TC: SALEOR_205 Bulk delete customers @e2e @customer", async () => { +test("TC: SALEOR_205 Bulk delete customers #e2e #customer", async () => { const customersToBeBulkDeleted = CUSTOMERS.customersToBeBulkDeleted.names; await customersPage.goToCustomersListView(); @@ -139,7 +139,7 @@ test("TC: SALEOR_205 Bulk delete customers @e2e @customer", async () => { await expect(customersPage.emptyDataGridListView).toBeVisible(); }); -test("TC: SALEOR_206 As an admin I want to add address to the customer and set it as default shipping @e2e @customer", async () => { +test("TC: SALEOR_206 As an admin I want to add address to the customer and set it as default shipping #e2e #customer", async () => { await customersPage.gotoCustomerDetailsPage(CUSTOMERS.editCustomer.id); await addressesListPage.clickManageAddresses(); await addressesListPage.clickAddAddressButton(); @@ -167,7 +167,7 @@ test("TC: SALEOR_206 As an admin I want to add address to the customer and set i ); }); -test("TC: SALEOR_209 As an admin I want to update customer's address and set it as default billing @e2e @customer", async () => { +test("TC: SALEOR_209 As an admin I want to update customer's address and set it as default billing #e2e #customer", async () => { await customersPage.gotoCustomerDetailsPage(CUSTOMERS.editCustomer.id); await addressesListPage.clickManageAddresses(); await addressesListPage.clickShowMoreMenu(CUSTOMERS.editCustomer.initialShippingAddress.lastName); @@ -198,7 +198,7 @@ test("TC: SALEOR_209 As an admin I want to update customer's address and set it ); }); -test("TC: SALEOR_210 Delete customer's address @e2e @customer", async () => { +test("TC: SALEOR_210 Delete customer's address #e2e #customer", async () => { await customersPage.gotoCustomerDetailsPage(CUSTOMERS.editCustomer.id); await addressesListPage.clickManageAddresses(); await addressesListPage.clickShowMoreMenu(CUSTOMERS.editCustomer.initialBillingAddress.lastName); @@ -211,7 +211,7 @@ test("TC: SALEOR_210 Delete customer's address @e2e @customer", async () => { ).not.toBeVisible(); }); -test("TC: SALEOR_207 Issue a new gift card for the customer @e2e @customer", async () => { +test("TC: SALEOR_207 Issue a new gift card for the customer #e2e #customer", async () => { const amount = faker.datatype.number(1000).toPrecision(2).toString(); await customersPage.gotoCustomerDetailsPage(CUSTOMERS.editCustomer.id); diff --git a/playwright/tests/discounts.spec.ts b/playwright/tests/discounts.spec.ts index c576818bab4..e445f7b2f6b 100644 --- a/playwright/tests/discounts.spec.ts +++ b/playwright/tests/discounts.spec.ts @@ -15,7 +15,7 @@ test.beforeEach(({ page }) => { const discountType = ["Order", "Catalog"]; for (const type of discountType) { - test(`TC: SALEOR_149 Create promotion with ${type} predicate @discounts @e2e`, async () => { + test(`TC: SALEOR_149 Create promotion with ${type} predicate #discounts #e2e`, async () => { const discountName = `${faker.lorem.word()}+${type}`; await discounts.gotoListView(); @@ -36,7 +36,7 @@ for (const type of discountType) { }); } -test(`TC: SALEOR_151 Update existing promotion @discounts @e2e`, async () => { +test(`TC: SALEOR_151 Update existing promotion #discounts #e2e`, async () => { const newDiscountName = `${faker.lorem.word()}`; await discounts.gotoExistingDiscount(DISCOUNTS.promotionToBeEdited.id); @@ -67,7 +67,7 @@ const promotions = [ ]; for (const promotion of promotions) { - test(`TC: SALEOR_153 Delete existing ${promotion.name} @discounts @e2e`, async () => { + test(`TC: SALEOR_153 Delete existing ${promotion.name} #discounts #e2e`, async () => { await discounts.gotoExistingDiscount(promotion.id); await discounts.ruleSection.waitFor({ state: "visible", @@ -108,7 +108,7 @@ const rewardValue = "10"; const channelName = CHANNELS.channelPLN.name; for (const { promotionRule, predicateValue } of predicateValues) { - test(`TC: SALEOR_155 Create ${promotionRule} rule for ${predicateValue} in a catalogue promotion @discounts @e2e`, async () => { + test(`TC: SALEOR_155 Create ${promotionRule} rule for ${predicateValue} in a catalogue promotion #discounts #e2e`, async () => { await discounts.gotoExistingDiscount(promotion.id); await discounts.ruleSection.waitFor({ state: "visible", @@ -155,7 +155,7 @@ const notEqConditions = [conditionLte, conditionGte]; const orderPromotion = DISCOUNTS.orderPromotion; for (const { conditionType, value, conditionDesc } of notEqConditions) { - test(`TC: SALEOR_157 Create subtotal type rule with multiple conditions with ${conditionDesc} in order promotion @discounts @e2e`, async () => { + test(`TC: SALEOR_157 Create subtotal type rule with multiple conditions with ${conditionDesc} in order promotion #discounts #e2e`, async () => { await discounts.gotoExistingDiscount(orderPromotion.id); await discounts.ruleSection.waitFor({ state: "visible", @@ -196,7 +196,7 @@ const condition2 = { condition: "Total", gte: "20.00", lte: "50.00" }; const conditionsBetween = [condition1, condition2]; for (const { condition, lte, gte } of conditionsBetween) { - test(`TC: SALEOR_160 Create gift reward rule with ${condition} between ${gte} and ${lte} in order promotion @discounts @e2e`, async () => { + test(`TC: SALEOR_160 Create gift reward rule with ${condition} between ${gte} and ${lte} in order promotion #discounts #e2e`, async () => { await discounts.gotoExistingDiscount(orderPromotion.id); await discounts.ruleSection.waitFor({ state: "visible", @@ -236,7 +236,7 @@ const orderRules = [ ]; for (const rule of orderRules) { - test(`TC: SALEOR_163 Update promotion ${rule.name} from Order promotion @discounts @e2e`, async () => { + test(`TC: SALEOR_163 Update promotion ${rule.name} from Order promotion #discounts #e2e`, async () => { await discounts.gotoExistingDiscount(DISCOUNTS.orderPromotionWithRulesToBeUpdated.id); await discounts.ruleSection.waitFor({ state: "visible", @@ -288,7 +288,7 @@ const catalogRules = [ ]; for (const rule of catalogRules) { - test(`TC: SALEOR_166 Update promotion ${rule.name} from Catalog promotion @discounts @e2e`, async () => { + test(`TC: SALEOR_166 Update promotion ${rule.name} from Catalog promotion #discounts #e2e`, async () => { await discounts.gotoExistingDiscount(DISCOUNTS.catalogPromotionWithRulesToBeUpdated.id); await discounts.ruleSection.waitFor({ state: "visible", @@ -341,7 +341,7 @@ const promotionsWithRules = [ for (const promotion of promotionsWithRules) { for (const rule of promotion.rules) { - test(`TC: SALEOR_167 Delete promotion ${rule.name} from ${promotion.type} promotion @discounts @e2e`, async () => { + test(`TC: SALEOR_167 Delete promotion ${rule.name} from ${promotion.type} promotion #discounts #e2e`, async () => { await discounts.gotoExistingDiscount(promotion.id); await discounts.ruleSection.waitFor({ state: "visible", diff --git a/playwright/tests/giftCards.spec.ts b/playwright/tests/giftCards.spec.ts index 23582b4c1c2..62a84edf86e 100644 --- a/playwright/tests/giftCards.spec.ts +++ b/playwright/tests/giftCards.spec.ts @@ -13,7 +13,7 @@ test.beforeEach(async ({ page }) => { await giftCardsPage.gotoGiftCardsListView(); await giftCardsPage.waitForDOMToFullyLoad(); }); -test("TC: SALEOR_105 Issue gift card @e2e @gift", async () => { +test("TC: SALEOR_105 Issue gift card #e2e #gift", async () => { await giftCardsPage.clickIssueCardButton(); await expect(giftCardsPage.issueGiftCardDialog.amountDropdown).toBeVisible(); await giftCardsPage.issueGiftCardDialog.typeAmount("50"); @@ -35,7 +35,7 @@ test("TC: SALEOR_105 Issue gift card @e2e @gift", async () => { .getByText(`Code ending with ${code}`) .waitFor({ state: "attached", timeout: 30000 }); }); -test("TC: SALEOR_106 Issue gift card with specific customer and expiry date @e2e @gift", async () => { +test("TC: SALEOR_106 Issue gift card with specific customer and expiry date #e2e #gift", async () => { await giftCardsPage.clickIssueCardButton(); await giftCardsPage.issueGiftCardDialog.clickSendExpireDateCheckbox(); @@ -57,7 +57,7 @@ test("TC: SALEOR_106 Issue gift card with specific customer and expiry date @e2e "There should be only one gift card visible on list", ).toEqual(1); }); -test("TC: SALEOR_107 Resend code @e2e @gift", async () => { +test("TC: SALEOR_107 Resend code #e2e #gift", async () => { await giftCardsPage.clickListRowBasedOnContainingText(GIFT_CARDS.giftCardToResendCode.name); await giftCardsPage.clickResendCodeButton(); // This is a workaround for the issue with the dropdown focusing on dialog open @@ -66,19 +66,19 @@ test("TC: SALEOR_107 Resend code @e2e @gift", async () => { await giftCardsPage.resendGiftCardCodeDialog.clickResendButton(); await giftCardsPage.expectSuccessBanner(); }); -test("TC: SALEOR_108 Deactivate gift card @e2e @gift", async () => { +test("TC: SALEOR_108 Deactivate gift card #e2e #gift", async () => { await giftCardsPage.gotoExistingGiftCardView(GIFT_CARDS.giftCardToBeDeactivated.id); await giftCardsPage.clickDeactivateButton(); await giftCardsPage.expectSuccessBanner(); await expect(giftCardsPage.pageHeader).toContainText("Disabled"); }); -test("TC: SALEOR_109 Activate gift card @e2e @gift", async () => { +test("TC: SALEOR_109 Activate gift card #e2e #gift", async () => { await giftCardsPage.gotoExistingGiftCardView(GIFT_CARDS.giftCardToBeActivated.id); await giftCardsPage.clickDeactivateButton(); await giftCardsPage.expectSuccessBanner(); await expect(giftCardsPage.pageHeader).not.toContainText("Disabled"); }); -test("TC: SALEOR_110 Edit gift card @e2e @gift", async () => { +test("TC: SALEOR_110 Edit gift card #e2e #gift", async () => { await giftCardsPage.gotoExistingGiftCardView(GIFT_CARDS.giftCardToBeEdited.id); await giftCardsPage.openTagInput(); await giftCardsPage.selectFirstTag(); @@ -89,7 +89,7 @@ test("TC: SALEOR_110 Edit gift card @e2e @gift", async () => { await giftCardsPage.clickSaveButton(); await giftCardsPage.expectSuccessBanner(); }); -test("TC: SALEOR_111 Bulk delete gift cards @e2e @gift", async () => { +test("TC: SALEOR_111 Bulk delete gift cards #e2e #gift", async () => { await giftCardsPage.checkListRowsBasedOnContainingText(GIFT_CARDS.giftCardsToBeDeleted.names); await giftCardsPage.clickBulkDeleteButton(); await giftCardsPage.deleteDialog.clickConfirmDeletionCheckbox(); @@ -100,13 +100,13 @@ test("TC: SALEOR_111 Bulk delete gift cards @e2e @gift", async () => { await expect(giftCardsPage.gridCanvas).not.toContainText(`Code ending with ${last4Code}`); } }); -test("TC: SALEOR_181 Set gift card balance @e2e @gift", async () => { +test("TC: SALEOR_181 Set gift card balance #e2e #gift", async () => { await giftCardsPage.gotoExistingGiftCardView(GIFT_CARDS.giftCardToBeEdited.id); await giftCardsPage.clickSetBalance(); await giftCardsPage.setGiftCardsBalanceDialog.setBalance("34"); await giftCardsPage.expectSuccessBanner(); }); -test("TC: SALEOR_182 Export gift card codes in XLSX file @e2e @gift", async () => { +test("TC: SALEOR_182 Export gift card codes in XLSX file #e2e #gift", async () => { await giftCardsPage.clickShowMoreMenu(); await giftCardsPage.clickExportGiftCards(); await giftCardsPage.exportGiftCardsDialog.exportGiftCardCodes("XLSX"); @@ -115,7 +115,7 @@ test("TC: SALEOR_182 Export gift card codes in XLSX file @e2e @gift", async () = timeout: 30000, }); }); -test("TC: SALEOR_183 Export gift card codes in CSV file @e2e @gift", async () => { +test("TC: SALEOR_183 Export gift card codes in CSV file #e2e #gift", async () => { await giftCardsPage.clickShowMoreMenu(); await giftCardsPage.clickExportGiftCards(); await giftCardsPage.exportGiftCardsDialog.exportGiftCardCodes("CSV"); diff --git a/playwright/tests/home.spec.ts b/playwright/tests/home.spec.ts index 609c27c5122..2f3552a55fd 100644 --- a/playwright/tests/home.spec.ts +++ b/playwright/tests/home.spec.ts @@ -5,7 +5,7 @@ import { test } from "utils/testWithPermission"; test.use({ permissionName: "admin" }); -test("TC: SALEOR_29 Correct information on dashboard home page @e2e", async ({ page }) => { +test("TC: SALEOR_29 Correct information on dashboard home page #e2e", async ({ page }) => { const homePage = new HomePage(page); await page.goto(URL_LIST.homePage); diff --git a/playwright/tests/navigation.spec.ts b/playwright/tests/navigation.spec.ts index 83531c81120..e8c84d4cc96 100644 --- a/playwright/tests/navigation.spec.ts +++ b/playwright/tests/navigation.spec.ts @@ -20,13 +20,13 @@ test.beforeEach(({ page }) => { navigationDetailsPage = new NavigationDetailsPage(page); addNavigationMenuItemDialog = new AddNavigationMenuItemDialog(page); }); -test("TC: SALEOR_193 Should go to Navigation page @navigation @e2e", async () => { +test("TC: SALEOR_193 Should go to Navigation page #navigation #e2e", async () => { await config.goToConfigurationView(); await navigation.clickNavigationButtonFromConfiguration(); await expect(navigation.navigationHeader).toBeVisible(); await expect(navigation.navigationList).toBeVisible(); }); -test("TC: SALEOR_194 Should create a new menu navigation with menu item @navigation @e2e", async () => { +test("TC: SALEOR_194 Should create a new menu navigation with menu item #navigation #e2e", async () => { test.slow(); await navigation.goToNavigationView(); await navigation.createMenuButton.click(); @@ -51,7 +51,7 @@ test("TC: SALEOR_194 Should create a new menu navigation with menu item @navigat await expect(navigationDetailsPage.menuItemList).toContainText(menuItemName); }); // TODO: To be updated after https://linear.app/saleor/issue/MERX-307 is fixed -test("TC: SALEOR_198 Should update existing menu @navigation @e2e", async () => { +test("TC: SALEOR_198 Should update existing menu #navigation #e2e", async () => { await navigationDetailsPage.goToExistingMenuView(NAVIGATION_ITEMS.navigationMenuToBeUpdated.id); const menuItemToBeUpdated = NAVIGATION_ITEMS.navigationMenuToBeUpdated.menuItems[0]; @@ -92,7 +92,7 @@ test("TC: SALEOR_198 Should update existing menu @navigation @e2e", async () => await expect(currentMenuName).not.toBe(NAVIGATION_ITEMS.navigationMenuToBeUpdated.name); await expect(currentMenuName).toBe(newName); }); -test("TC: SALEOR_197 Should remove existing menu from it's details page @navigation @e2e", async () => { +test("TC: SALEOR_197 Should remove existing menu from it's details page #navigation #e2e", async () => { await navigationDetailsPage.goToExistingMenuView( NAVIGATION_ITEMS.navigationMenuToBeDeletedFromDetailsView.id, ); @@ -103,7 +103,7 @@ test("TC: SALEOR_197 Should remove existing menu from it's details page @navigat NAVIGATION_ITEMS.navigationMenuToBeDeletedFromDetailsView.name, ); }); -test("TC: SALEOR_195 Should remove a single menu from the list @navigation @e2e", async () => { +test("TC: SALEOR_195 Should remove a single menu from the list #navigation #e2e", async () => { await navigation.goToNavigationView(); await navigation.selectNavigationMenu(NAVIGATION_ITEMS.navigationMenuToBeDeletedFromList.name); await navigation.deleteSingleMenu(NAVIGATION_ITEMS.navigationMenuToBeDeletedFromList.name); @@ -113,7 +113,7 @@ test("TC: SALEOR_195 Should remove a single menu from the list @navigation @e2e" NAVIGATION_ITEMS.navigationMenuToBeDeletedFromList.name, ); }); -test("TC: SALEOR_196 Should bulk delete menus from the list @navigation @e2e", async () => { +test("TC: SALEOR_196 Should bulk delete menus from the list #navigation #e2e", async () => { await navigation.goToNavigationView(); await navigation.selectAll(); diff --git a/playwright/tests/orders.spec.ts b/playwright/tests/orders.spec.ts index 6a36ce1b320..5cbc1b266dc 100644 --- a/playwright/tests/orders.spec.ts +++ b/playwright/tests/orders.spec.ts @@ -33,7 +33,7 @@ test.beforeEach(({ page }) => { const variantSKU = PRODUCTS.productAvailableWithTransactionFlow.variant1sku; -test("TC: SALEOR_28 Create basic order @e2e @order", async () => { +test("TC: SALEOR_28 Create basic order #e2e #order", async () => { await ordersPage.goToOrdersListView(); await ordersPage.clickCreateOrderButton(); await ordersPage.orderCreateDialog.completeOrderCreateDialogWithFirstChannel(); @@ -50,7 +50,7 @@ test("TC: SALEOR_28 Create basic order @e2e @order", async () => { await draftOrdersPage.expectSuccessBanner({ message: "finalized" }); }); -test("TC: SALEOR_76 Create order with transaction flow activated @e2e @order", async () => { +test("TC: SALEOR_76 Create order with transaction flow activated #e2e #order", async () => { await ordersPage.goToOrdersListView(); await ordersPage.clickCreateOrderButton(); await ordersPage.orderCreateDialog.completeOrderCreateDialogWithTransactionChannel(); @@ -68,7 +68,7 @@ test("TC: SALEOR_76 Create order with transaction flow activated @e2e @order", a await draftOrdersPage.expectSuccessBanner({ message: "finalized" }); }); -test("TC: SALEOR_77 Mark order as paid and fulfill it with transaction flow activated @e2e @order", async () => { +test("TC: SALEOR_77 Mark order as paid and fulfill it with transaction flow activated #e2e #order", async () => { await ordersPage.goToExistingOrderPage( ORDERS.ordersWithinTransactionFlow.markAsPaidOrder.orderId, ); @@ -86,7 +86,7 @@ test("TC: SALEOR_77 Mark order as paid and fulfill it with transaction flow acti expect(await ordersPage.pageHeaderStatusInfo).toContainText("Fulfilled"); }); -test("TC: SALEOR_78 Capture partial amounts by manual transactions and fulfill order with transaction flow activated @e2e @order", async () => { +test("TC: SALEOR_78 Capture partial amounts by manual transactions and fulfill order with transaction flow activated #e2e #order", async () => { const firstManualTransactionAmount = "100"; const secondManualTransactionAmount = "20"; @@ -146,7 +146,7 @@ test("TC: SALEOR_78 Capture partial amounts by manual transactions and fulfill o ); }); -test("TC: SALEOR_79 Mark order as paid and fulfill it with regular flow @e2e @order", async () => { +test("TC: SALEOR_79 Mark order as paid and fulfill it with regular flow #e2e #order", async () => { await ordersPage.goToExistingOrderPage(ORDERS.orderToMarkAsPaidAndFulfill.id); await ordersPage.clickMarkAsPaidButton(); await ordersPage.markOrderAsPaidDialog.typeAndSaveOrderReference(); @@ -162,7 +162,7 @@ test("TC: SALEOR_79 Mark order as paid and fulfill it with regular flow @e2e @or expect(await ordersPage.pageHeaderStatusInfo).toContainText("Fulfilled"); }); -test("TC: SALEOR_80 Add tracking to order @e2e @order", async () => { +test("TC: SALEOR_80 Add tracking to order #e2e #order", async () => { const trackingNumber = "123456789"; await ordersPage.goToExistingOrderPage(ORDERS.orderToAddTrackingNumberTo.id); @@ -172,7 +172,7 @@ test("TC: SALEOR_80 Add tracking to order @e2e @order", async () => { await expect(ordersPage.setTrackingNumber).toContainText(trackingNumber); }); -test("TC: SALEOR_81 Change billing address in fulfilled order @e2e @order", async () => { +test("TC: SALEOR_81 Change billing address in fulfilled order #e2e #order", async () => { await ordersPage.goToExistingOrderPage(ORDERS.orderFulfilledToChangeBillingAddress.id); await ordersPage.rightSideDetailsPage.clickEditBillingAddressButton(); await ordersPage.addressDialog.clickNewAddressRadioButton(); @@ -199,7 +199,7 @@ test("TC: SALEOR_81 Change billing address in fulfilled order @e2e @order", asyn ); }); -test("TC: SALEOR_82 Change shipping address in not fulfilled order @e2e @order", async () => { +test("TC: SALEOR_82 Change shipping address in not fulfilled order #e2e #order", async () => { await ordersPage.goToExistingOrderPage(ORDERS.orderNotFulfilledToChangeShippingAddress.id); await ordersPage.rightSideDetailsPage.clickEditShippingAddressButton(); await ordersPage.addressDialog.clickNewAddressRadioButton(); @@ -221,7 +221,7 @@ test("TC: SALEOR_82 Change shipping address in not fulfilled order @e2e @order", ); }); -test("TC: SALEOR_83 Draft orders bulk delete @e2e @draft", async () => { +test("TC: SALEOR_83 Draft orders bulk delete #e2e #draft", async () => { await draftOrdersPage.goToDraftOrdersListView(); await draftOrdersPage.checkListRowsBasedOnContainingText(ORDERS.draftOrdersToBeDeleted.ids); await draftOrdersPage.clickBulkDeleteButton(); @@ -234,7 +234,7 @@ test("TC: SALEOR_83 Draft orders bulk delete @e2e @draft", async () => { ).toEqual([]); }); -test("TC: SALEOR_84 Create draft order @e2e @draft", async () => { +test("TC: SALEOR_84 Create draft order #e2e #draft", async () => { test.slow(); await draftOrdersPage.goToDraftOrdersListView(); await draftOrdersPage.clickCreateDraftOrderButton(); @@ -264,7 +264,7 @@ test("TC: SALEOR_84 Create draft order @e2e @draft", async () => { await draftOrdersPage.expectSuccessBanner({ message: "finalized" }); }); -test("TC: SALEOR_191 Refund products from the fully paid order @e2e @refunds", async () => { +test("TC: SALEOR_191 Refund products from the fully paid order #e2e @refunds", async () => { // All steps of this test pass (including after hooks), but Playwright // marks it as failed because of exceeding 30s timeout test.slow(); @@ -302,7 +302,7 @@ test("TC: SALEOR_191 Refund products from the fully paid order @e2e @refunds", a await refundPage.expectSuccessBanner({ message: "Refund has been sent" }); }); -test("TC: SALEOR_192 Should create a manual refund with a custom amount @e2e @refunds", async () => { +test("TC: SALEOR_192 Should create a manual refund with a custom amount #e2e @refunds", async () => { const order = ORDERS.fullyPaidOrderWithSeveralTransactions; await ordersPage.goToExistingOrderPage(order.id); @@ -328,7 +328,7 @@ test("TC: SALEOR_192 Should create a manual refund with a custom amount @e2e @re const orderRefunds = ORDERS.orderWithRefundsInStatusOtherThanSuccess.refunds; for (const refund of orderRefunds) { - test(`TC: SALEOR_193 Update order with non-manual refund in ${refund.status} status @e2e @refunds`, async () => { + test(`TC: SALEOR_193 Update order with non-manual refund in ${refund.status} status #e2e @refunds`, async () => { await ordersPage.goToExistingOrderPage(ORDERS.orderWithRefundsInStatusOtherThanSuccess.id); await ordersPage.orderRefundList.scrollIntoViewIfNeeded(); @@ -349,7 +349,7 @@ for (const refund of orderRefunds) { }); } -test(`TC: SALEOR_215 Inline discount is applied in a draft order @draft @discounts @e2e`, async () => { +test(`TC: SALEOR_215 Inline discount is applied in a draft order #draft #discounts #e2e`, async () => { test.slow(); const calculateDiscountedPrice = ( @@ -400,7 +400,7 @@ test(`TC: SALEOR_215 Inline discount is applied in a draft order @draft @discoun expect(formatPrice(finalTotal).toFixed(2)).toEqual(expectedTotal); }); -test(`TC: SALEOR_216 Order type discount is applied to a draft order @draft @discounts @e2e`, async () => { +test(`TC: SALEOR_216 Order type discount is applied to a draft order #draft #discounts #e2e`, async () => { test.slow(); await draftOrdersPage.goToDraftOrdersListView(); await draftOrdersPage.clickCreateDraftOrderButton(); @@ -464,7 +464,7 @@ 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 () => { +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; diff --git a/playwright/tests/pageTypes.spec.ts b/playwright/tests/pageTypes.spec.ts index daa86eef67e..ebc566df943 100644 --- a/playwright/tests/pageTypes.spec.ts +++ b/playwright/tests/pageTypes.spec.ts @@ -8,7 +8,7 @@ test.use({ permissionName: "admin" }); const pageTypeName = `e2e-page-type-${faker.datatype.number()}`; -test("TC: SALEOR_187 As an admin user I can create page type @e2e @page-type", async ({ page }) => { +test("TC: SALEOR_187 As an admin user I can create page type #e2e #page-type", async ({ page }) => { const pageTypePage = new PageTypesPage(page); await pageTypePage.gotoPageTypeListPage(); @@ -20,7 +20,7 @@ test("TC: SALEOR_187 As an admin user I can create page type @e2e @page-type", a await pageTypePage.gotoPageTypeListPage(); await expect(pageTypePage.pageTypeList).toContainText(pageTypeName); }); -test("TC: SALEOR_188 As an admin user I can update page type@e2e @page-type", async ({ page }) => { +test("TC: SALEOR_188 As an admin user I can update page type#e2e #page-type", async ({ page }) => { const pageTypePage = new PageTypesPage(page); const updatedPageTypeName = `updated-e2e-page-type-${faker.datatype.number()}`; const attributeName = ATTRIBUTES.attributeToBeAssignedToPageType.name; @@ -34,7 +34,7 @@ test("TC: SALEOR_188 As an admin user I can update page type@e2e @page-type", as await pageTypePage.expectSuccessBanner(); await expect(pageTypePage.pageAttributes).toContainText(attributeName); }); -test("TC: SALEOR_189 As an admin user I can delete page type with assigned content@e2e @page-type", async ({ +test("TC: SALEOR_189 As an admin user I can delete page type with assigned content#e2e #page-type", async ({ page, }) => { const pageTypePage = new PageTypesPage(page); @@ -49,7 +49,7 @@ test("TC: SALEOR_189 As an admin user I can delete page type with assigned conte await pageTypePage.gotoPageTypeListPage(); await expect(pageTypePage.pageTypeList).not.toContainText(pageType.name); }); -test("TC: SALEOR_190 As an admin user I can delete several page types@e2e @page-type", async ({ +test("TC: SALEOR_190 As an admin user I can delete several page types#e2e #page-type", async ({ page, }) => { const pageTypePage = new PageTypesPage(page); diff --git a/playwright/tests/permissionGroup.spec.ts b/playwright/tests/permissionGroup.spec.ts index b9c745347a1..50d1c665216 100644 --- a/playwright/tests/permissionGroup.spec.ts +++ b/playwright/tests/permissionGroup.spec.ts @@ -23,13 +23,13 @@ test.beforeEach(({ page }) => { assignmentDialog = new AssignPermissionGroupMembersDialog(page); unassignDialog = new UnassignPermissionGroupMembersDialog(page); }); -test("TC: SALEOR_139 Should be able to navigate to permission groups page @permissions @e2e", async () => { +test("TC: SALEOR_139 Should be able to navigate to permission groups page #permissions #e2e", async () => { await config.goToConfigurationView(); await config.permissionGroupsButton.scrollIntoViewIfNeeded(); await config.openPermissionGroups(); await expect(permissions.permissionGroupsList).toBeVisible(); }); -test("TC: SALEOR_133 Should be able to create new permission group @permissions @e2e", async () => { +test("TC: SALEOR_133 Should be able to create new permission group #permissions #e2e", async () => { await permissions.gotoPermissionGroupsView(); await permissions.clickCreatePermissionGroupButton(); @@ -79,7 +79,7 @@ test("TC: SALEOR_133 Should be able to create new permission group @permissions ).toBeChecked(); } }); -test("TC: SALEOR_134 Should be able to edit existing permission group @permissions @e2e", async () => { +test("TC: SALEOR_134 Should be able to edit existing permission group #permissions #e2e", async () => { await permissions.gotoPermissionGroupsView(); const permission = PERMISSION_GROUPS.permissionGroupToBeEdited; @@ -162,7 +162,7 @@ test("TC: SALEOR_134 Should be able to edit existing permission group @permissio timeout: 50000, }); }); -test("TC: SALEOR_135 Should be able to delete single permission group @permissions @e2e", async () => { +test("TC: SALEOR_135 Should be able to delete single permission group #permissions #e2e", async () => { await permissions.gotoPermissionGroupsView(); const permission = PERMISSION_GROUPS.permissionGroupToBeDeleted; diff --git a/playwright/tests/product.spec.ts b/playwright/tests/product.spec.ts index 80a06510d47..8a6d9509432 100644 --- a/playwright/tests/product.spec.ts +++ b/playwright/tests/product.spec.ts @@ -17,7 +17,7 @@ test.beforeEach(({ page }) => { productCreateDialog = new ProductCreateDialog(page); variantsPage = new VariantsPage(page); }); -test("TC: SALEOR_3 Create basic product with variants @e2e @product", async () => { +test("TC: SALEOR_3 Create basic product with variants #e2e #product", async () => { await productPage.gotoProductListPage(); await productPage.clickCreateProductButton(); await productCreateDialog.selectProductTypeWithVariants(); @@ -30,7 +30,7 @@ test("TC: SALEOR_3 Create basic product with variants @e2e @product", async () = await productPage.clickSaveButton(); await productPage.expectSuccessBanner(); }); -test("TC: SALEOR_5 Create basic - single product type - product without variants @e2e @product", async () => { +test("TC: SALEOR_5 Create basic - single product type - product without variants #e2e #product", async () => { await productPage.gotoCreateProductPage(PRODUCTS.singleProductType.id); await productPage.rightSideDetailsPage.selectOneChannelAsAvailableWhenMoreSelected("Channel-PLN"); await productPage.typeNameDescAndRating(); @@ -43,7 +43,7 @@ test("TC: SALEOR_5 Create basic - single product type - product without variants await productPage.clickSaveButton(); await productPage.expectSuccessBanner(); }); -test("TC: SALEOR_26 Create basic info variant - via edit variant page @e2e @product", async () => { +test("TC: SALEOR_26 Create basic info variant - via edit variant page #e2e #product", async () => { const variantName = `TC: SALEOR_26 - variant name - ${new Date().toISOString()}`; await productPage.gotoExistingProductPage(PRODUCTS.productWithOneVariant.id); @@ -65,7 +65,7 @@ test("TC: SALEOR_26 Create basic info variant - via edit variant page @e2e @prod `New variant name: ${variantName} should be visible on the list`, ).toBeVisible(); }); -test("TC: SALEOR_27 Create full info variant - via edit variant page @e2e @product", async () => { +test("TC: SALEOR_27 Create full info variant - via edit variant page #e2e #product", async () => { const variantName = `TC: SALEOR_27 - variant name - ${new Date().toISOString()}`; await productPage.gotoExistingProductPage(PRODUCTS.productWithOneVariant.id); @@ -95,7 +95,7 @@ test("TC: SALEOR_27 Create full info variant - via edit variant page @e2e @produ await variantsPage.clickSaveVariantButton(); await variantsPage.expectSuccessBanner(); }); -test("TC: SALEOR_44 As an admin I should be able to delete a several products @basic-regression @product @e2e", async () => { +test("TC: SALEOR_44 As an admin I should be able to delete a several products @basic-regression #product #e2e", async () => { await productPage.gotoProductListPage(); await productPage.searchAndFindRowIndexes("a product to be deleted via bulk"); @@ -112,7 +112,7 @@ test("TC: SALEOR_44 As an admin I should be able to delete a several products @b `Given products: ${PRODUCTS.productsToBeBulkDeleted.names} should be deleted from the list`, ).toEqual([]); }); -test("TC: SALEOR_45 As an admin I should be able to delete a single products @basic-regression @product @e2e", async () => { +test("TC: SALEOR_45 As an admin I should be able to delete a single products @basic-regression #product #e2e", async () => { await productPage.gotoExistingProductPage( PRODUCTS.productWithOneVariantToBeDeletedFromDetails.id, ); @@ -127,7 +127,7 @@ test("TC: SALEOR_45 As an admin I should be able to delete a single products @ba }), ).not.toBeVisible(); }); -test("TC: SALEOR_46 As an admin, I should be able to update a product by uploading media, assigning channels, assigning tax, and adding a new variant @basic-regression @product @e2e", async () => { +test("TC: SALEOR_46 As an admin, I should be able to update a product by uploading media, assigning channels, assigning tax, and adding a new variant @basic-regression #product #e2e", async () => { const newVariantName = "variant 2"; await productPage.gotoExistingProductPage(PRODUCTS.singleProductTypeToBeUpdated.id); @@ -164,7 +164,7 @@ test("TC: SALEOR_46 As an admin, I should be able to update a product by uploadi "Newly added single image should be present", ).toEqual(1); }); -test("TC: SALEOR_56 As an admin, I should be able to export products from single channel as CSV file @basic-regression @product @e2e", async () => { +test("TC: SALEOR_56 As an admin, I should be able to export products from single channel as CSV file @basic-regression #product #e2e", async () => { await productPage.gotoProductListPage(); await productPage.clickCogShowMoreButtonButton(); await productPage.clickExportButton(); @@ -175,7 +175,7 @@ test("TC: SALEOR_56 As an admin, I should be able to export products from single await productPage.exportProductsDialog.clickSubmitButton(); await productPage.expectInfoBanner(); }); -test("TC: SALEOR_57 As an admin, I should be able to search products on list view @basic-regression @product @e2e", async () => { +test("TC: SALEOR_57 As an admin, I should be able to search products on list view @basic-regression #product #e2e", async () => { await productPage.gotoProductListPage(); await productPage.searchAndFindRowIndexes(PRODUCTS.productToAddVariants.name); await productPage.checkListRowsBasedOnContainingText([PRODUCTS.productToAddVariants.name]); @@ -184,7 +184,7 @@ test("TC: SALEOR_57 As an admin, I should be able to search products on list vie "There should be only one product visible on list", ).toEqual(1); }); -test("TC: SALEOR_58 As an admin I should be able use pagination on product list view @basic-regression @product @e2e", async () => { +test("TC: SALEOR_58 As an admin I should be able use pagination on product list view @basic-regression #product #e2e", async () => { await productPage.gotoProductListPage(); const firstPageProductName = await productPage.getGridCellText(0, 0); @@ -209,7 +209,7 @@ test("TC: SALEOR_58 As an admin I should be able use pagination on product list `Product from first page: ${firstPageProductName} should be visible again`, ).toContainText(firstPageProductName); }); -test("TC: SALEOR_59 As an admin I should be able to filter products by channel on product list view @basic-regression @product @e2e", async () => { +test("TC: SALEOR_59 As an admin I should be able to filter products by channel on product list view @basic-regression #product #e2e", async () => { await productPage.gotoProductListPage(); await productPage.searchAndFindRowIndexes(PRODUCTS.productAvailableOnlyInUsdChannel.name); expect( @@ -229,7 +229,7 @@ test("TC: SALEOR_59 As an admin I should be able to filter products by channel o `Product: ${PRODUCTS.productAvailableOnlyInPlnChannel.name} should be visible on grid table`, ).toContainText(PRODUCTS.productAvailableOnlyInPlnChannel.name); }); -test("TC: SALEOR_60 As an admin I should be able update existing variant @basic-regression @product @e2e", async () => { +test("TC: SALEOR_60 As an admin I should be able update existing variant @basic-regression #product #e2e", async () => { const variantName = `TC: SALEOR_60 - variant name - ${new Date().toISOString()}`; const sku = `SALEOR_60-sku-${new Date().toISOString()}`; @@ -260,7 +260,7 @@ test("TC: SALEOR_60 As an admin I should be able update existing variant @basic- ).toBeVisible(); await productPage.productImage.waitFor({ state: "visible" }); }); -test("TC: SALEOR_61 As an admin I should be able to delete existing variant @basic-regression @product @e2e", async () => { +test("TC: SALEOR_61 As an admin I should be able to delete existing variant @basic-regression #product #e2e", async () => { await variantsPage.gotoExistingVariantPage( PRODUCTS.singleVariantDeleteProduct.productId, PRODUCTS.singleVariantDeleteProduct.variantId, @@ -277,7 +277,7 @@ test("TC: SALEOR_61 As an admin I should be able to delete existing variant @bas "Deleting last variant from variant details page should redirect to product page", ).toContain(PRODUCTS.singleVariantDeleteProduct.productId); }); -test("TC: SALEOR_62 As an admin I should be able to bulk delete existing variants @basic-regression @product @e2e", async () => { +test("TC: SALEOR_62 As an admin I should be able to bulk delete existing variants @basic-regression #product #e2e", async () => { await productPage.gotoExistingProductPage(PRODUCTS.multipleVariantsBulkDeleteProduct.productId); await productPage.waitForGrid(); await productPage.gridCanvas.scrollIntoViewIfNeeded(); diff --git a/playwright/tests/productTypes.spec.ts b/playwright/tests/productTypes.spec.ts index 2d02ae42dc5..595e9807612 100644 --- a/playwright/tests/productTypes.spec.ts +++ b/playwright/tests/productTypes.spec.ts @@ -8,7 +8,7 @@ test.use({ permissionName: "admin" }); const productTypeName = `e2e-product-type-${faker.datatype.number()}`; -test("TC: SALEOR_1 Create basic product type @e2e @product-type", async ({ page }) => { +test("TC: SALEOR_1 Create basic product type #e2e #product-type", async ({ page }) => { const productTypePage = new ProductTypePage(page); await productTypePage.gotoProductTypeListPage(); @@ -19,7 +19,7 @@ test("TC: SALEOR_1 Create basic product type @e2e @product-type", async ({ page await productTypePage.expectSuccessBanner(); await expect(productTypePage.nameInput).toHaveValue(productTypeName); }); -test("TC: SALEOR_2 Create gift card product type @e2e @product-type", async ({ page }) => { +test("TC: SALEOR_2 Create gift card product type #e2e #product-type", async ({ page }) => { const productTypePage = new ProductTypePage(page); await productTypePage.gotoAddProductTypePage(); @@ -29,7 +29,7 @@ test("TC: SALEOR_2 Create gift card product type @e2e @product-type", async ({ p await productTypePage.expectSuccessBanner(); await expect(productTypePage.nameInput).toHaveValue(productTypeName); }); -test("TC: SALEOR_184 As a admin I can edit product type @e2e @product-type", async ({ page }) => { +test("TC: SALEOR_184 As a admin I can edit product type #e2e #product-type", async ({ page }) => { const productTypePage = new ProductTypePage(page); const updatedProductTypeName = `updated-e2e-product-type-${faker.datatype.number()}`; @@ -42,7 +42,7 @@ test("TC: SALEOR_184 As a admin I can edit product type @e2e @product-type", asy await expect(productTypePage.shippingWeightInput).toHaveValue("10"); await expect(productTypePage.nameInput).toHaveValue(updatedProductTypeName); }); -test("TC: SALEOR_185 As a admin user I can delete product type with assigned products @e2e @product-type", async ({ +test("TC: SALEOR_185 As a admin user I can delete product type with assigned products #e2e #product-type", async ({ page, }) => { const productTypePage = new ProductTypePage(page); @@ -59,7 +59,7 @@ test("TC: SALEOR_185 As a admin user I can delete product type with assigned pro }); await expect(productTypePage.productTypeList).not.toContainText(productTypeName); }); -test("TC: SALEOR_186 As a admin user I can delete several product types @e2e @product-type", async ({ +test("TC: SALEOR_186 As a admin user I can delete several product types #e2e #product-type", async ({ page, }) => { const productTypePage = new ProductTypePage(page); diff --git a/playwright/tests/shippingMethods.spec.ts b/playwright/tests/shippingMethods.spec.ts index c36c6e0a646..df17d5f6807 100644 --- a/playwright/tests/shippingMethods.spec.ts +++ b/playwright/tests/shippingMethods.spec.ts @@ -14,7 +14,7 @@ test.beforeEach(({ page }) => { shippingMethodsPage = new ShippingMethodsPage(page); shippingRatesPage = new ShippingRatesPage(page); }); -test("TC: SALEOR_31 Create basic shipping method @shipping-method @e2e", async () => { +test("TC: SALEOR_31 Create basic shipping method #shipping-method #e2e", async () => { await shippingMethodsPage.gotoListView(); await shippingMethodsPage.clickCreateShippingZoneButton(); await shippingMethodsPage.typeShippingZoneName(); @@ -30,7 +30,7 @@ test("TC: SALEOR_31 Create basic shipping method @shipping-method @e2e", async ( await shippingMethodsPage.saveShippingZone(); await shippingMethodsPage.expectSuccessBanner(); }); -test("TC: SALEOR_32 Add price rate to shipping method - with excluded zip codes and excluded product @shipping-method @e2e", async () => { +test("TC: SALEOR_32 Add price rate to shipping method - with excluded zip codes and excluded product #shipping-method #e2e", async () => { await shippingMethodsPage.gotoExistingShippingMethod( SHIPPING_METHODS.shippingMethodWithoutRates.id, SHIPPING_METHODS.shippingMethodWithoutRates.name, @@ -52,7 +52,7 @@ test("TC: SALEOR_32 Add price rate to shipping method - with excluded zip codes await expect(shippingRatesPage.excludedProductsRows).toContainText("Bean Juice"); await expect(await shippingRatesPage.assignedPostalCodesRows.count()).toEqual(1); }); -test("TC: SALEOR_33 Add weight rate to shipping method - with included zip codes and excluded product @shipping-method @e2e", async () => { +test("TC: SALEOR_33 Add weight rate to shipping method - with included zip codes and excluded product #shipping-method #e2e", async () => { await shippingMethodsPage.gotoExistingShippingMethod( SHIPPING_METHODS.shippingMethodWithoutRates.id, SHIPPING_METHODS.shippingMethodWithoutRates.name, @@ -74,7 +74,7 @@ test("TC: SALEOR_33 Add weight rate to shipping method - with included zip codes await shippingRatesPage.excludedProductsRows.waitFor({ state: "visible" }); await expect(shippingRatesPage.excludedProductsRows).toContainText("Bean Juice"); }); -test("TC: SALEOR_34 Delete a single shipping rate from the shipping zone details page @shipping-method @e2e", async () => { +test("TC: SALEOR_34 Delete a single shipping rate from the shipping zone details page #shipping-method #e2e", async () => { await shippingMethodsPage.gotoExistingShippingMethod( SHIPPING_METHODS.shippingMethodWithRatesToBeDeleted.id, SHIPPING_METHODS.shippingMethodWithRatesToBeDeleted.name, @@ -91,7 +91,7 @@ test("TC: SALEOR_34 Delete a single shipping rate from the shipping zone details await expect(shippingMethodsPage.priceBasedRatesSection).toContainText("No shipping rates found"); await expect(shippingMethodsPage.priceBasedRatesSection).not.toContainText(priceBasedRate); }); -test("TC: SALEOR_35 Delete a single shipping rate from its details page @shipping-method @e2e", async () => { +test("TC: SALEOR_35 Delete a single shipping rate from its details page #shipping-method #e2e", async () => { const shippingMethodId = SHIPPING_METHODS.shippingMethodWithRatesToBeDeleted.id; const shippingRateId = SHIPPING_METHODS.shippingMethodWithRatesToBeDeleted.rates.weightBasedRateToBeDeleted.id; @@ -107,7 +107,7 @@ test("TC: SALEOR_35 Delete a single shipping rate from its details page @shippin ); await expect(shippingMethodsPage.weightBasedRatesSection).not.toContainText(weightBasedRate); }); -test("TC: SALEOR_36 Delete shipping zones in bulk @shipping-method @e2e", async () => { +test("TC: SALEOR_36 Delete shipping zones in bulk #shipping-method #e2e", async () => { const shippingZone1 = SHIPPING_METHODS.shippingMethodToBeBulkDeleted1.name; const shippingZone2 = SHIPPING_METHODS.shippingMethodToBeBulkDeleted2.name; const shippingZone3 = SHIPPING_METHODS.shippingMethodToBeBulkDeleted3.name; @@ -122,7 +122,7 @@ test("TC: SALEOR_36 Delete shipping zones in bulk @shipping-method @e2e", async await shippingMethodsPage.deleteShippingMethodDialog.clickDeleteButton(); await shippingMethodsPage.expectSuccessBanner(); }); -test("TC: SALEOR_37 Update a shipping method @shipping-method @e2e", async () => { +test("TC: SALEOR_37 Update a shipping method #shipping-method #e2e", async () => { const channelSection = shippingMethodsPage.rightSideDetailsPage.channelSection; const alreadyAssignedChannels = [CHANNELS.channelUSD.name]; const channelsToBeAssigned = [CHANNELS.channelPLN.name]; diff --git a/playwright/tests/singlePermissions/apps.spec.ts b/playwright/tests/singlePermissions/apps.spec.ts index d06257134c9..a2eee154e10 100644 --- a/playwright/tests/singlePermissions/apps.spec.ts +++ b/playwright/tests/singlePermissions/apps.spec.ts @@ -15,7 +15,7 @@ test.beforeEach(async ({ page }) => { appsPage = new AppsPage(page); home = new HomePage(page); }); -test("TC: SALEOR_10 User should be able to navigate to apps list as a staff member using APP permission @e2e", async () => { +test("TC: SALEOR_10 User should be able to navigate to apps list as a staff member using APP permission #e2e", async () => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); await mainMenuPage.openApps(); diff --git a/playwright/tests/singlePermissions/channelsWebhooks.spec.ts b/playwright/tests/singlePermissions/channelsWebhooks.spec.ts index 906d180110c..e70fc811aee 100644 --- a/playwright/tests/singlePermissions/channelsWebhooks.spec.ts +++ b/playwright/tests/singlePermissions/channelsWebhooks.spec.ts @@ -30,14 +30,14 @@ test.beforeEach(async ({ page }) => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); }); -test("TC: SALEOR_11 User should be able to navigate to channel list as a staff member using CHANNEL permission @e2e", async () => { +test("TC: SALEOR_11 User should be able to navigate to channel list as a staff member using CHANNEL permission #e2e", async () => { await mainMenuPage.openConfiguration(); await mainMenuPage.expectMenuItemsCount(3); await configurationPage.openChannels(); await expect(channelPage.createChannelButton).toBeVisible(); await expect(channelPage.deleteChannelButton.first()).toBeVisible(); }); -test("TC: SALEOR_12 User should be able to navigate to webhooks and events as a staff member using CHANNEL permission @e2e", async () => { +test("TC: SALEOR_12 User should be able to navigate to webhooks and events as a staff member using CHANNEL permission #e2e", async () => { await configurationPage.goToConfigurationView(); await mainMenuPage.expectMenuItemsCount(3); await configurationPage.openWebhooksAndEvents(); diff --git a/playwright/tests/singlePermissions/contentPage.spec.ts b/playwright/tests/singlePermissions/contentPage.spec.ts index 344be848dbe..01c85db622d 100644 --- a/playwright/tests/singlePermissions/contentPage.spec.ts +++ b/playwright/tests/singlePermissions/contentPage.spec.ts @@ -34,13 +34,13 @@ test.beforeEach(async ({ page }) => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); }); -test("TC: SALEOR_14 User should be able to navigate to content list as a staff member using CONTENT aka PAGE permission @e2e", async () => { +test("TC: SALEOR_14 User should be able to navigate to content list as a staff member using CONTENT aka PAGE permission #e2e", async () => { await mainMenuPage.openContent(); await expect(contentPage.createContentButton).toBeVisible(); await mainMenuPage.expectMenuItemsCount(4); await basePage.expectGridToBeAttached(); }); -test("TC: SALEOR_15 User should be able to navigate to page types list as a staff member using CONTENT aka PAGE permission @e2e", async () => { +test("TC: SALEOR_15 User should be able to navigate to page types list as a staff member using CONTENT aka PAGE permission #e2e", async () => { await configurationPage.goToConfigurationView(); await expect(configurationPage.taxesButton).toBeVisible(); await expect(configurationPage.pageTypesButton).toBeVisible(); diff --git a/playwright/tests/singlePermissions/customer.spec.ts b/playwright/tests/singlePermissions/customer.spec.ts index 1bd88947fb2..fb6eb4ebc48 100644 --- a/playwright/tests/singlePermissions/customer.spec.ts +++ b/playwright/tests/singlePermissions/customer.spec.ts @@ -7,7 +7,7 @@ import { test } from "utils/testWithPermission"; test.use({ permissionName: "customer" }); -test("TC: SALEOR_13 User should be able to navigate to customer list as a staff member using CUSTOMER permission @e2e", async ({ +test("TC: SALEOR_13 User should be able to navigate to customer list as a staff member using CUSTOMER permission #e2e", async ({ page, }) => { const basePage = new BasePage(page); diff --git a/playwright/tests/singlePermissions/discount.spec.ts b/playwright/tests/singlePermissions/discount.spec.ts index 921e473c38e..1cdd5b361e6 100644 --- a/playwright/tests/singlePermissions/discount.spec.ts +++ b/playwright/tests/singlePermissions/discount.spec.ts @@ -30,13 +30,13 @@ test.beforeEach(async ({ page }) => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); }); -test("TC: SALEOR_6 User should be able to navigate to discount list as a staff member using DISCOUNTS permission @e2e", async () => { +test("TC: SALEOR_6 User should be able to navigate to discount list as a staff member using DISCOUNTS permission #e2e", async () => { await mainMenuPage.openDiscounts(); await basePage.waitForGrid(); await expect(discountsPage.createDiscountButton).toBeVisible(); await mainMenuPage.expectMenuItemsCount(4); }); -test("TC: SALEOR_7 User should be able to navigate to voucher list as a staff member using DISCOUNTS permission @e2e", async () => { +test("TC: SALEOR_7 User should be able to navigate to voucher list as a staff member using DISCOUNTS permission #e2e", async () => { await mainMenuPage.openVouchers(); await basePage.waitForGrid(); await expect(vouchersPage.createVoucherButton).toBeVisible(); diff --git a/playwright/tests/singlePermissions/orders.spec.ts b/playwright/tests/singlePermissions/orders.spec.ts index fd5e6cc8ae7..f3d953653da 100644 --- a/playwright/tests/singlePermissions/orders.spec.ts +++ b/playwright/tests/singlePermissions/orders.spec.ts @@ -21,13 +21,13 @@ test.beforeEach(async ({ page }) => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); }); -test("TC: SALEOR_8 User should be able to navigate to order list as a staff member using ORDER permission @e2e", async () => { +test("TC: SALEOR_8 User should be able to navigate to order list as a staff member using ORDER permission #e2e", async () => { await mainMenuPage.openOrders(); await expect(ordersPage.createOrderButton).toBeVisible(); await ordersPage.expectGridToBeAttached(); await mainMenuPage.expectMenuItemsCount(4); }); -test("TC: SALEOR_9 User should be able to navigate to draft list as a staff member using ORDER permission @e2e", async () => { +test("TC: SALEOR_9 User should be able to navigate to draft list as a staff member using ORDER permission #e2e", async () => { await mainMenuPage.openDrafts(); await expect(draftOrdersPage.createDraftOrderButton).toBeVisible(); await draftOrdersPage.expectGridToBeAttached(); diff --git a/playwright/tests/singlePermissions/plugins.spec.ts b/playwright/tests/singlePermissions/plugins.spec.ts index 304a294b93a..80a27049840 100644 --- a/playwright/tests/singlePermissions/plugins.spec.ts +++ b/playwright/tests/singlePermissions/plugins.spec.ts @@ -15,7 +15,7 @@ test.beforeEach(({ page }) => { mainMenuPage = new MainMenuPage(page); pluginsPage = new PluginsPage(page); }); -test("TC: SALEOR_16 User should be able to navigate to plugin list as a staff member using PLUGINS permission @e2e", async () => { +test("TC: SALEOR_16 User should be able to navigate to plugin list as a staff member using PLUGINS permission #e2e", async () => { await configurationPage.goToConfigurationView(); await configurationPage.openPlugins(); await expect(pluginsPage.pluginRow.first()).toBeVisible(); diff --git a/playwright/tests/singlePermissions/product.spec.ts b/playwright/tests/singlePermissions/product.spec.ts index c3107fc3920..809ef4b7bf7 100644 --- a/playwright/tests/singlePermissions/product.spec.ts +++ b/playwright/tests/singlePermissions/product.spec.ts @@ -21,7 +21,7 @@ test.beforeEach(({ page }) => { categoriesPage = new CategoriesPage(page); collectionsPage = new CollectionsPage(page); }); -test("TC: SALEOR_23 User should be able to navigate to product list as a staff member using PRODUCT permission @e2e", async () => { +test("TC: SALEOR_23 User should be able to navigate to product list as a staff member using PRODUCT permission #e2e", async () => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); await mainMenuPage.openProducts(); @@ -29,7 +29,7 @@ test("TC: SALEOR_23 User should be able to navigate to product list as a staff m await mainMenuPage.expectMenuItemsCount(6); await productPage.expectGridToBeAttached(); }); -test("TC: SALEOR_24 User should be able to navigate to collections list as a staff member using PRODUCT permission @e2e", async () => { +test("TC: SALEOR_24 User should be able to navigate to collections list as a staff member using PRODUCT permission #e2e", async () => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); await mainMenuPage.openCollections(); @@ -37,7 +37,7 @@ test("TC: SALEOR_24 User should be able to navigate to collections list as a sta await mainMenuPage.expectMenuItemsCount(6); await collectionsPage.expectGridToBeAttached(); }); -test("TC: SALEOR_25 User should be able to navigate to categories list as a staff member using PRODUCT permission @e2e", async () => { +test("TC: SALEOR_25 User should be able to navigate to categories list as a staff member using PRODUCT permission #e2e", async () => { await home.goto(); await home.welcomeMessage.waitFor({ state: "visible", timeout: 30000 }); await mainMenuPage.openCategories(); diff --git a/playwright/tests/singlePermissions/productType.spec.ts b/playwright/tests/singlePermissions/productType.spec.ts index 1283dd874ac..493b55bf8a8 100644 --- a/playwright/tests/singlePermissions/productType.spec.ts +++ b/playwright/tests/singlePermissions/productType.spec.ts @@ -7,7 +7,7 @@ import { test } from "utils/testWithPermission"; test.use({ permissionName: "productTypeAndAttribute" }); -test("TC: SALEOR_17 User should be able to navigate to product type list as a staff member using PRODUCT TYPE permission @e2e", async ({ +test("TC: SALEOR_17 User should be able to navigate to product type list as a staff member using PRODUCT TYPE permission #e2e", async ({ page, }) => { const configurationPage = new ConfigurationPage(page); diff --git a/playwright/tests/singlePermissions/readonlyAppAccess.spec.ts b/playwright/tests/singlePermissions/readonlyAppAccess.spec.ts index 252af5e9081..c5f5e827be9 100644 --- a/playwright/tests/singlePermissions/readonlyAppAccess.spec.ts +++ b/playwright/tests/singlePermissions/readonlyAppAccess.spec.ts @@ -13,7 +13,7 @@ const permissionList = permissions.filter(item => item !== permissionToExclude); for (const permission of permissionList) { test.use({ permissionName: permission }); - test(`TC: SALEOR_131 User with ${permission} permissions should have readonly access to Apps @e2e @apps`, async ({ + test(`TC: SALEOR_131 User with ${permission} permissions should have readonly access to Apps #e2e #apps`, async ({ page, }) => { const mainMenuPage = new MainMenuPage(page); diff --git a/playwright/tests/singlePermissions/settingsConfiguration.spec.ts b/playwright/tests/singlePermissions/settingsConfiguration.spec.ts index 5a9a60adc7d..2a63892fe18 100644 --- a/playwright/tests/singlePermissions/settingsConfiguration.spec.ts +++ b/playwright/tests/singlePermissions/settingsConfiguration.spec.ts @@ -7,7 +7,7 @@ import { test } from "utils/testWithPermission"; test.use({ permissionName: "settings" }); -test("TC: SALEOR_18 User should be able to navigate to configuration as a staff member using SETTINGS permission @e2e", async ({ +test("TC: SALEOR_18 User should be able to navigate to configuration as a staff member using SETTINGS permission #e2e", async ({ page, }) => { const mainMenuPage = new MainMenuPage(page); diff --git a/playwright/tests/singlePermissions/shipping.spec.ts b/playwright/tests/singlePermissions/shipping.spec.ts index e08b32c1789..fe51f9bed44 100644 --- a/playwright/tests/singlePermissions/shipping.spec.ts +++ b/playwright/tests/singlePermissions/shipping.spec.ts @@ -7,7 +7,7 @@ import { test } from "utils/testWithPermission"; test.use({ permissionName: "shipping" }); -test("TC: SALEOR_21 User should be able to navigate to shipping zones page as a staff member using SHIPPING permission @e2e", async ({ +test("TC: SALEOR_21 User should be able to navigate to shipping zones page as a staff member using SHIPPING permission #e2e", async ({ page, }) => { const mainMenuPage = new MainMenuPage(page); diff --git a/playwright/tests/singlePermissions/staffMembers.spec.ts b/playwright/tests/singlePermissions/staffMembers.spec.ts index 3b6ed148ca4..3d363f5bbc9 100644 --- a/playwright/tests/singlePermissions/staffMembers.spec.ts +++ b/playwright/tests/singlePermissions/staffMembers.spec.ts @@ -20,13 +20,13 @@ test.beforeEach(async ({ page, request }) => { await configurationPage.goToConfigurationView(); await configurationPage.waitForDOMToFullyLoad(); }); -test("TC: SALEOR_19 User should be able to navigate to staff members list page as a staff member using STAFF permission @e2e", async () => { +test("TC: SALEOR_19 User should be able to navigate to staff members list page as a staff member using STAFF permission #e2e", async () => { await configurationPage.openStaffMembers(); await expect(staffMembersPage.inviteStaffMembersButton).toBeVisible(); await mainMenuPage.expectMenuItemsCount(3); await staffMembersPage.expectGridToBeAttached(); }); -test("TC: SALEOR_20 User should be able to navigate to permission group list page as a staff member using STAFF permission @e2e", async () => { +test("TC: SALEOR_20 User should be able to navigate to permission group list page as a staff member using STAFF permission #e2e", async () => { await configurationPage.openPermissionGroups(); await expect(permissionGroupsPage.createPermissionGroupButton).toBeVisible(); await mainMenuPage.expectMenuItemsCount(3); diff --git a/playwright/tests/singlePermissions/translations.spec.ts b/playwright/tests/singlePermissions/translations.spec.ts index e44aa49c0c5..77b5a9ec38c 100644 --- a/playwright/tests/singlePermissions/translations.spec.ts +++ b/playwright/tests/singlePermissions/translations.spec.ts @@ -6,7 +6,7 @@ import { test } from "utils/testWithPermission"; test.use({ permissionName: "translations" }); -test("TC: SALEOR_22 User should be able to navigate to translations page as a staff member using TRANSLATION permission @e2e", async ({ +test("TC: SALEOR_22 User should be able to navigate to translations page as a staff member using TRANSLATION permission #e2e", async ({ page, }) => { const mainMenuPage = new MainMenuPage(page); diff --git a/playwright/tests/siteSettings.spec.ts b/playwright/tests/siteSettings.spec.ts index bf9ced4931a..008b86b3ff5 100644 --- a/playwright/tests/siteSettings.spec.ts +++ b/playwright/tests/siteSettings.spec.ts @@ -10,7 +10,7 @@ let siteSettingsPage: SiteSettingsPage; test.beforeEach(({ page }) => { siteSettingsPage = new SiteSettingsPage(page); }); -test("TC: SALEOR_132 Should be able to update site settings @e2e", async () => { +test("TC: SALEOR_132 Should be able to update site settings #e2e", async () => { const companyName = faker.company.companyName(); await siteSettingsPage.gotoSiteSettings(); diff --git a/playwright/tests/staffMemberActivation.spec.ts b/playwright/tests/staffMemberActivation.spec.ts index 724c5416230..5acbf62f65b 100644 --- a/playwright/tests/staffMemberActivation.spec.ts +++ b/playwright/tests/staffMemberActivation.spec.ts @@ -21,7 +21,7 @@ test.beforeEach(async ({ page, request }) => { permissionGroupsPage = new PermissionGroupsPage(page); basicApiService = new BasicApiService(request); }); -test("TC: SALEOR_137 Admin User should be able to deactivate other user @e2e @staff-members", async () => { +test("TC: SALEOR_137 Admin User should be able to deactivate other user #e2e #staff-members", async () => { await staffMembersPage.goToStaffDetailsPage(USERS.userToBeDeactivated.id); await staffMembersPage.clickIsActiveCheckbox(); await staffMembersPage.clickSaveButton(); @@ -35,7 +35,7 @@ test("TC: SALEOR_137 Admin User should be able to deactivate other user @e2e @st expect(loginViaApiDeactivatedUserResponse.data.tokenCreate.errors[0].code).toEqual("INACTIVE"); }); -test("TC: SALEOR_38 Admin User should be able to activate other user @e2e @staff-members", async () => { +test("TC: SALEOR_38 Admin User should be able to activate other user #e2e #staff-members", async () => { await staffMembersPage.goToStaffDetailsPage(USERS.userToBeActivated.id); await staffMembersPage.clickIsActiveCheckbox(); await staffMembersPage.clickSaveButton(); diff --git a/playwright/tests/staffMembers.spec.ts b/playwright/tests/staffMembers.spec.ts index 65000611158..113d2e56ad0 100644 --- a/playwright/tests/staffMembers.spec.ts +++ b/playwright/tests/staffMembers.spec.ts @@ -30,7 +30,7 @@ test.beforeEach(async ({ page, request }) => { await config.openStaffMembers(); }); -test("TC: SALEOR_211 Create a staff member @e2e @staff-members", async () => { +test("TC: SALEOR_211 Create a staff member #e2e #staff-members", async () => { const staffMember: StaffMember = { name: "John", lastName: "Create", @@ -62,7 +62,7 @@ test("TC: SALEOR_211 Create a staff member @e2e @staff-members", async () => { await staffMembersPage.verifyAssignedPermission("Customer Support"); await staffMembersPage.verifyAssignedPermission("Channels Management"); }); -test("TC: SALEOR_212 Edit a staff member @e2e @staff-members", async () => { +test("TC: SALEOR_212 Edit a staff member #e2e #staff-members", async () => { const updatedStaffMember: StaffMember = { name: "John", lastName: "Edit", @@ -93,7 +93,7 @@ test("TC: SALEOR_212 Edit a staff member @e2e @staff-members", async () => { await staffMembersPage.verifyAssignedPermission("Channels Management"); await staffMembersPage.verifyAssignedPermission(USERS.staffToBeEdited.permission); }); -test("TC: SALEOR_213 Delete a single staff member @e2e @staff-members", async () => { +test("TC: SALEOR_213 Delete a single staff member #e2e #staff-members", async () => { await staffMembersPage.gotToExistingStaffMemberPage(USERS.staffToBeDeleted.id); await staffMembersPage.clickDeleteButton(); await staffMembersPage.clickSubmitButton(); diff --git a/playwright/tests/taxes.spec.ts b/playwright/tests/taxes.spec.ts index 14ebe69ca0c..f890ed11eb2 100644 --- a/playwright/tests/taxes.spec.ts +++ b/playwright/tests/taxes.spec.ts @@ -13,7 +13,7 @@ test.beforeEach(({ page }) => { configurationPage = new ConfigurationPage(page); taxesPage = new TaxesPage(page); }); -test("TC: SALEOR_115 Change taxes in channel to use tax app @taxes @e2e", async () => { +test("TC: SALEOR_115 Change taxes in channel to use tax app #taxes #e2e", async () => { await configurationPage.goToConfigurationView(); await configurationPage.openTaxes(); await taxesPage.selectChannel(CHANNELS.channelForTaxEdition.name); @@ -21,7 +21,7 @@ test("TC: SALEOR_115 Change taxes in channel to use tax app @taxes @e2e", async await taxesPage.clickSaveButton(); await taxesPage.expectSuccessBanner(); }); -test("TC: SALEOR_116 Change taxes in channel: enter prices without tax, do not show gross price, add country exception @taxes @e2e", async () => { +test("TC: SALEOR_116 Change taxes in channel: enter prices without tax, do not show gross price, add country exception #taxes #e2e", async () => { await taxesPage.gotoChannelsTabUrl(); await taxesPage.selectChannel(CHANNELS.channelForTaxEdition.name); await taxesPage.selectPricesWithoutTaxes(); @@ -38,7 +38,7 @@ test("TC: SALEOR_116 Change taxes in channel: enter prices without tax, do not s await taxesPage.clickSaveButton(); await taxesPage.expectSuccessBanner(); }); -test("TC: SALEOR_117 Add new country and tax rates to it @taxes @e2e", async () => { +test("TC: SALEOR_117 Add new country and tax rates to it #taxes #e2e", async () => { await taxesPage.gotoChannelsTabUrl(); await taxesPage.clickCountriesTab(); await taxesPage.clickAddCountryButton(); @@ -53,7 +53,7 @@ test("TC: SALEOR_117 Add new country and tax rates to it @taxes @e2e", async () await taxesPage.clickSaveButton(); await taxesPage.expectSuccessBanner(); }); -test("TC: SALEOR_118 Add new class with metadata and set tax rate for single country @taxes @e2e", async () => { +test("TC: SALEOR_118 Add new class with metadata and set tax rate for single country #taxes #e2e", async () => { await taxesPage.gotoChannelsTabUrl(); await taxesPage.clickTaxClassTab(); await taxesPage.clickCreateClassButton(); diff --git a/playwright/tests/translations.spec.ts b/playwright/tests/translations.spec.ts index b513d822cce..83a9d69981b 100644 --- a/playwright/tests/translations.spec.ts +++ b/playwright/tests/translations.spec.ts @@ -10,7 +10,7 @@ let translationsPage: TranslationsPage; test.beforeEach(({ page }) => { translationsPage = new TranslationsPage(page); }); -test("TC: SALEOR_121 Should be able to add translation @e2e @translations", async () => { +test("TC: SALEOR_121 Should be able to add translation #e2e #translations", async () => { await translationsPage.gotoTranslationsPage(); await translationsPage.translationPl_PL.click(); await translationsPage.page.getByText("CategoryToTranslate").click(); @@ -27,7 +27,7 @@ test("TC: SALEOR_121 Should be able to add translation @e2e @translations", asy await translationsPage.expectSuccessBanner(); await expect(translationsPage.page.getByText("Kategoria do Translacji")).toBeVisible(); }); -test("TC: SALEOR_122 Should be able to edit translation @e2e @translations", async () => { +test("TC: SALEOR_122 Should be able to edit translation #e2e #translations", async () => { const newDescription = "Brukselka, szpinak, groszek, jarmuż, sałata, kapusta, cukinia, więcej brukselki. Wszystkie warzywa, jakich będziesz potrzebować, w jednym pysznym soku."; @@ -57,7 +57,7 @@ test("TC: SALEOR_122 Should be able to edit translation @e2e @translations", as await translationsPage.waitForDOMToFullyLoad(); await expect(translationsPage.page.getByText(newDescription)).toBeVisible(); }); -test("TC: SALEOR_123 Should be able to clear translation @e2e @translations", async () => { +test("TC: SALEOR_123 Should be able to clear translation #e2e #translations", async () => { const description = "Letnia kolekcja Saleor obejmuje gamę produktów, które cieszą się popularnością na rynku.Sklep demonstracyjny na każdą porę roku.Saleor uchwycił słońce open source, e-commerce."; diff --git a/playwright/tests/vouchers.spec.ts b/playwright/tests/vouchers.spec.ts index c9a85e2f263..e6fdad55522 100644 --- a/playwright/tests/vouchers.spec.ts +++ b/playwright/tests/vouchers.spec.ts @@ -11,7 +11,7 @@ let vouchersPage: VouchersPage; test.beforeEach(({ page }) => { vouchersPage = new VouchersPage(page); }); -test("TC: SALEOR_40 Create voucher with auto-generated codes and fixed amount discount @vouchers @e2e", async () => { +test("TC: SALEOR_40 Create voucher with auto-generated codes and fixed amount discount #vouchers #e2e", async () => { const codesQuantity = 5; const codesPrefix = "auto"; @@ -43,7 +43,7 @@ test("TC: SALEOR_40 Create voucher with auto-generated codes and fixed amount di `Given codes quantity: ${codesQuantity} should have status Active displayed on grid`, ).toEqual(codesQuantity); }); -test("TC: SALEOR_85 Create voucher with manual code and percentage discount @vouchers @e2e", async () => { +test("TC: SALEOR_85 Create voucher with manual code and percentage discount #vouchers #e2e", async () => { const code = `code-TC: SALEOR_85 ${new Date().toISOString()}`; await vouchersPage.gotoVoucherAddPage(); @@ -76,7 +76,7 @@ test("TC: SALEOR_85 Create voucher with manual code and percentage discount @vou ).toEqual(1); await vouchersPage.page.getByText(AVAILABILITY.in1OutOf).waitFor({ state: "visible" }); }); -test("TC: SALEOR_86 Edit voucher to have free shipping discount @vouchers @e2e", async () => { +test("TC: SALEOR_86 Edit voucher to have free shipping discount #vouchers #e2e", async () => { await vouchersPage.gotoExistingVoucherPage( VOUCHERS.vouchers.voucherToBeEditedWithFreeShipping.id, ); @@ -99,7 +99,7 @@ test("TC: SALEOR_86 Edit voucher to have free shipping discount @vouchers @e2e", `Same amount of codes should have status Active displayed on grid after switching to free shipping`, ).toEqual(codesRowsAfterSave); }); -test("TC: SALEOR_87 Edit voucher Usage Limits: used in total, per customer, staff only, code used once @vouchers @e2e", async () => { +test("TC: SALEOR_87 Edit voucher Usage Limits: used in total, per customer, staff only, code used once #vouchers #e2e", async () => { await vouchersPage.gotoExistingVoucherPage(VOUCHERS.vouchers.voucherToBeEditedUsageLimits.id); await vouchersPage.waitForGrid(); await vouchersPage.clickUsageTotalLimitCheckbox(); @@ -115,7 +115,7 @@ test("TC: SALEOR_87 Edit voucher Usage Limits: used in total, per customer, staf "All usage limit checkboxes should be checked", ).toEqual(4); }); -test("TC: SALEOR_89 Create voucher with minimum value of order @vouchers @e2e", async () => { +test("TC: SALEOR_89 Create voucher with minimum value of order #vouchers #e2e", async () => { const code = `code-TC: SALEOR_89 ${new Date().toISOString()}`; await vouchersPage.gotoVoucherAddPage(); @@ -144,7 +144,7 @@ test("TC: SALEOR_89 Create voucher with minimum value of order @vouchers @e2e", `Given codes: ${code} should have status Active displayed on grid`, ).toEqual(1); }); -test("TC: SALEOR_90 Edit voucher minimum quantity of items @vouchers @e2e", async () => { +test("TC: SALEOR_90 Edit voucher minimum quantity of items #vouchers #e2e", async () => { await vouchersPage.gotoExistingVoucherPage(VOUCHERS.vouchers.voucherToBeEditedMinimumQuantity.id); await vouchersPage.clickMinimumQuantityOfItemsButton(); await vouchersPage.typeMinimumQuantityOfItems("4"); @@ -152,7 +152,7 @@ test("TC: SALEOR_90 Edit voucher minimum quantity of items @vouchers @e2e", asyn await vouchersPage.expectSuccessBanner(); await vouchersPage.waitForGrid(); }); -test("TC: SALEOR_92 Delete voucher @vouchers @e2e", async () => { +test("TC: SALEOR_92 Delete voucher #vouchers #e2e", async () => { await vouchersPage.gotoExistingVoucherPage(VOUCHERS.vouchers.voucherToBeDeleted.id); await vouchersPage.clickDeleteSingleVoucherButton(); await vouchersPage.deleteVoucherDialog.clickDeleteButton(); @@ -164,7 +164,7 @@ test("TC: SALEOR_92 Delete voucher @vouchers @e2e", async () => { `Given vouchers: ${VOUCHERS.vouchers.voucherToBeBulkDeleted.names} should be deleted from the list`, ).toEqual([]); }); -test("TC: SALEOR_93 Bulk delete voucher @vouchers @e2e", async () => { +test("TC: SALEOR_93 Bulk delete voucher #vouchers #e2e", async () => { await vouchersPage.gotoVouchersListPage(); await vouchersPage.checkListRowsBasedOnContainingText( VOUCHERS.vouchers.voucherToBeBulkDeleted.names, @@ -178,7 +178,7 @@ test("TC: SALEOR_93 Bulk delete voucher @vouchers @e2e", async () => { `Given vouchers: ${VOUCHERS.vouchers.voucherToBeBulkDeleted.names} should be deleted from the list`, ).toEqual([]); }); -test("TC: SALEOR_94 Edit voucher - assign voucher to specific category @vouchers @e2e", async () => { +test("TC: SALEOR_94 Edit voucher - assign voucher to specific category #vouchers #e2e", async () => { const categoryToBeAssigned = "Accessories"; await vouchersPage.gotoExistingVoucherPage( @@ -199,7 +199,7 @@ test("TC: SALEOR_94 Edit voucher - assign voucher to specific category @vouchers `Only 1 category should be visible in table`, ).toEqual(1); }); -test("TC:SALEOR_95 Edit voucher - assign voucher to specific collection @vouchers @e2e", async () => { +test("TC:SALEOR_95 Edit voucher - assign voucher to specific collection #vouchers #e2e", async () => { const collectionToBeAssigned = "Featured Products"; await vouchersPage.gotoExistingVoucherPage( @@ -221,7 +221,7 @@ test("TC:SALEOR_95 Edit voucher - assign voucher to specific collection @vouche `Only 1 collection should be visible in table`, ).toEqual(1); }); -test("TC: SALEOR_96 Edit voucher - assign voucher to specific product @vouchers @e2e", async () => { +test("TC: SALEOR_96 Edit voucher - assign voucher to specific product #vouchers #e2e", async () => { const productToBeAssigned = "Bean Juice"; await vouchersPage.gotoExistingVoucherPage( diff --git a/playwright/tests/warehouse.spec.ts b/playwright/tests/warehouse.spec.ts index 8795c8c4668..199588e1008 100644 --- a/playwright/tests/warehouse.spec.ts +++ b/playwright/tests/warehouse.spec.ts @@ -10,14 +10,14 @@ let warehousePage: WarehousePage; test.beforeEach(({ page }) => { warehousePage = new WarehousePage(page); }); -test("TC: SALEOR_30 Create basic warehouse @e2e @warehouse", async () => { +test("TC: SALEOR_30 Create basic warehouse #e2e #warehouse", async () => { await warehousePage.gotoWarehouseListView(); await warehousePage.clickCreateNewWarehouseButton(); await warehousePage.completeWarehouseForm(); await warehousePage.clickSaveButton(); await warehousePage.basePage.expectSuccessBanner(); }); -test("TC: SALEOR_100 Edit warehouse @e2e @warehouse", async () => { +test("TC: SALEOR_100 Edit warehouse #e2e #warehouse", async () => { await warehousePage.gotoExistingWarehousePage(WAREHOUSES.warehouseToBeEdited.id); await warehousePage.typeWarehouseName("edited warehouse"); await warehousePage.typeCompanyName("Umbrella"); @@ -29,7 +29,7 @@ test("TC: SALEOR_100 Edit warehouse @e2e @warehouse", async () => { await warehousePage.clickSaveButton(); await warehousePage.basePage.expectSuccessBanner(); }); -test("TC: SALEOR_101 Delete warehouse @e2e @warehouse", async () => { +test("TC: SALEOR_101 Delete warehouse #e2e #warehouse", async () => { await warehousePage.gotoWarehouseListView(); await warehousePage.clickDeleteWarehouseButton(WAREHOUSES.warehouseToBeDeleted.name); await warehousePage.deleteWarehouseDialog.clickDeleteButton();