+ const exitPromise = waitWorkerEvents(pool, 'exit', numberOfWorkers)
+ expect(pool.emitter.eventNames()).toStrictEqual([PoolEvents.busy])
+ let poolDestroy = 0
+ pool.emitter.on(PoolEvents.destroy, () => ++poolDestroy)
+ expect(pool.emitter.eventNames()).toStrictEqual([
+ PoolEvents.busy,
+ PoolEvents.destroy
+ ])
+ await pool.destroy()
+ const numberOfExitEvents = await exitPromise
+ expect(pool.started).toBe(false)
+ expect(pool.workerNodes.length).toBe(0)
+ expect(numberOfExitEvents).toBe(numberOfWorkers)
+ expect(poolDestroy).toBe(1)
+ })
+
+ it('Verify that cluster pool options are checked', async () => {
+ const workerFilePath = './tests/worker-files/cluster/testWorker.js'
+ let pool = new FixedClusterPool(numberOfWorkers, workerFilePath)
+ expect(pool.opts.env).toBeUndefined()
+ expect(pool.opts.settings).toBeUndefined()
+ await pool.destroy()
+ pool = new FixedClusterPool(numberOfWorkers, workerFilePath, {
+ env: { TEST: 'test' },
+ settings: { args: ['--use', 'http'], silent: true }
+ })
+ expect(pool.opts.env).toStrictEqual({ TEST: 'test' })
+ expect(pool.opts.settings).toStrictEqual({
+ args: ['--use', 'http'],
+ silent: true
+ })
+ expect({ ...pool.opts.settings, exec: workerFilePath }).toStrictEqual({
+ args: ['--use', 'http'],
+ silent: true,
+ exec: workerFilePath
+ })