Add tests for client-id / app name parsing
Summary: Add tests for client-id / app name parsing. We've had a lot of bugs here in the past. Get some good test coverage so we have some assurance the shared utils for it won't be broken. Reviewed By: jknoxville Differential Revision: D18830269 fbshipit-source-id: 07c9755bbeae28c48580f44453d4010d6d3830b0
This commit is contained in:
committed by
Facebook Github Bot
parent
94ce34066b
commit
006003ae6b
50
src/utils/__tests__/clientUtils.node.tsx
Normal file
50
src/utils/__tests__/clientUtils.node.tsx
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
/**
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {deconstructClientId, buildClientId} from '../clientUtils';
|
||||||
|
|
||||||
|
test('client id constructed correctly', () => {
|
||||||
|
const consoleErrorSpy = jest.spyOn(global.console, 'error');
|
||||||
|
const clientId = buildClientId({
|
||||||
|
app: 'Instagram',
|
||||||
|
os: 'iOS',
|
||||||
|
device: 'iPhone Simulator',
|
||||||
|
device_id: 'EC431B79-69F1-4705-9FE5-9AE5D96378E1',
|
||||||
|
});
|
||||||
|
expect(clientId).toBe(
|
||||||
|
'Instagram#iOS#iPhone Simulator#EC431B79-69F1-4705-9FE5-9AE5D96378E1',
|
||||||
|
);
|
||||||
|
expect(consoleErrorSpy).toHaveBeenCalledTimes(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('client id deconstructed correctly', () => {
|
||||||
|
const deconstructedClientId = deconstructClientId(
|
||||||
|
'Instagram#iOS#iPhone Simulator#EC431B79-69F1-4705-9FE5-9AE5D96378E1',
|
||||||
|
);
|
||||||
|
expect(deconstructedClientId).toStrictEqual({
|
||||||
|
app: 'Instagram',
|
||||||
|
os: 'iOS',
|
||||||
|
device: 'iPhone Simulator',
|
||||||
|
device_id: 'EC431B79-69F1-4705-9FE5-9AE5D96378E1',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('client id deconstruction error logged', () => {
|
||||||
|
const consoleErrorSpy = jest.spyOn(global.console, 'error');
|
||||||
|
const deconstructedClientId = deconstructClientId(
|
||||||
|
'Instagram#iPhone Simulator#EC431B79-69F1-4705-9FE5-9AE5D96378E1',
|
||||||
|
);
|
||||||
|
expect(deconstructedClientId).toStrictEqual({
|
||||||
|
app: 'Instagram',
|
||||||
|
os: 'iPhone Simulator',
|
||||||
|
device: 'EC431B79-69F1-4705-9FE5-9AE5D96378E1',
|
||||||
|
device_id: undefined,
|
||||||
|
});
|
||||||
|
expect(consoleErrorSpy).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user