Files
flipper/static/transforms/__tests__/electron-stubs.node.js
John Knox 76d40e7ddf Use node's perf_hooks
Summary:
I tried switching Flipper to use the node.js module: https://nodejs.org/api/perf_hooks.html instead of electrons window.performance. But the module couldn't be found.

So instead, I'm just replacing it in the pure node tests.

This means tests without node can work without issues.

Reviewed By: danielbuechele

Differential Revision: D10302114

fbshipit-source-id: b3b8aa5fb350a8246fcdfc2a80cc72daec2448d7
2018-10-22 09:00:38 -07:00

37 lines
1.1 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 {transform} from '@babel/core';
import generate from '@babel/generator';
import electronStubs from '../electron-stubs';
const babelOptions = {
ast: true,
plugins: [electronStubs],
filename: 'index.js',
};
test('transform electron requires to inlined stubs', () => {
const src = 'require("electron")';
const transformed = transform(src, babelOptions).ast;
const body = transformed.program.body[0];
expect(body.type).toBe('ExpressionStatement');
expect(body.expression.properties.map(p => p.key.name)).toContain('remote');
});
test('transform performance calls to requires', () => {
for (const method of ['mark', 'measure']) {
const src = `performance.${method}('something')`;
const transformed = transform(src, babelOptions).ast;
const {code} = generate(transformed);
expect(code).toBe(
`require('perf_hooks').performance.${method}('something');`,
);
}
});