jest-firestore
Version:
Run your tests using Jest & Firestore Emulator
55 lines (54 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getFirestoreEmulatorOptions = getFirestoreEmulatorOptions;
exports.getFreePort = getFreePort;
exports.shouldUseSharedDBForAllJestWorkers = shouldUseSharedDBForAllJestWorkers;
var _path = require("path");
var _net = require("net");
const configFile = process.env.JEST_FIRESTORE_CONFIG_FILE || 'jest-firestore-config.js';
const defaultEmulatorOptions = {
auto_download: true,
project_id: 'demo-e2e-test',
/**
* By default `localhost` is used. But NodeJS sometimes resolves it
* to IPv6 address where firestore emulator not listen for it.
*/
host: '127.0.0.1'
};
function getFirestoreEmulatorOptions(rootDir) {
try {
const {
firestoreEmulatorOptions: options
} = require((0, _path.resolve)(rootDir, configFile));
return {
...defaultEmulatorOptions,
...options
};
} catch (e) {
return defaultEmulatorOptions;
}
}
function shouldUseSharedDBForAllJestWorkers(rootDir) {
try {
const {
useSharedDBForAllJestWorkers
} = require((0, _path.resolve)(rootDir, configFile));
if (typeof useSharedDBForAllJestWorkers === 'undefined') {
return true;
}
return useSharedDBForAllJestWorkers;
} catch (e) {
return true;
}
}
function getFreePort() {
return new Promise(res => {
const srv = (0, _net.createServer)();
srv.listen(0, () => {
const port = srv.address().port;
srv.close(() => res(port));
});
});
}