fix: desktopCapturer and screen source ids should match screen ids (#42781)

* fix: desktopCapturer screen source ids should match screen ids

* test: add a regression test
This commit is contained in:
Shelley Vohr 2024-07-11 01:32:29 +02:00 committed by GitHub
parent fa6ce4f0f8
commit 4e10eeb87e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 48 additions and 6 deletions

View file

@ -1,5 +1,6 @@
import { expect } from 'chai';
import { Display, screen } from 'electron/main';
import { Display, screen, desktopCapturer } from 'electron/main';
import { ifit } from './lib/spec-helpers';
describe('screen module', () => {
describe('methods reassignment', () => {
@ -14,6 +15,26 @@ describe('screen module', () => {
});
});
describe('screen.getAllDisplays', () => {
it('returns an array of displays', () => {
const displays = screen.getAllDisplays();
expect(displays).to.be.an('array').with.lengthOf.at.least(1);
for (const display of displays) {
expect(display).to.be.an('object');
}
});
// desktopCapturer.getSources does not work as expected in Windows CI.
ifit(process.platform !== 'win32')('returns displays with IDs matching desktopCapturer source display IDs', async () => {
const displayIds = screen.getAllDisplays().map(d => `${d.id}`);
const sources = await desktopCapturer.getSources({ types: ['screen'] });
const sourceIds = sources.map(s => s.display_id);
expect(displayIds).to.have.members(sourceIds);
});
});
describe('screen.getCursorScreenPoint()', () => {
it('returns a point object', () => {
const point = screen.getCursorScreenPoint();