Merge branch 'testlite' into e2e-pw #33
Annotations
17 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": [
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] › 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": [
8,
"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] › refunds.spec.ts:53:9 › refunds api test › approve a refund @pro:
tests/pw/tests/api/refunds.spec.ts#L54
2) [api_tests] › refunds.spec.ts:53:9 › refunds api test › approve a refund @Pro ─────────────────
TypeError: _dbUtils.dbUtils.createRefund is not a function
52 |
53 | test('approve a refund @Pro', async () => {
> 54 | const [, refundId] = await dbUtils.createRefund(orderResponseBody);
| ^
55 | const [response, responseBody] = await apiUtils.put(endPoints.approveRefund(refundId));
56 | expect(response.ok()).toBeTruthy();
57 | expect(responseBody).toBeTruthy();
at /home/runner/work/dokan/dokan/tests/pw/tests/api/refunds.spec.ts:54:44
|
[api_tests] › refunds.spec.ts:53:9 › refunds api test › approve a refund @pro:
tests/pw/tests/api/refunds.spec.ts#L54
2) [api_tests] › refunds.spec.ts:53:9 › refunds api test › approve a refund @Pro ─────────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
TypeError: _dbUtils.dbUtils.createRefund is not a function
52 |
53 | test('approve a refund @Pro', async () => {
> 54 | const [, refundId] = await dbUtils.createRefund(orderResponseBody);
| ^
55 | const [response, responseBody] = await apiUtils.put(endPoints.approveRefund(refundId));
56 | expect(response.ok()).toBeTruthy();
57 | expect(responseBody).toBeTruthy();
at /home/runner/work/dokan/dokan/tests/pw/tests/api/refunds.spec.ts:54:44
|
[api_tests] › refunds.spec.ts:60:9 › refunds api test › update batch refunds @pro:
tests/pw/tests/api/refunds.spec.ts#L61
3) [api_tests] › refunds.spec.ts:60:9 › refunds api test › update batch refunds @Pro ─────────────
TypeError: _dbUtils.dbUtils.createRefund is not a function
59 |
60 | test('update batch refunds @Pro', async () => {
> 61 | await dbUtils.createRefund(orderResponseBody);
| ^
62 | const allPendingRefundsIds = (await apiUtils.getAllRefunds('pending', payloads.vendorAuth)).map((a: { id: unknown }) => a.id);
63 | const [response, responseBody] = await apiUtils.put(endPoints.updateBatchRefunds, { data: { cancelled: allPendingRefundsIds } });
64 | expect(response.ok()).toBeTruthy();
at /home/runner/work/dokan/dokan/tests/pw/tests/api/refunds.spec.ts:61:23
|
[api_tests] › refunds.spec.ts:60:9 › refunds api test › update batch refunds @pro:
tests/pw/tests/api/refunds.spec.ts#L61
3) [api_tests] › refunds.spec.ts:60:9 › refunds api test › update batch refunds @Pro ─────────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
TypeError: _dbUtils.dbUtils.createRefund is not a function
59 |
60 | test('update batch refunds @Pro', async () => {
> 61 | await dbUtils.createRefund(orderResponseBody);
| ^
62 | const allPendingRefundsIds = (await apiUtils.getAllRefunds('pending', payloads.vendorAuth)).map((a: { id: unknown }) => a.id);
63 | const [response, responseBody] = await apiUtils.put(endPoints.updateBatchRefunds, { data: { cancelled: allPendingRefundsIds } });
64 | expect(response.ok()).toBeTruthy();
at /home/runner/work/dokan/dokan/tests/pw/tests/api/refunds.spec.ts:61:23
|
e2e_api tests
Process completed with exit code 1.
|
[e2e_tests] › customer.spec.ts:80:9 › Customer functionality test › customer can buy product @lite @c:
tests/pw/pages/basePage.ts#L98
1) [e2e_tests] › customer.spec.ts:80:9 › Customer functionality test › customer can buy product @lite @c
Error: expect(received).toMatch(expected)
Expected substring: "checkout"
Received string: "http://localhost:9999/cart/"
at ../../pages/basePage.ts:98
96 | // await this.page.goto(url, { waitUntil: 'domcontentloaded' }); //don't work for backend
97 | const currentUrl = this.getCurrentUrl();
> 98 | expect(currentUrl).toMatch(subPath);
| ^
99 | }
100 | }
101 |
at CustomerPage.goIfNotThere (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:98:32)
at CustomerPage.goToCheckout (/home/runner/work/dokan/dokan/tests/pw/pages/customerPage.ts:29:9)
at CustomerPage.placeOrder (/home/runner/work/dokan/dokan/tests/pw/pages/customerPage.ts:294:9)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/customer.spec.ts:82:9
|
[e2e_tests] › customer.spec.ts:80:9 › Customer functionality test › customer can buy product @lite @c:
tests/pw/pages/basePage.ts#L98
1) [e2e_tests] › customer.spec.ts:80:9 › Customer functionality test › customer can buy product @lite @c
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toMatch(expected)
Expected substring: "checkout"
Received string: "http://localhost:9999/cart/"
at ../../pages/basePage.ts:98
96 | // await this.page.goto(url, { waitUntil: 'domcontentloaded' }); //don't work for backend
97 | const currentUrl = this.getCurrentUrl();
> 98 | expect(currentUrl).toMatch(subPath);
| ^
99 | }
100 | }
101 |
at CustomerPage.goIfNotThere (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:98:32)
at CustomerPage.goToCheckout (/home/runner/work/dokan/dokan/tests/pw/pages/customerPage.ts:29:9)
at CustomerPage.placeOrder (/home/runner/work/dokan/dokan/tests/pw/pages/customerPage.ts:294:9)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/customer.spec.ts:82:9
|
[e2e_tests] › productAddons.spec.ts:38:9 › Product addon functionality test › vendor product addons menu page is rendering properly @pro @exp @v:
tests/pw/pages/basePage.ts#L877
2) [e2e_tests] › productAddons.spec.ts:38:9 › Product addon functionality test › vendor product addons menu page is rendering properly @Pro @exp @v
TimeoutError: locator.check: Timeout 30000ms exceeded.
Call log:
- waiting for locator('.wc-pao-addon-description-enable')
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 ProductAddonsPage.checkLocator (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:877:23)
at ProductAddonsPage.check (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:678:20)
at ProductAddonsPage.vendorProductAddonsSettingsRenderProperly (/home/runner/work/dokan/dokan/tests/pw/pages/productAddonsPage.ts:33:20)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/productAddons.spec.ts:39:9
|
[e2e_tests] › productAddons.spec.ts:38:9 › Product addon functionality test › vendor product addons menu page is rendering properly @pro @exp @v:
tests/pw/pages/basePage.ts#L877
2) [e2e_tests] › productAddons.spec.ts:38:9 › Product addon functionality test › vendor product addons menu page is rendering properly @Pro @exp @v
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
TimeoutError: locator.check: Timeout 30000ms exceeded.
Call log:
- waiting for locator('.wc-pao-addon-description-enable')
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 ProductAddonsPage.checkLocator (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:877:23)
at ProductAddonsPage.check (/home/runner/work/dokan/dokan/tests/pw/pages/basePage.ts:678:20)
at ProductAddonsPage.vendorProductAddonsSettingsRenderProperly (/home/runner/work/dokan/dokan/tests/pw/pages/productAddonsPage.ts:33:20)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/productAddons.spec.ts:39: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
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: 'Robyn Kovacek on p1_v1 (' })
3) <article>…</article> aka locator('article').filter({ hasText: 'Antonio Koelpin on p1_v1 (' })
4) <article>…</article> aka locator('article').filter({ hasText: 'Patti Witting on p1_v1 (' })
5) <article>…</article> aka locator('article').filter({ hasText: 'Carole Herman-Windler on' })
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: 'Robyn Kovacek on p1_v1 (' })
3) <article>…</article> aka locator('article').filter({ hasText: 'Antonio Koelpin on p1_v1 (' })
4) <article>…</article> aka locator('article').filter({ hasText: 'Patti Witting on p1_v1 (' })
5) <article>…</article> aka locator('article').filter({ hasText: 'Carole Herman-Windler on' })
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 30000ms 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] › reports.spec.ts:41:9 › Reports test › admin can search all logs @pro @a:
tests/pw/pages/reportsPage.ts#L67
5) [e2e_tests] › reports.spec.ts:41:9 › Reports test › admin can search all logs @Pro @A ─────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: 1
Received: 14
at ../../pages/reportsPage.ts:67
65 | await this.toBeVisible(selector.admin.dokan.reports.allLogs.orderIdCell(orderId));
66 | const count = (await this.getElementText(selector.admin.dokan.reports.allLogs.numberOfRowsFound))?.split(' ')[0];
> 67 | expect(Number(count)).toBe(1);
| ^
68 | // await this.clickAndWaitForResponseAndLoadState(data.subUrls.api.dokan.logs, selector.admin.dokan.reports.allLogs.filters.clear);
69 | }
70 |
at ReportsPage.searchAllLogs (/home/runner/work/dokan/dokan/tests/pw/pages/reportsPage.ts:67:31)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/reports.spec.ts:42:9
|
[e2e_tests] › reports.spec.ts:41:9 › Reports test › admin can search all logs @pro @a:
tests/pw/pages/reportsPage.ts#L67
5) [e2e_tests] › reports.spec.ts:41:9 › Reports test › admin can search all logs @Pro @A ─────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(received).toBe(expected) // Object.is equality
Expected: 1
Received: 17
at ../../pages/reportsPage.ts:67
65 | await this.toBeVisible(selector.admin.dokan.reports.allLogs.orderIdCell(orderId));
66 | const count = (await this.getElementText(selector.admin.dokan.reports.allLogs.numberOfRowsFound))?.split(' ')[0];
> 67 | expect(Number(count)).toBe(1);
| ^
68 | // await this.clickAndWaitForResponseAndLoadState(data.subUrls.api.dokan.logs, selector.admin.dokan.reports.allLogs.filters.clear);
69 | }
70 |
at ReportsPage.searchAllLogs (/home/runner/work/dokan/dokan/tests/pw/pages/reportsPage.ts:67:31)
at /home/runner/work/dokan/dokan/tests/pw/tests/e2e/reports.spec.ts:42: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.7s
|
Slow Test:
tests/pw/[api_tests] › supportTickets.spec.ts#L1
tests/pw/[api_tests] › supportTickets.spec.ts took 19.5s
|
Slow Test:
tests/pw/[e2e_tests] › products.spec.ts#L1
tests/pw/[e2e_tests] › products.spec.ts took 7.8m
|
Slow Test:
tests/pw/[e2e_tests] › storeSupports.spec.ts#L1
tests/pw/[e2e_tests] › storeSupports.spec.ts took 3.1m
|
🎭 Playwright Run Summary
3 failed
[api_tests] › announcements.spec.ts:30:9 › announcements api test › get all announcements @Pro ─
[api_tests] › refunds.spec.ts:53:9 › refunds api test › approve a refund @Pro ──────────────────
[api_tests] › refunds.spec.ts:60:9 › refunds api test › update batch refunds @Pro ──────────────
28 skipped
257 passed (2.0m)
|
🎭 Playwright Run Summary
6 failed
[e2e_tests] › customer.spec.ts:80:9 › Customer functionality test › customer can buy product @lite @c
[e2e_tests] › productAddons.spec.ts:38:9 › Product addon functionality test › vendor product addons menu page is rendering properly @Pro @exp @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] › reports.spec.ts:41:9 › Reports test › admin can search all logs @Pro @A ──────────
[e2e_tests] › reports.spec.ts:45:9 › Reports test › admin can export all logs @Pro @A ──────────
16 flaky
[e2e_tests] › announcements.spec.ts:45:9 › Announcements test (admin) › admin can trash announcement @Pro @A
[e2e_tests] › coupons.spec.ts:43:9 › Coupons test › admin can add marketplace coupon @Pro @A ───
[e2e_tests] › coupons.spec.ts:80:9 › Coupons test › customer can buy product with coupon @Pro @c
[e2e_tests] › customer.spec.ts:26:9 › Customer user functionality test › customer can register @lite @c
[e2e_tests] › productAdvertising.spec.ts:74:9 › Product Advertising test › vendor can buy product advertising @Pro @v
[e2e_tests] › productReviews.spec.ts:52:9 › Product Reviews test › vendor can approve product review @Pro @v
[e2e_tests] › products.spec.ts:147:9 › Product functionality test › vendor can quick edit product @Pro @v
[e2e_tests] › products.spec.ts:171:9 › Product functionality test › vendor can add product other options @lite @v
[e2e_tests] › refunds.spec.ts:61:9 › Refunds test › admin can perform refund requests bulk actions @Pro @A
[e2e_tests] › storeReviews.spec.ts:72:9 › Store Reviews test › admin can perform store reviews bulk action @Pro @A
[e2e_tests] › stores.spec.ts:41:9 › Stores test › admin can add vendor @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:73:9 › Vendor settings test › vendor can set open-close settings @lite @v
[e2e_tests] › vendorSettings.spec.ts:90:9 › Vendor settings test › vendor can set discount settings @Pro @v
[e2e_tests] › vendorVerifications.spec.ts:31:9 › Verifications test › vendor can send id verification request @Pro @v
[e2e_tests] › vendorVerifications.spec.ts:35:9 › Verifications test › vendor can send address verification request @Pro @v
140 skipped
462 passed (17.4m)
|
Artifacts
Produced during runtime
Name | Size | |
---|---|---|
test-artifact
Expired
|
130 MB |
|