{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":355577516,"defaultBranch":"main","name":"playwright","ownerLogin":"dgozman","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2021-04-07T14:35:07.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9881434?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715797774.0","currentOid":""},"activityList":{"items":[{"before":"e528014c0f4b350b163f689cdfae5e11ce566de4","after":"81c5d0166cf623d8c73978a085251ccc96e20458","ref":"refs/heads/msw-impl","pushedAt":"2024-05-15T22:57:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"msw-impl","shortMessageHtmlLink":"msw-impl"}},{"before":"382fa5107b5e4938049b5c9eb65d2798ffbc4b41","after":"298c6cd1eb0a1ee70612bb1a080456a980b1dfb7","ref":"refs/heads/feat-playwright-force-tty","pushedAt":"2024-05-15T19:51:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat: env.PLAYWRIGHT_FORCE_TTY to control reporters' tty\n\nPreviously, terminal reporters consulted `process.stdout.isTTY`.\nNow it is possible to control the tty behavior:\n- `PLAYWRIGHT_FORCE_TTY=0` or `PLAYWRIGHT_FORCE_TTY=false` to disable TTY;\n- `PLAYWRIGHT_FORCE_TTY=1` or `PLAYWRIGHT_FORCE_TTY=true` to enable TTY,\n defaults to 100 columns when real columns are unavailable;\n- `PLAYWRIGHT_FORCE_TTY=` to force enable TTY and set the columns.","shortMessageHtmlLink":"feat: env.PLAYWRIGHT_FORCE_TTY to control reporters' tty"}},{"before":null,"after":"382fa5107b5e4938049b5c9eb65d2798ffbc4b41","ref":"refs/heads/feat-playwright-force-tty","pushedAt":"2024-05-15T18:29:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat: env.PLAYWRIGHT_FORCE_TTY to control reporters' tty\n\nPreviously, terminal reporters consulted `process.stdout.isTTY`.\nNow it is possible to control the tty behavior:\n- `PLAYWRIGHT_FORCE_TTY=0` or `PLAYWRIGHT_FORCE_TTY=false` to disable TTY;\n- `PLAYWRIGHT_FORCE_TTY=1` or `PLAYWRIGHT_FORCE_TTY=true` to enable TTY,\n defaults to 100 columns when real columns are unavailable;\n- `PLAYWRIGHT_FORCE_TTY=` to force enable TTY and set the columns.","shortMessageHtmlLink":"feat: env.PLAYWRIGHT_FORCE_TTY to control reporters' tty"}},{"before":"b79b5ca89916cbb76282a7d81a33d39bf56c2d67","after":"1f37bd2731567d296db9c7a9e6e4a6e334f67cc6","ref":"refs/heads/fix-tr-process-gracefully-close","pushedAt":"2024-05-15T15:56:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(test runner): regular worker termination finishes long fixtures\n\nPreviously, terminating worker always had a 30 seconds force exit.\n\nNow, regular worker termination assumes that process will eventually\nfinish tearing down all the fixtures and exits. However, the\nself-destruction routine keeps the 30 seconds timeout to avoid zombies.","shortMessageHtmlLink":"fix(test runner): regular worker termination finishes long fixtures"}},{"before":null,"after":"b79b5ca89916cbb76282a7d81a33d39bf56c2d67","ref":"refs/heads/fix-tr-process-gracefully-close","pushedAt":"2024-05-13T19:57:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(test runner): regular worker termination finishes long fixtures\n\nPreviously, terminating worker always had a 30 seconds force exit.\n\nNow, regular worker termination assumes that process will eventually\nfinish tearing down all the fixtures and exits. However, the\nself-destruction routine keeps the 30 seconds timeout to avoid zombies.","shortMessageHtmlLink":"fix(test runner): regular worker termination finishes long fixtures"}},{"before":null,"after":"12b6591391cb106297f7a387e9d37ce2909e825a","ref":"refs/heads/fix-selector-gen-re-escape","pushedAt":"2024-05-13T18:10:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(selector generator): properly escape re used in has-text","shortMessageHtmlLink":"fix(selector generator): properly escape re used in has-text"}},{"before":"273a746e3dcf8ab24bd891b52fde5cfad1939b9f","after":"1558c947720333f67bc50a0b5d5e17c1afaa71e5","ref":"refs/heads/fix-api-request-context-dispose-reason","pushedAt":"2024-05-13T17:30:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat: APIRequestContext dispose reason\n\nSimilarly to page.close, we pass test-runner specific reason\nto facilitate better error messages.\n\n```\n 1) a.test.ts:10:11 › test ────────────────────────────────────────────────────────────────────────\n\n Error: apiRequestContext.fetch: Fixture { request } from beforeAll cannot be reused in a test.\n - Recommended fix: use a separate { request } in the test.\n - Alternatively, manually create APIRequestContext in beforeAll and dispose it in afterAll.\n See https://playwright.dev/docs/api-testing#sending-api-requests-from-ui-tests for more details.\n\n 9 |\n 10 | test('test', async () => {\n > 11 | await context.fetch('http://example.com');\n | ^\n 12 | });\n 13 |\n\n```","shortMessageHtmlLink":"feat: APIRequestContext dispose reason"}},{"before":null,"after":"273a746e3dcf8ab24bd891b52fde5cfad1939b9f","ref":"refs/heads/fix-api-request-context-dispose-reason","pushedAt":"2024-05-13T16:15:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat: APIRequestContext dispose reason\n\nSimilarly to page.close, we pass test-runner specific reason\nto facilitate better error messages.\n\n```\n 1) a.test.ts:10:11 › test ────────────────────────────────────────────────────────────────────────\n\n Error: apiRequestContext.fetch: Fixture { request } from beforeAll cannot be reused in a test.\n - Recommended fix: use a separate { request } in the test.\n - Alternatively, manually create APIRequestContext in beforeAll and dispose it in afterAll.\n See https://playwright.dev/docs/api-testing#sending-api-requests-from-ui-tests for more details.\n\n 9 |\n 10 | test('test', async () => {\n > 11 | await context.fetch('http://example.com');\n | ^\n 12 | });\n 13 |\n\n```","shortMessageHtmlLink":"feat: APIRequestContext dispose reason"}},{"before":null,"after":"d0a2cb9ecb8b3e1b45eacc6f9a55e9866c907958","ref":"refs/heads/fix-multiple-post-entries","pushedAt":"2024-05-09T20:37:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(chromium): concat all post data entries for request.postData()\n\nThis already works in Firefox, but does not work in WebKit.","shortMessageHtmlLink":"fix(chromium): concat all post data entries for request.postData()"}},{"before":"a4e1af8cfbf309009a74a7e42908e199877b8c88","after":"a65cbc9387154b6afbe139c07e06d9878149090b","ref":"refs/heads/docs-scrolling","pushedAt":"2024-05-09T00:56:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"docs: add section explaining scrolling","shortMessageHtmlLink":"docs: add section explaining scrolling"}},{"before":"1c587f50b44c3d608d0bd05ef3800a4c70a75549","after":"a4e1af8cfbf309009a74a7e42908e199877b8c88","ref":"refs/heads/docs-scrolling","pushedAt":"2024-05-08T23:48:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"docs: add section explaining scrolling","shortMessageHtmlLink":"docs: add section explaining scrolling"}},{"before":null,"after":"1c587f50b44c3d608d0bd05ef3800a4c70a75549","ref":"refs/heads/docs-scrolling","pushedAt":"2024-05-08T23:47:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"docs: add section explaining scrolling","shortMessageHtmlLink":"docs: add section explaining scrolling"}},{"before":null,"after":"e528014c0f4b350b163f689cdfae5e11ce566de4","ref":"refs/heads/msw-impl","pushedAt":"2024-05-08T23:31:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"msw-impl","shortMessageHtmlLink":"msw-impl"}},{"before":null,"after":"ec71246ccc0ecf98afb9f16d238609f32b40c22f","ref":"refs/heads/test-unflake-tv-893","pushedAt":"2024-05-06T18:00:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"test: unflake \"should display waitForLoadState even if did not wait for it\"","shortMessageHtmlLink":"test: unflake \"should display waitForLoadState even if did not wait f…"}},{"before":null,"after":"141d7b2d65bb3f3fd01a0c8b94d4f2d59110142b","ref":"refs/heads/r-1.44-fd92509","pushedAt":"2024-05-02T17:39:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"cherry-pick(#30636): fix(role): extract tagName safely\n\nFixes #30616.","shortMessageHtmlLink":"cherry-pick(microsoft#30636): fix(role): extract tagName safely"}},{"before":null,"after":"2f8042dfde893e3678cde2d8083d28222c54f1ab","ref":"refs/heads/role-safe-tag-name","pushedAt":"2024-05-02T16:04:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(role): extract tagName safely","shortMessageHtmlLink":"fix(role): extract tagName safely"}},{"before":null,"after":"49ca2e9037af6d5544bbd4581a59551b03897ea4","ref":"refs/heads/docs-global-setup-config","pushedAt":"2024-04-30T15:37:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"docs: mention that globalSetup does not respect config options","shortMessageHtmlLink":"docs: mention that globalSetup does not respect config options"}},{"before":"917924d2799a94cb3c1d4470a8527e3f0b212206","after":"49ca2e9037af6d5544bbd4581a59551b03897ea4","ref":"refs/heads/main","pushedAt":"2024-04-30T15:36:48.000Z","pushType":"push","commitsCount":5915,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"docs: mention that globalSetup does not respect config options","shortMessageHtmlLink":"docs: mention that globalSetup does not respect config options"}},{"before":"292b2a3c81dd91945ee51db66e0d499c70b024ec","after":"cc4b301e778da438d31dbe42c6ae2f25b29a9b32","ref":"refs/heads/chore-tele-results-map","pushedAt":"2024-04-26T15:57:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"chore: remove TeleTestCase._resultsMap","shortMessageHtmlLink":"chore: remove TeleTestCase._resultsMap"}},{"before":null,"after":"292b2a3c81dd91945ee51db66e0d499c70b024ec","ref":"refs/heads/chore-tele-results-map","pushedAt":"2024-04-26T15:56:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"chore: remove TeleTestCase._resultsMap","shortMessageHtmlLink":"chore: remove TeleTestCase._resultsMap"}},{"before":null,"after":"f13bace8cc0881472a93ad918fc401a3bc2879dd","ref":"refs/heads/feat-to-have-role","pushedAt":"2024-04-25T21:05:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat: expect(locator).toHaveRole(role)","shortMessageHtmlLink":"feat: expect(locator).toHaveRole(role)"}},{"before":null,"after":"2d17342b0e6e00a86a77def500aed6971f3412df","ref":"refs/heads/feat-locator-handler-review-feedback","pushedAt":"2024-04-25T20:26:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat(locator handler): address api review feedback\n\n- Remove `handler` argument from `removeLocatorHandler`.\n- Rename `allowStayingVisible` into `noWaitAfter`.\n- Improve logging related to locator handler.\n- Remove experimental badges.","shortMessageHtmlLink":"feat(locator handler): address api review feedback"}},{"before":null,"after":"7236d729d574488eae54d2a582e93a46bd0c1516","ref":"refs/heads/chore-remove-coverage","pushedAt":"2024-04-25T20:13:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"chore: remove checkCoverage script\n\nWe do not benefit from it for many years already.","shortMessageHtmlLink":"chore: remove checkCoverage script"}},{"before":"6dffb483636b809dc50bc92ae332175f4f2cbc82","after":"c03cbb1d862838745224da50e3691bdc0c4f2346","ref":"refs/heads/test-outcome-serial-mode-fix","pushedAt":"2024-04-25T19:54:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(reporters): properly determine flaky status for serial mode\n\nThere are plenty of edge cases in this area:\n- interrupted test run;\n- did not run because of serial mode failure;\n- failed before `test.skip()` call (e.g. in `beforeEach`)\n in one of the retries;\n- and more...","shortMessageHtmlLink":"fix(reporters): properly determine flaky status for serial mode"}},{"before":"0fac21fc89c2d60e5d49b3ef828eb0061315b5f6","after":"6dffb483636b809dc50bc92ae332175f4f2cbc82","ref":"refs/heads/test-outcome-serial-mode-fix","pushedAt":"2024-04-25T19:32:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(reporters): properly determine flaky status for serial mode\n\nThere are plenty of edge cases in this area:\n- interrupted test run;\n- did not run because of serial mode failure;\n- failed before `test.skip()` call (e.g. in `beforeEach`)\n in one of the retries;\n- and more...","shortMessageHtmlLink":"fix(reporters): properly determine flaky status for serial mode"}},{"before":null,"after":"0fac21fc89c2d60e5d49b3ef828eb0061315b5f6","ref":"refs/heads/test-outcome-serial-mode-fix","pushedAt":"2024-04-24T23:42:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"fix(reporters): properly determine flaky status for serial mode\n\nThere are plenty of edge cases in this area:\n- interrupted test run;\n- did not run because of serial mode failure;\n- failed before `test.skip()` call (e.g. in `beforeEach`)\n in one of the retries;\n- and more...","shortMessageHtmlLink":"fix(reporters): properly determine flaky status for serial mode"}},{"before":null,"after":"79fb5ffd73d42e78d71ffd06d42c3ab76627a075","ref":"refs/heads/test-unflake-reporter-spec","pushedAt":"2024-04-24T22:22:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"test: unflake \"should work with custom reporter\"","shortMessageHtmlLink":"test: unflake \"should work with custom reporter\""}},{"before":"6b49d243620084dce551b2a662b59bc424ef88e1","after":"d36fbb27cd45ebe197827563a360331ba87c9fe1","ref":"refs/heads/feat-locator-handler-improvements","pushedAt":"2024-04-24T21:08:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat(addLocatorHandler): various improvements\n\n- Automatically waiting for the overlay locator to be hidden,\n with `allowStayingVisible` opt-out.\n- `times: 1` option.\n- `removeLocatorHandler(locator, handler)` method.\n- Passing `locator` as first argument to `handler`.","shortMessageHtmlLink":"feat(addLocatorHandler): various improvements"}},{"before":null,"after":"fc877dfe747ac9300ccf1d42279d91614cd6703e","ref":"refs/heads/test-ff-beta-priority-header","pushedAt":"2024-04-24T19:54:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"test: adjust headers expectations for firefox-beta\n\nThere is a new experimental feature enabled in firefox-beta that\nsends a \"Priority\" header.","shortMessageHtmlLink":"test: adjust headers expectations for firefox-beta"}},{"before":"c4c1118b6be9732d0cf5aaed9685e675160f372c","after":"6b49d243620084dce551b2a662b59bc424ef88e1","ref":"refs/heads/feat-locator-handler-improvements","pushedAt":"2024-04-24T19:40:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dgozman","name":"Dmitry Gozman","path":"/dgozman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9881434?s=80&v=4"},"commit":{"message":"feat(addLocatorHandler): various improvements\n\n- Automatically waiting for the overlay locator to be hidden,\n with `allowStayingVisible` opt-out.\n- `times: 1` option.\n- `removeLocatorHandler(locator, handler)` method.\n- Passing `locator` as first argument to `handler`.","shortMessageHtmlLink":"feat(addLocatorHandler): various improvements"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAESwsW-QA","startCursor":null,"endCursor":null}},"title":"Activity · dgozman/playwright"}