47 lines
2.0 KiB
TypeScript
47 lines
2.0 KiB
TypeScript
import { setTestProperties } from '../../helpers/TestProperties';
|
|
import { ensureTwoParticipants } from '../../helpers/participants';
|
|
|
|
setTestProperties(__filename, {
|
|
description: 'Checks the filmstrip visibility when joining from a mobile browser.',
|
|
usesBrowsers: [ 'p1', 'p2' ]
|
|
});
|
|
|
|
describe('Filmstrip on a mobile browser', () => {
|
|
before(async () => {
|
|
// Make p2's Chrome look like an iPhone so Platform.OS resolves to 'ios' and isMobileBrowser()
|
|
// returns true. emulate() persists for the session.
|
|
await multiRemoteBrowser.getInstance('p2').emulate('device', 'iPhone 15');
|
|
});
|
|
|
|
it('filmstrip and self view are visible when joining a 1:1 call', async () => {
|
|
await ensureTwoParticipants({
|
|
configOverwrite: {
|
|
// The deployment config may show the deep linking page on a mobile browser; disable it.
|
|
deeplinking: {
|
|
disabled: true
|
|
},
|
|
|
|
// The default config for tests disables 1-on-1 mode, enable it to test it.
|
|
disable1On1Mode: false
|
|
}
|
|
});
|
|
|
|
const { p2 } = ctx;
|
|
|
|
// Make sure the mobile emulation is in effect, otherwise the test silently degrades into
|
|
// testing the desktop UI.
|
|
expect(await p2.execute(() => navigator.userAgent)).toContain('iPhone');
|
|
expect(await p2.execute(() => window.innerWidth)).toBeLessThan(500);
|
|
|
|
// The whole filmstrip (including the self view) must not be hidden when joining a 1:1 call
|
|
// on a narrow/mobile client.
|
|
await p2.getFilmstrip().assertVisible();
|
|
await p2.getFilmstrip().assertSelfViewIsHidden(false);
|
|
|
|
// On mobile browsers the remote thumbnails are hidden in 1-on-1 mode even when the toolbar is
|
|
// visible (the remote participant is already on the stage), as opposed to desktop where their
|
|
// visibility follows the toolbar one.
|
|
await p2.getFilmstrip().verifyRemoteVideosDisplay(false);
|
|
});
|
|
});
|