Merge branch 'testlite' into e2e-pw #31
Annotations
14 errors, 5 warnings, and 2 notices
[api_tests] › announcements.spec.ts:30:9 › announcements api test › get all announcements @pro:
tests/pw/tests/api/announcements.spec.ts#L34
1) [api_tests] › announcements.spec.ts:30:9 › announcements api test › get all announcements @Pro
Error: Result does not match schema: Invalid date
Details: {
"issues": [
{
"code": "invalid_date",
"path": [
6,
"date_gmt"
],
"message": "Invalid date"
}
],
"name": "ZodError"
}
32 | expect(response.ok()).toBeTruthy();
33 | expect(responseBody).toBeTruthy();
> 34 | expect(responseBody).toMatchSchema(schemas.announcementsSchema.announcementsSchema);
| ^
35 | });
36 |
37 | test('get single announcement @Pro', async () => {
at /home/runner/work/dokan/dokan/tests/pw/tests/api/announcements.spec.ts:34:30
|
[api_tests] › announcements.spec.ts:30:9 › announcements api test › get all announcements @pro:
tests/pw/tests/api/announcements.spec.ts#L34
1) [api_tests] › announcements.spec.ts:30:9 › announcements api test › get all announcements @Pro
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: Result does not match schema: Invalid date
Details: {
"issues": [
{
"code": "invalid_date",
"path": [
7,
"date_gmt"
],
"message": "Invalid date"
}
],
"name": "ZodError"
}
32 | expect(response.ok()).toBeTruthy();
33 | expect(responseBody).toBeTruthy();
> 34 | expect(responseBody).toMatchSchema(schemas.announcementsSchema.announcementsSchema);
| ^
35 | });
36 |
37 | test('get single announcement @Pro', async () => {
at /home/runner/work/dokan/dokan/tests/pw/tests/api/announcements.spec.ts:34:30
|
[api_tests] › supportTickets.spec.ts:76:9 › support ticket api test › update batch support tickets @pro:
tests/pw/tests/api/supportTickets.spec.ts#L1
2) [api_tests] › supportTickets.spec.ts:76:9 › support ticket api test › update batch support tickets @Pro
Test timeout of 10000ms exceeded.
|
e2e_api tests
Process completed with exit code 1.
|
[e2e_tests] › coupons.spec.ts:80:9 › Coupons test › customer can buy product with coupon @pro @c:
tests/pw/pages/basePage.ts#L1331
1) [e2e_tests] › coupons.spec.ts:80:9 › Coupons test › customer can buy product with coupon @Pro @c
Error: Timed out 15000ms waiting for expect(locator).toContainText(expected)
Locator: locator('div.wc-block-components-notice-banner__content')
Expected string: "Coupon code \"c1_v1\" has been applied to your cart."
Received string: ""
Call log:
- expect.toContainText with timeout 15000ms
- waiting for locator('div.wc-block-components-notice-banner__content')
at ../../pages/basePage.ts:1331
1329 | // assert element to contain text
1330 | async toContainText(selector: string, text: string | RegExp) {
> 1331 | await expect(this.page.locator(selector)).toContainText(text);
| ^
1332 | }
1333 |
1334 | // assert element to have count
at CustomerPage.toContainText (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:1331:51)
at CustomerPage.applyCoupon (/home/runner/work/dokan/dokan/tests/pw/pages/customerPage.ts:278:20)
at CouponsPage.buyProductWithCoupon (/home/runner/work/dokan/dokan/tests/pw/pages/couponsPage.ts:113:9)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/coupons.spec.ts:81:9
|
[e2e_tests] › coupons.spec.ts:80:9 › Coupons test › customer can buy product with coupon @pro @c:
tests/pw/pages/basePage.ts#L238
1) [e2e_tests] › coupons.spec.ts:80:9 › Coupons test › customer can buy product with coupon @Pro @c
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
TimeoutError: page.waitForResponse: Timeout 20000ms exceeded while waiting for event "response"
at ../../pages/basePage.ts:238
236 | // click & wait for response
237 | async clickAndWaitForResponseAndLoadState(subUrl: string, selector: string, code = 200): Promise<Response> {
> 238 | const [, response] = await Promise.all([this.page.waitForLoadState('networkidle'), this.page.waitForResponse(resp => resp.url().includes(subUrl) && resp.status() === code), this.page.locator(selector).click()]);
| ^
239 | expect(response.status()).toBe(code);
240 | return response;
241 | }
at CustomerPage.clickAndWaitForResponseAndLoadState (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:238:102)
at CustomerPage.placeOrder (/home/runner/work/dokan/dokan/tests/pw/pages/customerPage.ts:323:20)
at CouponsPage.buyProductWithCoupon (/home/runner/work/dokan/dokan/tests/pw/pages/couponsPage.ts:114:9)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/coupons.spec.ts:81:9
|
[e2e_tests] › productAdvertising.spec.ts:74:9 › Product Advertising test › vendor can buy product advertising @pro @v:
tests/pw/pages/basePage.ts#L238
2) [e2e_tests] › productAdvertising.spec.ts:74:9 › Product Advertising test › vendor can buy product advertising @Pro @v
TimeoutError: page.waitForResponse: Timeout 20000ms exceeded while waiting for event "response"
at ../../pages/basePage.ts:238
236 | // click & wait for response
237 | async clickAndWaitForResponseAndLoadState(subUrl: string, selector: string, code = 200): Promise<Response> {
> 238 | const [, response] = await Promise.all([this.page.waitForLoadState('networkidle'), this.page.waitForResponse(resp => resp.url().includes(subUrl) && resp.status() === code), this.page.locator(selector).click()]);
| ^
239 | expect(response.status()).toBe(code);
240 | return response;
241 | }
at CustomerPage.clickAndWaitForResponseAndLoadState (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:238:102)
at CustomerPage.paymentOrder (/home/runner/work/dokan/dokan/tests/pw/pages/customerPage.ts:365:20)
at VendorPage.buyProductAdvertising (/home/runner/work/dokan/dokan/tests/pw/pages/vendorPage.ts:320:25)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/productAdvertising.spec.ts:77:25
|
[e2e_tests] › productAdvertising.spec.ts:74:9 › Product Advertising test › vendor can buy product advertising @pro @v:
tests/pw/pages/basePage.ts#L232
2) [e2e_tests] › productAdvertising.spec.ts:74:9 › Product Advertising test › vendor can buy product advertising @Pro @v
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
TimeoutError: page.waitForResponse: Timeout 20000ms exceeded while waiting for event "response"
at ../../pages/basePage.ts:232
230 | // click & wait for response
231 | async clickAndWaitForResponse(subUrl: string, selector: string, code = 200): Promise<Response> {
> 232 | const [response] = await Promise.all([this.page.waitForResponse(resp => resp.url().includes(subUrl) && resp.status() === code), this.page.locator(selector).click()]);
| ^
233 | return response;
234 | }
235 |
at VendorPage.clickAndWaitForResponse (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:232:57)
at VendorPage.buyProductAdvertising (/home/runner/work/dokan/dokan/tests/pw/pages/vendorPage.ts:317:20)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/productAdvertising.spec.ts:77:25
|
[e2e_tests] › products.spec.ts:99:9 › Product functionality test › vendor can add product category @lite @v:
tests/pw/pages/basePage.ts#L438
3) [e2e_tests] › products.spec.ts:99:9 › Product functionality test › vendor can add product category @lite @v
Error: locator.hover: Error: strict mode violation: locator('//a[contains(text(),\'p1_v1 (simple)\')]/../..') resolved to 5 elements:
1) <td data-title="Name" class="column-primary">…</td> aka getByRole('cell', { name: 'p1_v1 (simple)' })
2) <article>…</article> aka locator('article').filter({ hasText: 'Aaron Armstrong on p1_v1 (' })
3) <article>…</article> aka locator('article').filter({ hasText: 'Kelly Cremin on p1_v1 (simple)' })
4) <article>…</article> aka locator('article').filter({ hasText: 'Gerard Lind on p1_v1 (simple)' })
5) <article>…</article> aka locator('article').filter({ hasText: 'Dr. Barbara Skiles on p1_v1 (' })
Call log:
- waiting for locator('//a[contains(text(),\'p1_v1 (simple)\')]/../..')
at ../../pages/basePage.ts:438
436 | // hover on selector
437 | async hover(selector: string): Promise<void> {
> 438 | await this.page.locator(selector).hover();
| ^
439 | // await this.page.hover(selector);
440 | await this.wait(0.2);
441 | }
at ProductsPage.hover (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:438:43)
at ProductsPage.goToProductEdit (/home/runner/work/dokan/dokan/tests/pw/pages/productsPage.ts:454:20)
at ProductsPage.vendorAddProductCategory (/home/runner/work/dokan/dokan/tests/pw/pages/productsPage.ts:479:9)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/products.spec.ts:100:9
|
[e2e_tests] › products.spec.ts:99:9 › Product functionality test › vendor can add product category @lite @v:
tests/pw/pages/basePage.ts#L438
3) [e2e_tests] › products.spec.ts:99:9 › Product functionality test › vendor can add product category @lite @v
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: locator.hover: Error: strict mode violation: locator('//a[contains(text(),\'p1_v1 (simple)\')]/../..') resolved to 5 elements:
1) <td data-title="Name" class="column-primary">…</td> aka getByRole('cell', { name: 'p1_v1 (simple)' })
2) <article>…</article> aka locator('article').filter({ hasText: 'Aaron Armstrong on p1_v1 (' })
3) <article>…</article> aka locator('article').filter({ hasText: 'Kelly Cremin on p1_v1 (simple)' })
4) <article>…</article> aka locator('article').filter({ hasText: 'Gerard Lind on p1_v1 (simple)' })
5) <article>…</article> aka locator('article').filter({ hasText: 'Dr. Barbara Skiles on p1_v1 (' })
Call log:
- waiting for locator('//a[contains(text(),\'p1_v1 (simple)\')]/../..')
at ../../pages/basePage.ts:438
436 | // hover on selector
437 | async hover(selector: string): Promise<void> {
> 438 | await this.page.locator(selector).hover();
| ^
439 | // await this.page.hover(selector);
440 | await this.wait(0.2);
441 | }
at ProductsPage.hover (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:438:43)
at ProductsPage.goToProductEdit (/home/runner/work/dokan/dokan/tests/pw/pages/productsPage.ts:454:20)
at ProductsPage.vendorAddProductCategory (/home/runner/work/dokan/dokan/tests/pw/pages/productsPage.ts:479:9)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/products.spec.ts:100:9
|
[e2e_tests] › products.spec.ts:163:9 › Product functionality test › vendor can add product wholesale options @pro @v:
tests/pw/pages/basePage.ts#L640
4) [e2e_tests] › products.spec.ts:163:9 › Product functionality test › vendor can add product wholesale options @Pro @v
TimeoutError: page.fill: Timeout 20000ms exceeded.
Call log:
- waiting for locator('#dokan-wholesale-price')
- locator resolved to <input value="" type="text" name="wholesale[price]" id=…/>
- elementHandle.fill("90")
- waiting for element to be visible, enabled and editable
- element is not visible - waiting...
at ../../pages/basePage.ts:640
638 | // fill in input field
639 | async fill(selector: string, text: string): Promise<void> {
> 640 | await this.page.fill(selector, text);
| ^
641 | }
642 |
643 | // fill if visible
at ProductsPage.fill (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:640:25)
at ProductsPage.clearAndType (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:618:20)
at ProductsPage.addProductWholesaleOptions (/home/runner/work/dokan/dokan/tests/pw/pages/productsPage.ts:607:20)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/products.spec.ts:164:9
|
[e2e_tests] › products.spec.ts:163:9 › Product functionality test › vendor can add product wholesale options @pro @v:
tests/pw/pages/basePage.ts#L877
4) [e2e_tests] › products.spec.ts:163:9 › Product functionality test › vendor can add product wholesale options @Pro @v
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: locator.check: Clicking the checkbox did not change its state
Call log:
- waiting for locator('#wholesale\\[enable_wholesale\\]')
- locator resolved to <input value="yes" type="checkbox" class="wholesaleChec…/>
- attempting click action
- waiting for element to be visible, enabled and stable
- forcing action
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- performing click action
- click action done
- waiting for scheduled navigations to finish
- navigations have finished
at ../../pages/basePage.ts:877
875 | async checkLocator(selector: string): Promise<void> {
876 | const locator = this.page.locator(selector);
> 877 | await locator.check({ force: true }); // forced is used to avoid "locator.check: Clicking the checkbox did not change its state" error
| ^
878 | }
879 |
880 | // click locator
at ProductsPage.checkLocator (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:877:23)
at ProductsPage.check (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:678:20)
at ProductsPage.addProductWholesaleOptions (/home/runner/work/dokan/dokan/tests/pw/pages/productsPage.ts:606:20)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/products.spec.ts:164:9
|
[e2e_tests] › sellerBadges.spec.ts:97:9 › Seller badge test › vendor can filter seller badges @pro @v:
tests/pw/pages/sellerBadgesPage.ts#L310
5) [e2e_tests] › sellerBadges.spec.ts:97:9 › Seller badge test › vendor can filter seller badges @Pro @v
Error: expect(received).toBeGreaterThan(expected)
Expected: > 0
Received: 0
at ../../pages/sellerBadgesPage.ts:310
308 | await this.selectByValue(selector.vendor.vBadges.filterBadges, option);
309 | const count = (await this.getElementText(selector.vendor.vBadges.numberOfBadgesFound))?.split(' ')[0];
> 310 | expect(Number(count)).toBeGreaterThan(0);
| ^
311 | }
312 | }
313 |
at SellerBadgesPage.filterSellerBadges (/home/runner/work/dokan/dokan/tests/pw/pages/sellerBadgesPage.ts:310:31)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/sellerBadges.spec.ts:98:9
|
[e2e_tests] › sellerBadges.spec.ts:97:9 › Seller badge test › vendor can filter seller badges @pro @v:
tests/pw/pages/sellerBadgesPage.ts#L310
5) [e2e_tests] › sellerBadges.spec.ts:97:9 › Seller badge test › vendor can filter seller badges @Pro @v
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toBeGreaterThan(expected)
Expected: > 0
Received: 0
at ../../pages/sellerBadgesPage.ts:310
308 | await this.selectByValue(selector.vendor.vBadges.filterBadges, option);
309 | const count = (await this.getElementText(selector.vendor.vBadges.numberOfBadgesFound))?.split(' ')[0];
> 310 | expect(Number(count)).toBeGreaterThan(0);
| ^
311 | }
312 | }
313 |
at SellerBadgesPage.filterSellerBadges (/home/runner/work/dokan/dokan/tests/pw/pages/sellerBadgesPage.ts:310:31)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/sellerBadges.spec.ts:98:9
|
e2e_api tests
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, actions/setup-node@v3, actions/cache@v3, actions/github-script@v6, actions/upload-artifact@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
Slow Test:
tests/pw/[api_tests] › products.spec.ts#L1
tests/pw/[api_tests] › products.spec.ts took 27.1s
|
Slow Test:
tests/pw/[api_tests] › supportTickets.spec.ts#L1
tests/pw/[api_tests] › supportTickets.spec.ts took 26.5s
|
Slow Test:
tests/pw/[e2e_tests] › products.spec.ts#L1
tests/pw/[e2e_tests] › products.spec.ts took 8.7m
|
Slow Test:
tests/pw/[e2e_tests] › storeSupports.spec.ts#L1
tests/pw/[e2e_tests] › storeSupports.spec.ts took 3.4m
|
|
🎭 Playwright Run Summary
6 failed
[e2e_tests] › coupons.spec.ts:80:9 › Coupons test › customer can buy product with coupon @Pro @c
[e2e_tests] › productAdvertising.spec.ts:74:9 › Product Advertising test › vendor can buy product advertising @Pro @v
[e2e_tests] › products.spec.ts:99:9 › Product functionality test › vendor can add product category @lite @v
[e2e_tests] › products.spec.ts:163:9 › Product functionality test › vendor can add product wholesale options @Pro @v
[e2e_tests] › sellerBadges.spec.ts:97:9 › Seller badge test › vendor can filter seller badges @Pro @v
[e2e_tests] › vendorVerifications.spec.ts:31:9 › Verifications test › vendor can send id verification request @Pro @v
17 flaky
[e2e_tests] › admin.spec.ts:31:9 › Admin functionality test › admin can logout @lite @A ────────
[e2e_tests] › announcements.spec.ts:45:9 › Announcements test (admin) › admin can trash announcement @Pro @A
[e2e_tests] › coupons.spec.ts:76:9 › Coupons test › customer can apply coupon @Pro @c ──────────
[e2e_tests] › customer.spec.ts:74:9 › Customer functionality test › customer can add product to cart @lite @c
[e2e_tests] › productReviews.spec.ts:52:9 › Product Reviews test › vendor can approve product review @Pro @v
[e2e_tests] › products.spec.ts:63:9 › Product functionality test › admin can add vendor subscription @Pro @A
[e2e_tests] › products.spec.ts:75:9 › Product functionality test › vendor can add variable product @Pro @v
[e2e_tests] › products.spec.ts:91:9 › Product functionality test › vendor can add downloadable product @lite @v
[e2e_tests] › refunds.spec.ts:56:9 › Refunds test › admin can perform refund requests bulk actions @Pro @A
[e2e_tests] › reports.spec.ts:40:9 › Reports test › admin can search all logs @Pro @A ──────────
[e2e_tests] › requestForQuoteRules.spec.ts:54:9 › Request for quotation Rules test › admin can perform quote rule bulk actions @Pro @A
[e2e_tests] › reverseWithdraws.spec.ts:79:9 › Reverse withdraw test › vendor can pay reverse pay balance @lite @v
[e2e_tests] › sellerBadges.spec.ts:52:9 › Seller badge test › admin can edit seller badge @Pro @A
[e2e_tests] › stores.spec.ts:42:9 › Stores test › admin can add vendor @lite @A ────────────────
[e2e_tests] › stores.spec.ts:58:9 › Stores test › admin can edit vendor info @lite @A ──────────
[e2e_tests] › vendorBooking.spec.ts:120:9 › Booking Product test › vendor can add booking for existing customer @Pro @v
[e2e_tests] › vendorSettings.spec.ts:81:9 › Vendor settings test › vendor can set catalog settings @lite @v
136 skipped
456 passed (16.9m)
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
test-artifact
Expired
|
163 MB |
|