@react-native-firebase/app
Version:
A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto
48 lines (47 loc) • 2.23 kB
JavaScript
;
import { expect, jest } from '@jest/globals';
import { createMessage } from "./index.js";
export const checkV9Deprecation = (modularFunction, nonModularFunction) => {
const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {});
consoleWarnSpy.mockRestore();
modularFunction();
expect(consoleWarnSpy).not.toHaveBeenCalled();
consoleWarnSpy.mockClear();
const consoleWarnSpy2 = jest.spyOn(console, 'warn').mockImplementation(() => {});
nonModularFunction();
expect(consoleWarnSpy2).toHaveBeenCalledTimes(1);
consoleWarnSpy2.mockClear();
};
export const createCheckV9Deprecation = moduleNames => {
return (modularFunction, nonModularFunction, methodNameKey, uniqueMessage, checkFirebaseAppDeprecationWarning = false) => {
const moduleName = moduleNames[0]; // firestore, database, etc
const instanceName = moduleNames[1] || 'default'; // default, FirestoreCollectionReference, etc
const consoleWarnSpy = jest.spyOn(console, 'warn');
consoleWarnSpy.mockReset();
consoleWarnSpy.mockImplementation(warnMessage => {
const firebaseAppDeprecationMessage = warnMessage.includes('Please use `getApp()` instead.');
if (checkFirebaseAppDeprecationWarning) {
throw new Error(`Console warn was called unexpectedly with: ${warnMessage}`);
} else {
if (!firebaseAppDeprecationMessage) {
// we want to ignore all firebase app deprecation warnings (e.g. "Please use `getApp()` instead.") unless actually testing for it which we do above
throw new Error(`Console warn was called unexpectedly with: ${warnMessage}`);
}
}
});
// Do not call `mockRestore()` unless removing the spy
modularFunction();
consoleWarnSpy.mockReset();
consoleWarnSpy.mockRestore();
const consoleWarnSpy2 = jest.spyOn(console, 'warn').mockImplementation(warnMessage => {
const message = createMessage(moduleName, methodNameKey, instanceName, uniqueMessage);
if (message) {
expect(warnMessage).toMatch(message);
}
});
nonModularFunction();
expect(consoleWarnSpy2).toHaveBeenCalledTimes(1);
consoleWarnSpy2.mockReset();
};
};
//# sourceMappingURL=unitTestUtils.js.map