Fix broken tests (#1523)

This commit is contained in:
Adam Weeden 2023-03-24 14:16:49 -04:00 committed by GitHub
parent 79009e87cd
commit 69625f1a01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 9 deletions

1
.gitignore vendored
View File

@ -65,3 +65,4 @@ nativefier*.tgz
.actrc .actrc
tsconfig.tsbuildinfo tsconfig.tsbuildinfo
scripts

View File

@ -66,6 +66,9 @@ async function getDisplayMedia(
sourceId: number | string, sourceId: number | string,
): Promise<MediaStream> { ): Promise<MediaStream> {
type OriginalVideoPropertyType = boolean | MediaTrackConstraints | undefined; type OriginalVideoPropertyType = boolean | MediaTrackConstraints | undefined;
if (!window?.navigator?.mediaDevices) {
throw Error('window.navigator.mediaDevices is not present');
}
// Electron supports an outdated specification for mediaDevices, // Electron supports an outdated specification for mediaDevices,
// see https://www.electronjs.org/docs/latest/api/desktop-capturer/ // see https://www.electronjs.org/docs/latest/api/desktop-capturer/
const stream = await window.navigator.mediaDevices.getUserMedia({ const stream = await window.navigator.mediaDevices.getUserMedia({
@ -262,6 +265,9 @@ function setupScreenSharePicker(
function setDisplayMediaPromise(): void { function setDisplayMediaPromise(): void {
// Since no implementation for `getDisplayMedia` exists in Electron we write our own. // Since no implementation for `getDisplayMedia` exists in Electron we write our own.
if (!window?.navigator?.mediaDevices) {
return;
}
window.navigator.mediaDevices.getDisplayMedia = (): Promise<MediaStream> => { window.navigator.mediaDevices.getDisplayMedia = (): Promise<MediaStream> => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const sources = ipcRenderer.invoke( const sources = ipcRenderer.invoke(

View File

@ -18,7 +18,7 @@ type ElectronRelease = {
files: string[]; files: string[];
}; };
const ELECTRON_VERSIONS_URL = 'https://atom.io/download/atom-shell/index.json'; const ELECTRON_VERSIONS_URL = 'https://releases.electronjs.org/releases.json';
export async function getChromeVersionForElectronVersion( export async function getChromeVersionForElectronVersion(
electronVersion: string, electronVersion: string,

View File

@ -26,7 +26,7 @@ async function checkApp(
expect( expect(
path.join( path.join(
inputOptions.out, inputOptions.out,
`Google-${inputOptions.platform as string}-${arch}`, `npm-${inputOptions.platform as string}-${arch}`,
), ),
).toBe(appRoot); ).toBe(appRoot);
} }
@ -34,7 +34,7 @@ async function checkApp(
let relativeResourcesDir = 'resources'; let relativeResourcesDir = 'resources';
if (inputOptions.platform === 'darwin') { if (inputOptions.platform === 'darwin') {
relativeResourcesDir = path.join('Google.app', 'Contents', 'Resources'); relativeResourcesDir = path.join('npm.app', 'Contents', 'Resources');
} }
const appPath = path.join(appRoot, relativeResourcesDir, 'app'); const appPath = path.join(appRoot, relativeResourcesDir, 'app');
@ -47,7 +47,7 @@ async function checkApp(
expect(inputOptions.targetUrl).toBe(nativefierConfig?.targetUrl); expect(inputOptions.targetUrl).toBe(nativefierConfig?.targetUrl);
// Test name inferring // Test name inferring
expect(nativefierConfig?.name).toBe('Google'); expect(nativefierConfig?.name).toBe('npm');
// Test icon writing // Test icon writing
const iconFile = const iconFile =
@ -118,7 +118,7 @@ describe('Nativefier', () => {
out: tempDirectory, out: tempDirectory,
overwrite: true, overwrite: true,
platform, platform,
targetUrl: 'https://google.com/', targetUrl: 'https://npmjs.com/',
}; };
const appPath = await buildNativefierApp(options); const appPath = await buildNativefierApp(options);
expect(appPath).not.toBeUndefined(); expect(appPath).not.toBeUndefined();
@ -177,7 +177,7 @@ describe('Nativefier upgrade', () => {
globalShortcuts: shortcuts, globalShortcuts: shortcuts,
out: tempDirectory, out: tempDirectory,
overwrite: true, overwrite: true,
targetUrl: 'https://google.com/', targetUrl: 'https://npmjs.com/',
...baseAppOptions, ...baseAppOptions,
}; };
const appPath = await buildNativefierApp(options); const appPath = await buildNativefierApp(options);

View File

@ -164,7 +164,7 @@ describe('Application launch', () => {
); );
expect(headerStyle.backgroundColor).toBe(fuschia); expect(headerStyle.backgroundColor).toBe(fuschia);
await mainWindow.click('#nav-products-link'); await mainWindow.click('#nav-pricing-link');
await mainWindow.waitForLoadState('domcontentloaded'); await mainWindow.waitForLoadState('domcontentloaded');
const headerStylePostNavigate = await mainWindow.$eval('header', (el) => const headerStylePostNavigate = await mainWindow.$eval('header', (el) =>
window.getComputedStyle(el), window.getComputedStyle(el),
@ -196,7 +196,7 @@ describe('Application launch', () => {
test('can open internal links', async () => { test('can open internal links', async () => {
const mainWindow = (await spawnApp()) as Page; const mainWindow = (await spawnApp()) as Page;
await mainWindow.waitForLoadState('domcontentloaded'); await mainWindow.waitForLoadState('domcontentloaded');
await mainWindow.click('#nav-products-link'); await mainWindow.click('#nav-pricing-link');
await mainWindow.waitForLoadState('domcontentloaded'); await mainWindow.waitForLoadState('domcontentloaded');
expect(app.windows()).toHaveLength(1); expect(app.windows()).toHaveLength(1);
}); });
@ -277,7 +277,7 @@ describe('Application launch', () => {
await mainWindow.waitForLoadState('domcontentloaded'); await mainWindow.waitForLoadState('domcontentloaded');
await Promise.all([ await Promise.all([
mainWindow.click('#nav-products-link'), mainWindow.click('#nav-pricing-link'),
mainWindow.waitForNavigation({ waitUntil: 'domcontentloaded' }), mainWindow.waitForNavigation({ waitUntil: 'domcontentloaded' }),
]); ]);