From a4f322540f3c9eede38d73d644035e1e75c6bb15 Mon Sep 17 00:00:00 2001 From: mgamis-msft <79475487+mgamis-msft@users.noreply.github.com> Date: Tue, 3 Dec 2024 12:44:24 -0800 Subject: [PATCH] Automate bug bash tests involving dominant speakers, pinning, and spotlight (#5173) * Automate dominant speaker, pinning, and spotlight tests * changelogs * lint fix * lint fix * remove test.only * remove helper unused function * Update packages/react-components browser test snapshots * Update packages/react-components browser test snapshots * Update packages/react-composites CallComposite browser test snapshots * Update packages/react-composites CallComposite browser test snapshots * Update packages/react-components browser test snapshots * Update packages/react-components browser test snapshots * Update packages/react-composites CallComposite browser test snapshots * Update packages/react-composites CallComposite browser test snapshots * Update packages/react-components browser test snapshots * lint fixes * Update packages/react-components browser test snapshots --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- ...-6a26b83a-cf4b-44d0-ac74-87df7146f917.json | 9 + ...-6a26b83a-cf4b-44d0-ac74-87df7146f917.json | 9 + .../src/components/Drawer/DrawerMenu.tsx | 1 + .../tests/browser/VideoGallery.spec.tsx | 150 +++++++++++++++ ...achment-Mobile-Android-Landscape-linux.png | Bin 4405 -> 4400 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 28726 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 15653 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 17367 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 29775 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 16162 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 18088 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 29324 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 11147 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 14590 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 30368 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 12226 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 14829 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 17504 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 8362 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 9747 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 17652 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 9078 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 9675 bytes ...-before-spotlight-Desktop-Chrome-linux.png | Bin 0 -> 30239 bytes ...otlight-Mobile-Android-Landscape-linux.png | Bin 0 -> 16530 bytes ...potlight-Mobile-Android-Portrait-linux.png | Bin 0 -> 18635 bytes ...y-after-spotlight-Desktop-Chrome-linux.png | Bin 0 -> 19628 bytes ...otlight-Mobile-Android-Landscape-linux.png | Bin 0 -> 9936 bytes ...potlight-Mobile-Android-Portrait-linux.png | Bin 0 -> 11563 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 28726 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 15574 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 17367 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 29775 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 16162 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 18088 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 29324 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 11147 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 14590 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 30368 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 12226 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 14829 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 17504 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 8362 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 9747 bytes ...dominant-speakers-Desktop-Chrome-linux.png | Bin 0 -> 17652 bytes ...peakers-Mobile-Android-Landscape-linux.png | Bin 0 -> 9078 bytes ...speakers-Mobile-Android-Portrait-linux.png | Bin 0 -> 9675 bytes ...-before-spotlight-Desktop-Chrome-linux.png | Bin 0 -> 30239 bytes ...otlight-Mobile-Android-Landscape-linux.png | Bin 0 -> 16530 bytes ...potlight-Mobile-Android-Portrait-linux.png | Bin 0 -> 18635 bytes ...y-after-spotlight-Desktop-Chrome-linux.png | Bin 0 -> 19628 bytes ...otlight-Mobile-Android-Landscape-linux.png | Bin 0 -> 9936 bytes ...potlight-Mobile-Android-Portrait-linux.png | Bin 0 -> 11563 bytes .../browser/call/hermetic/Pinning.test.ts | 176 ++++++++++++++++++ ...video-tile-before-Desktop-Chrome-linux.png | Bin 0 -> 29169 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...e-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 49921 bytes ...-video-tile-after-Desktop-Chrome-linux.png | Bin 0 -> 31380 bytes ...e-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 25936 bytes ...le-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 57917 bytes ...video-tile-before-Desktop-Chrome-linux.png | Bin 0 -> 34902 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 23119 bytes ...e-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 44377 bytes ...-video-tile-after-Desktop-Chrome-linux.png | Bin 0 -> 29042 bytes ...e-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...le-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 50392 bytes ...ipant-item-before-Desktop-Chrome-linux.png | Bin 0 -> 29171 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...m-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 49921 bytes ...cipant-item-after-Desktop-Chrome-linux.png | Bin 0 -> 65734 bytes ...m-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 29067 bytes ...em-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 61636 bytes ...ipant-item-before-Desktop-Chrome-linux.png | Bin 0 -> 70523 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 41991 bytes ...m-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 125497 bytes ...cipant-item-after-Desktop-Chrome-linux.png | Bin 0 -> 60624 bytes ...m-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...em-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 49921 bytes ...3-1-pin-max-tiles-Desktop-Chrome-linux.png | Bin 0 -> 47501 bytes ...x-tiles-Mobile-Android-Landscape-linux.png | Bin 0 -> 39324 bytes ...ax-tiles-Mobile-Android-Portrait-linux.png | Bin 0 -> 79977 bytes ...video-tile-before-Desktop-Chrome-linux.png | Bin 0 -> 29169 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...e-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 49921 bytes ...-video-tile-after-Desktop-Chrome-linux.png | Bin 0 -> 31380 bytes ...e-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 25936 bytes ...le-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 57917 bytes ...video-tile-before-Desktop-Chrome-linux.png | Bin 0 -> 34902 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 23118 bytes ...e-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 44377 bytes ...-video-tile-after-Desktop-Chrome-linux.png | Bin 0 -> 29042 bytes ...e-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...le-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 50392 bytes ...ipant-item-before-Desktop-Chrome-linux.png | Bin 0 -> 29169 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...m-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 49921 bytes ...cipant-item-after-Desktop-Chrome-linux.png | Bin 0 -> 65278 bytes ...m-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 29067 bytes ...em-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 61636 bytes ...ipant-item-before-Desktop-Chrome-linux.png | Bin 0 -> 70097 bytes ...-before-Mobile-Android-Landscape-linux.png | Bin 0 -> 40904 bytes ...m-before-Mobile-Android-Portrait-linux.png | Bin 0 -> 123870 bytes ...cipant-item-after-Desktop-Chrome-linux.png | Bin 0 -> 60139 bytes ...m-after-Mobile-Android-Landscape-linux.png | Bin 0 -> 22985 bytes ...em-after-Mobile-Android-Portrait-linux.png | Bin 0 -> 49921 bytes ...3-1-pin-max-tiles-Desktop-Chrome-linux.png | Bin 0 -> 47501 bytes ...x-tiles-Mobile-Android-Landscape-linux.png | Bin 0 -> 39324 bytes ...ax-tiles-Mobile-Android-Portrait-linux.png | Bin 0 -> 79977 bytes 108 files changed, 345 insertions(+) create mode 100644 change-beta/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json create mode 100644 change/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json create mode 100644 packages/react-components/tests/browser/VideoGallery.spec.tsx create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-2-videogallery-with-audio-only-after-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-2-videogallery-with-audio-only-after-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-2-videogallery-with-audio-only-after-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-2-1-videogallery-with-some-video-before-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-2-1-videogallery-with-some-video-before-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-2-1-videogallery-with-some-video-before-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-2-2-videogallery--with-some-video-after-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-2-2-videogallery--with-some-video-after-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-2-2-videogallery--with-some-video-after-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-3-1-videogallery-with-screen-share-before-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-3-1-videogallery-with-screen-share-before-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-3-1-videogallery-with-screen-share-before-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-3-2-videogallery-with-screen-share-after-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-3-2-videogallery-with-screen-share-after-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-3-2-videogallery-with-screen-share-after-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-4-1-videogallery-before-spotlight-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-4-1-videogallery-before-spotlight-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-4-1-videogallery-before-spotlight-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-4-2-videogallery-after-spotlight-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-4-2-videogallery-after-spotlight-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-4-2-videogallery-after-spotlight-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-1-2-videogallery-with-audio-only-after-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-1-2-videogallery-with-audio-only-after-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-1-2-videogallery-with-audio-only-after-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-2-1-videogallery-with-some-video-before-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-2-1-videogallery-with-some-video-before-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-2-1-videogallery-with-some-video-before-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-2-2-videogallery--with-some-video-after-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-2-2-videogallery--with-some-video-after-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-2-2-videogallery--with-some-video-after-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-3-1-videogallery-with-screen-share-before-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-3-1-videogallery-with-screen-share-before-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-3-1-videogallery-with-screen-share-before-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-3-2-videogallery-with-screen-share-after-dominant-speakers-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-3-2-videogallery-with-screen-share-after-dominant-speakers-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-3-2-videogallery-with-screen-share-after-dominant-speakers-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-4-1-videogallery-before-spotlight-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-4-1-videogallery-before-spotlight-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-4-1-videogallery-before-spotlight-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-4-2-videogallery-after-spotlight-Desktop-Chrome-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-4-2-videogallery-after-spotlight-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-components/tests/snapshots/stable/VideoGallery.spec.tsx-snapshots/VGL-4-2-videogallery-after-spotlight-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/call/hermetic/Pinning.test.ts create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-1-pin-video-tile-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-1-pin-video-tile-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-1-pin-video-tile-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-2-pin-video-tile-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-2-pin-video-tile-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-2-pin-video-tile-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-3-unpin-video-tile-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-3-unpin-video-tile-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-3-unpin-video-tile-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-4-unpin-video-tile-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-4-unpin-video-tile-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-4-unpin-video-tile-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-1-pin-participant-item-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-1-pin-participant-item-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-1-pin-participant-item-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-2-pin-participant-item-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-2-pin-participant-item-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-2-pin-participant-item-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-3-unpin-participant-item-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-3-unpin-participant-item-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-3-unpin-participant-item-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-4-unpin-participant-item-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-4-unpin-participant-item-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-4-unpin-participant-item-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-3-1-pin-max-tiles-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-3-1-pin-max-tiles-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/beta/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-3-1-pin-max-tiles-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-1-pin-video-tile-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-1-pin-video-tile-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-1-pin-video-tile-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-2-pin-video-tile-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-2-pin-video-tile-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-2-pin-video-tile-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-3-unpin-video-tile-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-3-unpin-video-tile-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-3-unpin-video-tile-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-4-unpin-video-tile-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-4-unpin-video-tile-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-1-4-unpin-video-tile-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-1-pin-participant-item-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-1-pin-participant-item-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-1-pin-participant-item-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-2-pin-participant-item-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-2-pin-participant-item-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-2-pin-participant-item-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-3-unpin-participant-item-before-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-3-unpin-participant-item-before-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-3-unpin-participant-item-before-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-4-unpin-participant-item-after-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-4-unpin-participant-item-after-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-2-4-unpin-participant-item-after-Mobile-Android-Portrait-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-3-1-pin-max-tiles-Desktop-Chrome-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-3-1-pin-max-tiles-Mobile-Android-Landscape-linux.png create mode 100644 packages/react-composites/tests/browser/snapshots/stable/tests/browser/call/hermetic/Pinning.test.ts-snapshots/PIN-3-1-pin-max-tiles-Mobile-Android-Portrait-linux.png diff --git a/change-beta/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json b/change-beta/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json new file mode 100644 index 00000000000..1d0761ddfcf --- /dev/null +++ b/change-beta/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json @@ -0,0 +1,9 @@ +{ + "type": "patch", + "area": "improvement", + "workstream": "Automated tests", + "comment": "Automate dominant speaker, pinning, and spotlight tests", + "packageName": "@azure/communication-react", + "email": "miguelgamis@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json b/change/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json new file mode 100644 index 00000000000..1d0761ddfcf --- /dev/null +++ b/change/@azure-communication-react-6a26b83a-cf4b-44d0-ac74-87df7146f917.json @@ -0,0 +1,9 @@ +{ + "type": "patch", + "area": "improvement", + "workstream": "Automated tests", + "comment": "Automate dominant speaker, pinning, and spotlight tests", + "packageName": "@azure/communication-react", + "email": "miguelgamis@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/packages/react-components/src/components/Drawer/DrawerMenu.tsx b/packages/react-components/src/components/Drawer/DrawerMenu.tsx index bc831b39975..ba72c69870b 100644 --- a/packages/react-components/src/components/Drawer/DrawerMenu.tsx +++ b/packages/react-components/src/components/Drawer/DrawerMenu.tsx @@ -107,6 +107,7 @@ export const _DrawerMenu = (props: _DrawerMenuProps): JSX.Element => { styles={props.styles?.drawerSurfaceStyles} onLightDismiss={props.onLightDismiss} heading={props.heading} + data-ui-id="drawer-menu" > {menuItemsToRender?.slice(0, 1).map((item) => diff --git a/packages/react-components/tests/browser/VideoGallery.spec.tsx b/packages/react-components/tests/browser/VideoGallery.spec.tsx new file mode 100644 index 00000000000..a6657d604cc --- /dev/null +++ b/packages/react-components/tests/browser/VideoGallery.spec.tsx @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import React from 'react'; +import { test, expect } from '@playwright/experimental-ct-react'; +import { VideoGallery } from '../../src/components/VideoGallery'; +import { VideoGalleryLocalParticipant, VideoGalleryRemoteParticipant } from '../../src'; +import { Stack } from '@fluentui/react'; + +test.describe('VGL - VideoGallery tests', () => { + test.beforeEach(async ({ page }) => { + await page.evaluate(() => document.fonts.ready); + }); + + test('VideoGallery with only audio participants and dominant speakers', async ({ mount }) => { + const localParticipant: VideoGalleryLocalParticipant = { userId: 'test' }; + const remoteParticipants: VideoGalleryRemoteParticipant[] = Array.from({ length: 10 }, (_, i) => i + 1).map( + (i) => ({ + userId: `${i}`, + displayName: `${i}` + }) + ); + const component = await mount( + + + + ); + await expect(component).toHaveScreenshot('VGL-1-1-videogallery-with-audio-only-before-dominant-speakers.png'); + await component.update( + + + + ); + await expect(component).toHaveScreenshot('VGL-1-2-videogallery-with-audio-only-after-dominant-speakers.png'); + }); + + test('VideoGallery with video participants and dominant speakers', async ({ mount }) => { + const localParticipant: VideoGalleryLocalParticipant = { userId: 'test' }; + const remoteParticipants: VideoGalleryRemoteParticipant[] = Array.from({ length: 10 }, (_, i) => i + 1).map( + (i) => ({ + userId: `${i}`, + displayName: `${i}` + }) + ); + // Assign video stream to some participants + remoteParticipants[1].videoStream = { isAvailable: true }; + remoteParticipants[2].videoStream = { isAvailable: true }; + remoteParticipants[4].videoStream = { isAvailable: true }; + remoteParticipants[6].videoStream = { isAvailable: true }; + remoteParticipants[8].videoStream = { isAvailable: true }; + + const component = await mount( + + + + ); + await expect(component).toHaveScreenshot('VGL-2-1-videogallery-with-some-video-before-dominant-speakers.png'); + await component.update( + + + + ); + await expect(component).toHaveScreenshot('VGL-2-2-videogallery--with-some-video-after-dominant-speakers.png'); + }); + + test('VideoGallery with screen share on and dominant speakers', async ({ mount }) => { + const localParticipant: VideoGalleryLocalParticipant = { userId: 'test' }; + const remoteParticipants: VideoGalleryRemoteParticipant[] = Array.from({ length: 10 }, (_, i) => i + 1).map( + (i) => ({ + userId: `${i}`, + displayName: `${i}` + }) + ); + remoteParticipants[5].isScreenSharingOn = true; + remoteParticipants[5].screenShareStream = { isAvailable: true }; + const component = await mount( + + + + ); + await expect(component).toHaveScreenshot('VGL-3-1-videogallery-with-screen-share-before-dominant-speakers.png'); + await component.update( + + + + ); + await expect(component).toHaveScreenshot('VGL-3-2-videogallery-with-screen-share-after-dominant-speakers.png'); + }); + + test('VideoGallery spotlight participant test', async ({ mount }) => { + const localParticipant: VideoGalleryLocalParticipant = { userId: 'test' }; + const remoteParticipants: VideoGalleryRemoteParticipant[] = Array.from({ length: 10 }, (_, i) => i + 1).map( + (i) => ({ userId: `${i}`, displayName: `${i}` }) + ); + const screenSharingParticipant: VideoGalleryRemoteParticipant = { + userId: '11', + displayName: '11' + }; + remoteParticipants.push(screenSharingParticipant); + const component = await mount( + + + + ); + await expect(component).toHaveScreenshot('VGL-4-1-videogallery-before-spotlight.png'); + remoteParticipants[7].spotlight = { spotlightedOrderPosition: 1 }; + component.update( + + + + ); + await expect(component).toHaveScreenshot('VGL-4-2-videogallery-after-spotlight.png'); + }); +}); diff --git a/packages/react-components/tests/snapshots/beta/ChatMyMessageComponent.spec.tsx-snapshots/chat-my-message-component-rich-text-edit-box-empty-html-content-without-attachment-Mobile-Android-Landscape-linux.png b/packages/react-components/tests/snapshots/beta/ChatMyMessageComponent.spec.tsx-snapshots/chat-my-message-component-rich-text-edit-box-empty-html-content-without-attachment-Mobile-Android-Landscape-linux.png index b73007e3199a126995f8bbc1b27699ee128c988b..c4e51fdda25e78da9b3c23e5a96ecdb68c22ab07 100644 GIT binary patch literal 4400 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 QS0E6*J20)%+fL#C14hTNzyJUM literal 4405 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 literal 0 HcmV?d00001 diff --git a/packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Mobile-Android-Landscape-linux.png b/packages/react-components/tests/snapshots/beta/VideoGallery.spec.tsx-snapshots/VGL-1-1-videogallery-with-audio-only-before-dominant-speakers-Mobile-Android-Landscape-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..0533e96d75f0e94b63bd6bef7485824f93c3da35 GIT binary patch literal 15653 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