test: add spec for child-process-gone
event for utility process (#40281)
This commit is contained in:
parent
beb0cbc6d0
commit
a867503af6
2 changed files with 22 additions and 2 deletions
|
@ -29,7 +29,7 @@ Process: [Main](../glossary.md#main-process)<br />
|
|||
* `inherit`: equivalent to \['ignore', 'inherit', 'inherit']
|
||||
* `serviceName` string (optional) - Name of the process that will appear in `name` property of
|
||||
[`child-process-gone` event of `app`](app.md#event-child-process-gone).
|
||||
Default is `node.mojom.NodeService`.
|
||||
Default is `Node Utility Process`.
|
||||
* `allowLoadingUnsignedLibraries` boolean (optional) _macOS_ - With this flag, the utility process will be
|
||||
launched via the `Electron Helper (Plugin).app` helper executable on macOS, which can be
|
||||
codesigned with `com.apple.security.cs.disable-library-validation` and
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { expect } from 'chai';
|
||||
import * as childProcess from 'node:child_process';
|
||||
import * as path from 'node:path';
|
||||
import { BrowserWindow, MessageChannelMain, utilityProcess } from 'electron/main';
|
||||
import { BrowserWindow, MessageChannelMain, utilityProcess, app } from 'electron/main';
|
||||
import { ifit } from './lib/spec-helpers';
|
||||
import { closeWindow } from './lib/window-helpers';
|
||||
import { once } from 'node:events';
|
||||
|
@ -93,6 +93,26 @@ describe('utilityProcess module', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('app \'child-process-gone\' event', () => {
|
||||
it('with default serviceName', async () => {
|
||||
utilityProcess.fork(path.join(fixturesPath, 'crash.js'));
|
||||
const [, details] = await once(app, 'child-process-gone') as [any, Electron.Details];
|
||||
expect(details.type).to.equal('Utility');
|
||||
expect(details.serviceName).to.equal('node.mojom.NodeService');
|
||||
expect(details.name).to.equal('Node Utility Process');
|
||||
expect(details.reason).to.be.oneOf(['crashed', 'abnormal-exit']);
|
||||
});
|
||||
|
||||
it('with custom serviceName', async () => {
|
||||
utilityProcess.fork(path.join(fixturesPath, 'crash.js'), [], { serviceName: 'Hello World!' });
|
||||
const [, details] = await once(app, 'child-process-gone') as [any, Electron.Details];
|
||||
expect(details.type).to.equal('Utility');
|
||||
expect(details.serviceName).to.equal('node.mojom.NodeService');
|
||||
expect(details.name).to.equal('Hello World!');
|
||||
expect(details.reason).to.be.oneOf(['crashed', 'abnormal-exit']);
|
||||
});
|
||||
});
|
||||
|
||||
describe('kill() API', () => {
|
||||
it('terminates the child process gracefully', async () => {
|
||||
const child = utilityProcess.fork(path.join(fixturesPath, 'endless.js'), [], {
|
||||
|
|
Loading…
Reference in a new issue