Files
flipper/desktop/plugins/navigation/__tests__/testURI.node.tsx
Anton Nikolaev 10d990c32c Move plugins to "sonar/desktop/plugins"
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
2020-03-14 14:35:18 -07:00

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}&parameter2={parameter2}';
const expectedResult = ['{parameter1}', '{parameter2}'];
expect(getRequiredParameters(testURI)).toEqual(expectedResult);
});
test('parse required numeric parameters from uri', () => {
const testURI =
'fb://test_uri/?parameter1={#parameter1}&parameter2={#parameter2}';
const expectedResult = ['{#parameter1}', '{#parameter2}'];
expect(getRequiredParameters(testURI)).toEqual(expectedResult);
});
test('replace required parameters with values', () => {
const testURI =
'fb://test_uri/?parameter1={parameter1}&parameter2={parameter2}';
const expectedResult = 'fb://test_uri/?parameter1=okay&parameter2=sure';
expect(
replaceRequiredParametersWithValues(testURI, ['okay', 'sure']),
).toEqual(expectedResult);
});
test('skip non-required parameters in replacement', () => {
const testURI =
'fb://test_uri/?parameter1={parameter1}&parameter2={?parameter2}&parameter3={parameter3}';
const expectedResult =
'fb://test_uri/?parameter1=okay&parameter2={?parameter2}&parameter3=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}&parameter2={?parameter2}&numericParameter={#numericParameter}&parameter3={?parameter3}';
const expextedResult =
'fb://test_uri/?parameter1={parameter1}&numericParameter={#numericParameter}';
expect(filterOptionalParameters(testURI)).toBe(expextedResult);
});