Wire up logger
Summary: Splitting this up into the wiring and the actual usage. This just ensures we have a logger in place for handling deeplinks. Reviewed By: mweststrate Differential Revision: D31337457 fbshipit-source-id: b088a7396e38554a87502ba7d5669dbef1b398d7
This commit is contained in:
committed by
Facebook GitHub Bot
parent
4aa7439fbf
commit
7dd9cce9f2
@@ -368,7 +368,7 @@ function getTemplate(
|
|||||||
{
|
{
|
||||||
label: 'Trigger deeplink...',
|
label: 'Trigger deeplink...',
|
||||||
click() {
|
click() {
|
||||||
openDeeplinkDialog(store);
|
openDeeplinkDialog(store, logger);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import {
|
|||||||
useValue,
|
useValue,
|
||||||
} from 'flipper-plugin';
|
} from 'flipper-plugin';
|
||||||
import {handleDeeplink} from '../deeplink';
|
import {handleDeeplink} from '../deeplink';
|
||||||
|
import {Logger} from '../fb-interfaces/Logger';
|
||||||
|
|
||||||
test('Triggering a deeplink will work', async () => {
|
test('Triggering a deeplink will work', async () => {
|
||||||
const linksSeen: any[] = [];
|
const linksSeen: any[] = [];
|
||||||
@@ -46,7 +47,7 @@ test('Triggering a deeplink will work', async () => {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
const {renderer, client, store} = await renderMockFlipperWithPlugin(
|
const {renderer, client, store, logger} = await renderMockFlipperWithPlugin(
|
||||||
definition,
|
definition,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -54,6 +55,7 @@ test('Triggering a deeplink will work', async () => {
|
|||||||
|
|
||||||
await handleDeeplink(
|
await handleDeeplink(
|
||||||
store,
|
store,
|
||||||
|
logger,
|
||||||
`flipper://${client.query.app}/${definition.id}/universe`,
|
`flipper://${client.query.app}/${definition.id}/universe`,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -88,8 +90,11 @@ test('Triggering a deeplink will work', async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('Will throw error on invalid deeplinks', async () => {
|
test('Will throw error on invalid deeplinks', async () => {
|
||||||
// flipper:///support-form/?form=litho
|
const logger: Logger = {
|
||||||
|
track: jest.fn(),
|
||||||
|
} as any;
|
||||||
|
|
||||||
expect(() =>
|
expect(() =>
|
||||||
handleDeeplink(undefined as any, `flipper://test`),
|
handleDeeplink(undefined as any, logger, `flipper://test`),
|
||||||
).rejects.toThrowErrorMatchingInlineSnapshot(`"Unknown deeplink"`);
|
).rejects.toThrowErrorMatchingInlineSnapshot(`"Unknown deeplink"`);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import {
|
|||||||
setPastedToken,
|
setPastedToken,
|
||||||
} from './reducers/application';
|
} from './reducers/application';
|
||||||
import {Group, SUPPORTED_GROUPS} from './reducers/supportForm';
|
import {Group, SUPPORTED_GROUPS} from './reducers/supportForm';
|
||||||
|
import {Logger} from './fb-interfaces/Logger';
|
||||||
import {Store} from './reducers/index';
|
import {Store} from './reducers/index';
|
||||||
import {importDataToStore} from './utils/exportData';
|
import {importDataToStore} from './utils/exportData';
|
||||||
import {selectPlugin} from './reducers/connections';
|
import {selectPlugin} from './reducers/connections';
|
||||||
@@ -26,6 +27,7 @@ const UNKNOWN = 'Unknown deeplink';
|
|||||||
*/
|
*/
|
||||||
export async function handleDeeplink(
|
export async function handleDeeplink(
|
||||||
store: Store,
|
store: Store,
|
||||||
|
logger: Logger,
|
||||||
query: string,
|
query: string,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const uri = new URL(query);
|
const uri = new URL(query);
|
||||||
@@ -119,13 +121,13 @@ export const uriComponents = (url: string): Array<string> => {
|
|||||||
return [];
|
return [];
|
||||||
};
|
};
|
||||||
|
|
||||||
export function openDeeplinkDialog(store: Store) {
|
export function openDeeplinkDialog(store: Store, logger: Logger) {
|
||||||
Dialog.prompt({
|
Dialog.prompt({
|
||||||
title: 'Open deeplink',
|
title: 'Open deeplink',
|
||||||
message: 'Enter a deeplink:',
|
message: 'Enter a deeplink:',
|
||||||
defaultValue: 'flipper://',
|
defaultValue: 'flipper://',
|
||||||
onConfirm: async (deeplink) => {
|
onConfirm: async (deeplink) => {
|
||||||
await handleDeeplink(store, deeplink);
|
await handleDeeplink(store, logger, deeplink);
|
||||||
return deeplink;
|
return deeplink;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ test('Triggering a deeplink will work', async () => {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
const {renderer, client, store} = await renderMockFlipperWithPlugin(
|
const {renderer, client, store, logger} = await renderMockFlipperWithPlugin(
|
||||||
definition,
|
definition,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -88,6 +88,7 @@ test('Triggering a deeplink will work', async () => {
|
|||||||
|
|
||||||
await handleDeeplink(
|
await handleDeeplink(
|
||||||
store,
|
store,
|
||||||
|
logger,
|
||||||
`flipper://open-plugin?plugin-id=${definition.id}&client=${client.query.app}&payload=universe`,
|
`flipper://open-plugin?plugin-id=${definition.id}&client=${client.query.app}&payload=universe`,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -138,9 +139,8 @@ test('triggering a deeplink without applicable device can wait for a device', as
|
|||||||
supportedDevices: [{os: 'iOS'}],
|
supportedDevices: [{os: 'iOS'}],
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
const {renderer, store, createDevice} = await renderMockFlipperWithPlugin(
|
const {renderer, store, logger, createDevice} =
|
||||||
definition,
|
await renderMockFlipperWithPlugin(definition);
|
||||||
);
|
|
||||||
|
|
||||||
store.dispatch(
|
store.dispatch(
|
||||||
selectPlugin({selectedPlugin: 'nonexisting', deepLinkPayload: null}),
|
selectPlugin({selectedPlugin: 'nonexisting', deepLinkPayload: null}),
|
||||||
@@ -153,6 +153,7 @@ test('triggering a deeplink without applicable device can wait for a device', as
|
|||||||
|
|
||||||
const handlePromise = handleDeeplink(
|
const handlePromise = handleDeeplink(
|
||||||
store,
|
store,
|
||||||
|
logger,
|
||||||
`flipper://open-plugin?plugin-id=${definition.id}&devices=iOS`,
|
`flipper://open-plugin?plugin-id=${definition.id}&devices=iOS`,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -214,7 +215,7 @@ test('triggering a deeplink without applicable client can wait for a device', as
|
|||||||
id: 'pluggy',
|
id: 'pluggy',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
const {renderer, store, createClient, device} =
|
const {renderer, store, createClient, device, logger} =
|
||||||
await renderMockFlipperWithPlugin(definition);
|
await renderMockFlipperWithPlugin(definition);
|
||||||
|
|
||||||
store.dispatch(
|
store.dispatch(
|
||||||
@@ -228,6 +229,7 @@ test('triggering a deeplink without applicable client can wait for a device', as
|
|||||||
|
|
||||||
const handlePromise = handleDeeplink(
|
const handlePromise = handleDeeplink(
|
||||||
store,
|
store,
|
||||||
|
logger,
|
||||||
`flipper://open-plugin?plugin-id=${definition.id}&client=clienty`,
|
`flipper://open-plugin?plugin-id=${definition.id}&client=clienty`,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import {tryCatchReportPlatformFailures} from '../utils/metrics';
|
|||||||
import {handleDeeplink} from '../deeplink';
|
import {handleDeeplink} from '../deeplink';
|
||||||
import {Dialog} from 'flipper-plugin';
|
import {Dialog} from 'flipper-plugin';
|
||||||
|
|
||||||
export default (store: Store, _logger: Logger) => {
|
export default (store: Store, logger: Logger) => {
|
||||||
const currentWindow = remote.getCurrentWindow();
|
const currentWindow = remote.getCurrentWindow();
|
||||||
const onFocus = () => {
|
const onFocus = () => {
|
||||||
setImmediate(() => {
|
setImmediate(() => {
|
||||||
@@ -59,7 +59,7 @@ export default (store: Store, _logger: Logger) => {
|
|||||||
ipcRenderer.on(
|
ipcRenderer.on(
|
||||||
'flipper-protocol-handler',
|
'flipper-protocol-handler',
|
||||||
(_event: IpcRendererEvent, query: string) => {
|
(_event: IpcRendererEvent, query: string) => {
|
||||||
handleDeeplink(store, query).catch((e) => {
|
handleDeeplink(store, logger, query).catch((e) => {
|
||||||
console.warn('Failed to handle deeplink', query, e);
|
console.warn('Failed to handle deeplink', query, e);
|
||||||
Dialog.alert({
|
Dialog.alert({
|
||||||
title: 'Failed to open deeplink',
|
title: 'Failed to open deeplink',
|
||||||
|
|||||||
Reference in New Issue
Block a user