Commit Graph

173 Commits

Author SHA1 Message Date
damencho
e82ef6de4b feat(tests): Uses memory logs on failure and stops logging during conference. 2025-10-22 15:58:12 -05:00
damencho
e0cad48734 feat(tests): Avoids using aria selector for breakout rooms.
It is reported to be slow at times.
2025-10-22 15:58:12 -05:00
Jaya Allamsetty
077602c427 fix(filmstrip) Fixes an issue where remote tiles can disappear when SS is started
* fix(filmstrip) Fixes an issue where remote tiles can disappear when SS is started.
Regression caused by 82d4628976. More testcases have been added.
2025-10-21 19:13:15 -04:00
Jaya Allamsetty
29fd5df16a fix(tests) Increase backToP2PDelay to 3 secs.
Setting it to 1 sec was causing p2p connections to be created when it was not needed.
2025-10-17 11:27:10 -05:00
damencho
f324122d93 feat(tests): Fail early and gather debug logs for iframe tests. 2025-10-16 16:00:39 -05:00
Jaya Allamsetty
82d4628976 fix(large-video)pin prev speaker on stage when local user is dominant speaker. (#16511)
* fix(large-video)pin prev speaker on stage when local user is dominant speaker.
Also fix the case where the dominant speaker sometimes doesn't show up in the filmstrip when SS is pinned to stage.

* fix(test) Add more tests for activeSpeaker

* fix(test) Do not check for large-video if there is no remote video track.

* fix(filmstrip) Get updated display name for calc speaker order
2025-10-16 15:35:15 -04:00
damencho
5b23072bd0 feat(tests): Make sure dial-in user hangups.
Avoid closing browser and leaving it to the timeout of the connection.
2025-10-16 11:22:22 -05:00
damencho
7b4cc552fb feat(tests): Increase the randomness of the room name. 2025-10-16 11:22:22 -05:00
damencho
eb188ff02a fix(tests): Wait dialog elements to be clickable.
To avoid trying to click too quickly while animations are still rendered. Avoids: Can't call elementClick on element with selector "//input[@name="lockKey"]" because element wasn't found
2025-10-16 11:22:22 -05:00
damencho
b40c24db70 fix(tests): Visitors tests to avoid reordered webhook events. 2025-10-16 11:22:22 -05:00
Jaya Allamsetty
a855f76377 fix(tests) Wait for p2p switch before checking for SS 2025-10-16 11:20:16 -04:00
damencho
f3e99624e9 fix(tests): Fix p2p enable flag in desktop sharing. 2025-10-15 15:32:20 -05:00
damencho
7d2cf3dbf2 fix: Disable urlNormalisation on FF. 2025-10-15 08:10:10 -05:00
bgrozev
9309d61c00 test: Fix jaas chat test again (typo). (#16548) 2025-10-14 17:08:02 -05:00
bgrozev
083037d152 test: Do not assert message order (they can race). (#16544) 2025-10-14 11:29:21 -05:00
bgrozev
ebff46971d test: Add a test for joining a MUC without a conference request. (#16537) 2025-10-14 10:24:06 -05:00
bgrozev
657aefefc2 test: Use timeout for expected codec changes. (#16539)
I suspect some intermittent test failures are caused by not waiting for
the codec change to complete. Might be exacerbated by
ensureThreeParticipants only waiting for 1 remote stream, which means
it the "ensureTwo(); ensureThree()" call may return before p2 sees p3.
2025-10-14 09:20:30 -05:00
bgrozev
88f1ef27c5 fix: Fix dial-in test (wait until the dialog is closed). (#16538) 2025-10-13 11:49:08 -05:00
bgrozev
447be3f6a9 Reorganize tests by feature, minor test updates (#16518)
* test: Move lockRoom under moderation/.

* ref: Cleanup lockRoom test.

* test: Move lockRoomDigitsOnly to ui/.

* test: Add a setPasswordAvailable expectation.

* ref: Move the lobby test to moderation/.

* test: Move tests to media/.

* test: Add a useTenant expectation.

* test: Move mute to media/.

* test: Move audioOnly to media/.

* test: Move startMuted to media/.

* test: Move codecSelection to media/.

* ref: Simplify, log the "actual" codec value.

* test: Move stopVideo to media/.

* test: Move videoLayout to ui/.

* test: Move chatPanel to ui/.

* test: Move switchVideo to media/pinning.spec.ts.

* test: Move audioVideoModeration to media/.

* test: Move displayName to ui/.

* test: Move preJoin to ui/.

* test: Move endConference to ui/.

* test: Move selfView to ui/.

* test: Move oneOnOne to ui/.

* test: Move tileView to ui/.

* test: Move singlePort and udp to misc/connectivity.spec.ts.

* test: Move avatars to misc/.

* test: Move polls to misc/.

* test: Move breakoutRooms to misc/.

* test: Move followMe to misc/.

* test: Move invite to dial/dialInUi.spec.ts.

* test: Move dialInAudio to dial/dialIn.spec.ts.

* test: Only log expectations in the main wdio process.

* test: Move fakeDialInAudio to dial/.

* test: Move subject to misc/.

* test: Check for subject set remotely.

* test: Remove references to "2way", "3way".

* test: Consolidate all dial-in tests in one file.

* test: Move dialIn to misc/.

* test: Adjust test titles.

* Remove waitForAudioFromDialInParticipant test.
2025-10-09 14:11:20 -05:00
bgrozev
8a7ee9bae5 test: Add skip reason to report (#16515)
* test: Add description, skip reason to Allure report.
* test: Adds reasons for skipped tests.
* test: Add more URL normalization test cases.
* ref: Move urlNormalization test to misc/.
2025-10-07 12:28:39 -05:00
bgrozev
1900c42098 test: Fix token for moderation test. (#16510) 2025-10-06 12:40:51 -05:00
Hristo Terezov
6deb0a6385 fix(large-video): Prevents unnecessary updates when container is hidden
Large video was being updated through scheduleLargeVideoUpdate even when
the large video container was hidden via CSS. This occurred in multiple
layout modes: tile view, stage filmstrip (with 2+ participants), and
etherpad editing. These updates caused expensive operations including
setting video streams, managing track listeners, updating avatars, and
running show/hide animations - all wasted CPU cycles since the container
wasn't visible.

The fix introduces a centralized shouldHideLargeVideo() function that checks
all cases where the large video container is hidden. This function is used in
selectParticipantInLargeVideo() to guard to not update the participant id.
A state listener monitors transitions from hidden to visible states and ensures
the large video participant id is properly updated when the container becomes
visible again and set to undefined when large video is hidden.

This improves performance by eliminating unnecessary video element manipulation
and handler execution across all layout modes where large video is not displayed.
2025-10-06 12:00:40 -05:00
damencho
69b0ac4686 fix(tests): Fixes randomly failing start muted test. 2025-10-02 17:18:57 -04:00
bgrozev
9f7eb6b657 test: Add configurable test expectations. (#16496)
* Add a sample "expectations" config.
* feat: Add configurable expectation for dial in.
* Add JaaS unauthenticatedJoins expectation.
* test: Move grantModerator to moderation/, add expectation.
* test: Move kick test to moderation/, fix p2p enabled case.
* test: Add a test case for non-moderator kick.
2025-10-02 15:49:03 -05:00
bgrozev
386bdbfc22 test: Use the directory as parentSuite. (#16493)
* test: Use the directory as a parent suite.
2025-10-02 14:30:57 -05:00
bgrozev
70c3c8db13 test: Refactor, update and fix JaaS tests (#16463)
* ref: Move the jaas util out of specs/.
* ref: Extract a more generic joinMuc utility.
* ref: Rename joinMuc to joinJaasMuc.
* ref: Move tileView.spec.ts out of 2way, use joinMuc.
* ref: Enforce that "name" is p1, p2, p3, p4 using types.
* fix: Fix mute test filename.
* ref: Split the chat test into jaas and iframe tests.
* test: Add webhook verification to jaas visitor tests.
* ref: Remove the iframe/visitors test (ported to jaas).
* ref: Move the transcriptions test to jaas.
* ref: Make getEndpointId work from outside the iframe.
* ref: Remove TestProperties.useIFrameApi. Use the flag in IParticipantOptions instead.
* ref: Do not set a special tenant when the iFrame API is used, leave it to tests to determine.
* ref: Remove the jaas-specific tests from iframe/participantsPresnce (will be re-added under jaas/ later).
* ref: Move the dial in/out tests to jaas/.
* Add tests for jaas join/leave webhooks (port back from iframe/participantsPresence).
* config: Fallback to IFRAME_TENANT and JWT_* for jaas configuration.
* ref: Simplify boolean expression.
* ref: Remove the skipFirstModerator option (unused).
* ref: Do not override token if specified.
* fix: Do not generate token for alone/invite test.
* ref: Extract more dial-in utilities.
* test: Verify Invite UI in jaas.
* Do not generate token for dial in (case covered in jaas/).
* ref: Remove preferGenerateToken (unused).
* ref: Move mute utils in their own helper.
* fix: Fix setting the jaas enabled flag.
* Do not run alone/invite for jaas (temp fix).
* fix: Switch back to meeting window.
* Do not run alone/dialInAudio on jaas.
* Disable the SIP jibri test (broken).
2025-10-01 11:40:02 -05:00
Дамян Минков
469406d7cd feat(polls): Move polls to using a component (#16406)
* squash: Renames module.

* squash: Loads polls component.

* squash: Attach needed logic when components/hosts load.

* squash: Moves to use component.

* squash: Uses json-message format with types.

* squash: Checks for polls support.

* squash: Fixes comments and moves validate polls to backend.

* squash: Fix debian build.

* fix(polls): Fixes polls in breakout rooms.

* squash: Further simplify types.

Separate type that needs to go into ljm and those used only for the UI part.
Simplify answer/voter type to be unified across operations which simplifies and its logic.

* squash: Change voters structure to be {id, name}.

* squash: Update react/features/conference/functions.any.ts

Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>

* squash: Drops roomJid from messages. Uses the connection information as breakout does.

---------

Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
2025-09-25 16:46:06 -05:00
bgrozev
7373123166 fix: Fix the tenant used for webhook proxy. (#16445)
* fix: Fix the tenant used for webhook proxy.

* squash: Linting, skip test if WH proxy is required but not configured.

* ref: Change visitorsLive to use the JaaS utils.

* ref: Move visitorsLive to the specs/jaas.

* squash: Fix import paths.

* fix: Use the iframe configured tenant for iframe tests.
2025-09-19 14:32:36 -05:00
Дамян Минков
e94df6799e fix(tests): Fixes error because of not waiting for conference left event.
Try to fix the error we see: 
Error: waitUntil condition failed with the following reason: Command script.callFunction with id 116 (with the following parameter: {"functionDeclaration":"function anonymous(\n) {\nreturn (/* __wdio script__ */()=>typeof APP!==\"undefined\"&&APP.conference?.isJoined()/* __wdio script end__ */).apply(this, arguments);\n}","awaitPromise":true,"arguments":[],"target":{"context":"10352FFE685AC1D0503E1ECA3BFD33B2"}}) timed out

Seems like we do not wait for all checks to happen and start joining again in the middle of switching/checking.
2025-09-09 17:59:43 -05:00
bgrozev
61764273b2 ref: Refactor tests (#16399)
* ref: Inline enterTileView.
* ref: Refactor tileView, remove tileView.LastN.
    The "last n" cases are not related to tile view and are covered in lastN.spec.ts.
* ref: Remove redundant "skipInMeetingChecks: true".
    skipInMeetingChecks is only used in ensureTwoParticipants, ensureThreeParticipants and ensureFourParticipants.
* ref: Move recording test to jaas/, more refactoring.
* ref: Rename and document switchToAPI() and switchInPage().
* ref: Move the tileView into 2way (temp).
2025-09-03 15:31:43 -05:00
damencho
6159a23c55 fix(tests): Fixes participantRoleChanged event handling. 2025-08-25 07:40:47 -05:00
damencho
1685c39c5d fix(tests): Fix passing correct participant options. 2025-08-22 15:09:53 -05:00
damencho
2cecc61b97 fix(tests): Make sure first participant is moderator. 2025-08-22 15:09:53 -05:00
damencho
df2262ae53 feat(tests): Return early if jaas tests not configured. 2025-08-22 15:09:53 -05:00
damencho
d61deab163 feat(tests): Make sure we add a single listener for iframeAPI events. 2025-08-22 15:09:53 -05:00
damencho
e7eab72c0c feat(tests): Clear previous videoConferenceLeft events. 2025-08-22 15:09:53 -05:00
damencho
c1e803c6e3 feat(tests): Increase wait time for webhooks. 2025-08-22 15:09:53 -05:00
bgrozev
61ee9af304 test: Add a test for visitors with single sender (PLI). (#16364) 2025-08-21 16:31:03 -05:00
bgrozev
d75de3642e Fix jaas tests (#16360)
* fix: Fix jaas joinMuc(), it remove now redundant calls to hangup().

* fix: Fix jaas passcode tests.

* ref: make joinParticipant private again.
2025-08-20 14:46:52 -05:00
bgrozev
dac9b5e244 test: Check for send/receive independently. (#16356)
This allows the logs to show which one definitely failed.
2025-08-19 15:31:52 -05:00
bgrozev
91e4ac1665 ref: Extract test configuration code to TestsConfig.ts (#16329)
* ref: Move iFrameUsesJaas to TestsConfig.

* ref: Move room name prefix/suffix to config.

* ref: Move JaaS configuration to TestsConfig.

* ref: Move iframe config to TestsConfig.

* ref: Move webproxy config to TestsConfig.

* ref: Move JWT config to TestsConfig.

* doc: Document some of the IContext fields.

* Add a debug config option.
2025-08-18 13:32:41 -05:00
Дамян Минков
85522aea25 feat(tests): Updates join logic. (#16320)
* fix: Fix example file.

* fix: Fix using webhook proxy with iframe and jaas tests.

* fix: Fixes detecting max users notification.

* ref: Clear _joinParticipant to not depend on participant names.

* ref: Use joinParticipant in jaas tests.

* ref: Drops JAAS_DOMAIN as BASE_URL is used.

* fix: Drops ctx from function parameters.

* ref: Drops not needed context members.

* ref: Drops extra function.

* ref: Participant.joinConference to use roomName from options.

* doc: Updates docs.

* fix: Adds roomName to joinOptions.

Make it possible to override the generated value.
2025-08-11 06:52:16 -05:00
bgrozev
048b089acd ref: Refactor tests (#16315)
* ref: Move iframe tests to iframe/.

* ref: Pass iFrameApi as Participant option.

* ref: Extract IParticipantJoinOptions.

* ref: Remove displayName from IJoinOptions (unused).

* ref: Move preferGenerateToken out of Participant.
2025-08-08 01:58:44 -05:00
bgrozev
b5ad984dab ref: Allow tests to specify the browsers they use in TestProperties. (#16313)
* ref: Allow tests to specify the browsers they use in TestProperties.
2025-08-06 08:47:50 -05:00
bgrozev
181ef92e1f Add a test for jaas passcode, refactor tests. (#16303)
* ref: Don't use global context for local state.

* ref: Don't use global context to store the pin.

* feat: Add a test for setting passcode via settings provisioning.

* Use local state.

* Remove "data" from context.

* ref: Rename a function.

* test: Fail quick when join muc fails, assert specific errors (e.g. "token expired").
2025-08-06 04:00:59 -05:00
bgrozev
252ef4604a test: Add JaaS-specific tests: join MUC, visitors, maxOccupants. (#16270)
* test: Add tests for joining a JaaS MUC with different token options.
* ref: Refactor token generation and usage
* ref: Reduce usage of global context 
* test: Add a maxOccupants jaas test.
2025-08-04 04:28:38 -05:00
damencho
2f9436afb1 fix(tests): Skip url normalisation test when using tokens. 2025-06-25 08:18:35 -05:00
damencho
66dc158c22 feat(tests): Adds a debug print for document ready. 2025-06-25 08:18:35 -05:00
damencho
bd612ef8ea fix(tests): Fixes Firefox tests excludes. 2025-06-24 08:29:10 -05:00
damencho
b93c69c24e feat(tests): Adds url normalize test. 2025-06-24 08:29:10 -05:00