Summary: Plugins moved from "sonar/desktop/src/plugins" to "sonar/desktop/plugins". Fixed all the paths after moving. New "desktop" folder structure: - `src` - Flipper desktop app JS code executing in Electron Renderer (Chrome) process. - `static` - Flipper desktop app JS code executing in Electron Main (Node.js) process. - `plugins` - Flipper desktop JS plugins. - `pkg` - Flipper packaging lib and CLI tool. - `doctor` - Flipper diagnostics lib and CLI tool. - `scripts` - Build scripts for Flipper desktop app. - `headless` - Headless version of Flipper desktop app. - `headless-tests` - Integration tests running agains Flipper headless version. Reviewed By: mweststrate Differential Revision: D20344186 fbshipit-source-id: d020da970b2ea1e001f9061a8782bfeb54e31ba0
66 lines
2.2 KiB
TypeScript
66 lines
2.2 KiB
TypeScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @flow strict-local
|
|
*/
|
|
|
|
import {
|
|
getRequiredParameters,
|
|
parameterIsNumberType,
|
|
replaceRequiredParametersWithValues,
|
|
filterOptionalParameters,
|
|
} from '../util/uri';
|
|
|
|
test('parse required parameters from uri', () => {
|
|
const testURI =
|
|
'fb://test_uri/?parameter1={parameter1}¶meter2={parameter2}';
|
|
const expectedResult = ['{parameter1}', '{parameter2}'];
|
|
expect(getRequiredParameters(testURI)).toEqual(expectedResult);
|
|
});
|
|
|
|
test('parse required numeric parameters from uri', () => {
|
|
const testURI =
|
|
'fb://test_uri/?parameter1={#parameter1}¶meter2={#parameter2}';
|
|
const expectedResult = ['{#parameter1}', '{#parameter2}'];
|
|
expect(getRequiredParameters(testURI)).toEqual(expectedResult);
|
|
});
|
|
|
|
test('replace required parameters with values', () => {
|
|
const testURI =
|
|
'fb://test_uri/?parameter1={parameter1}¶meter2={parameter2}';
|
|
const expectedResult = 'fb://test_uri/?parameter1=okay¶meter2=sure';
|
|
expect(
|
|
replaceRequiredParametersWithValues(testURI, ['okay', 'sure']),
|
|
).toEqual(expectedResult);
|
|
});
|
|
|
|
test('skip non-required parameters in replacement', () => {
|
|
const testURI =
|
|
'fb://test_uri/?parameter1={parameter1}¶meter2={?parameter2}¶meter3={parameter3}';
|
|
const expectedResult =
|
|
'fb://test_uri/?parameter1=okay¶meter2={?parameter2}¶meter3=sure';
|
|
expect(
|
|
replaceRequiredParametersWithValues(testURI, ['okay', 'sure']),
|
|
).toEqual(expectedResult);
|
|
});
|
|
|
|
test('detect if required parameter is numeric type', () => {
|
|
expect(parameterIsNumberType('{#numerictype}')).toBe(true);
|
|
});
|
|
|
|
test('detect if required parameter is not numeric type', () => {
|
|
expect(parameterIsNumberType('{numerictype}')).toBe(false);
|
|
});
|
|
|
|
test('filter optional parameters from uri', () => {
|
|
const testURI =
|
|
'fb://test_uri/{?param_here}/?parameter1={parameter1}¶meter2={?parameter2}&numericParameter={#numericParameter}¶meter3={?parameter3}';
|
|
const expextedResult =
|
|
'fb://test_uri/?parameter1={parameter1}&numericParameter={#numericParameter}';
|
|
expect(filterOptionalParameters(testURI)).toBe(expextedResult);
|
|
});
|