Files
flipper/src/__tests__/server.electron.js
John Knox dbb723f8a5 Add FLIPPER_PORTS env var to desktop app
Summary:
Part 3 and final part of adding customizable ports. To use this, the iOS / Android apps have to also be started with the same custom ports.

Example usage: `FLIPPER_PORTS=8189,8188 yarn start`

Reviewed By: passy

Differential Revision: D13801761

fbshipit-source-id: 3dd80a3001ed0855e54cc568fa94eb6fac5fc7f1
2019-01-25 07:24:13 -08:00

58 lines
1.6 KiB
JavaScript

/**
* Copyright 2018-present Facebook.
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @format
*/
import {init as initLogger} from '../fb-stubs/Logger';
import Server from '../server';
import reducers from '../reducers/index.js';
import configureStore from 'redux-mock-store';
import path from 'path';
import os from 'os';
import fs from 'fs';
let server;
const mockStore = configureStore([])(reducers(undefined, {type: 'INIT'}));
beforeAll(() => {
// create config directory, which is usually created by static/index.js
const flipperDir = path.join(os.homedir(), '.flipper');
if (!fs.existsSync(flipperDir)) {
fs.mkdirSync(flipperDir);
}
const logger = initLogger(mockStore);
server = new Server(logger, mockStore);
});
test('servers starting at ports', done => {
const ports = mockStore.getState().application.serverPorts;
const serversToBeStarted = new Set([ports.secure, ports.insecure]);
// Resolve promise when we get a listen event for each port
const listenerPromise = new Promise((resolve, reject) => {
server.addListener('listening', port => {
if (!serversToBeStarted.has(port)) {
throw Error(`unknown server started at port ${port}`);
} else {
serversToBeStarted.delete(port);
}
if (serversToBeStarted.size === 0) {
done();
resolve();
}
});
});
// Initialise server after the listeners have been setup
server.init();
return listenerPromise;
});
afterAll(() => {
return server.close();
});