Comments (2)
mockReactNativeFirestore
actually does the mock for you, so you shouldn't have to call jest.mock
. The test should look like:
describe('your test', () => {
mockReactNativeFirestore({
userCollection: {
1: {
collection: [101922, 1535, 105778, 105398, 30002],
},
},
};
test('something', () => {
// the rest of the test
});
});
from firestore-jest-mock.
mockReactNativeFirestore
actually does the mock for you, so you shouldn't have to calljest.mock
. The test should look like:describe('your test', () => { mockReactNativeFirestore({ userCollection: { 1: { collection: [101922, 1535, 105778, 105398, 30002], }, }, }; test('something', () => { // the rest of the test }); });
Hm. My tests still failed.
This time I mocked firestore like this:
mockReactNativeFirestore({
database: {
userCollection: [
{
id: '1',
collection: [101922, 1535, 105778, 105398, 30002],
},
],
},
});
My test looks like this:
it('should render item title', () => {
const wrapper = render(<ListItem item={item} isInCollection={true} />);
expect(wrapper.getAllByText('Some title')).toHaveLength(1);
expect(wrapper.getAllByText('Finished')).toHaveLength(1);
});
Inside component I'm using firestore like this:
const firebase = firestore().collection('userCollection').doc(user?.user.uid);
<Button
testID="remove_button"
onPress={() => {
firebase.update({
collection: firestore.FieldValue.arrayRemove(item.id),
});
}}>
Remove
</Button>
The only way I found to make tests work is to mock firebase manually like this:
jest.mock('@react-native-firebase/firestore', () => {
const mockFirestore: any = jest.fn().mockReturnValue({
collection: jest.fn().mockReturnValue({
doc: jest.fn().mockReturnValue({
collection: [101922, 1535, 105778, 105398, 30002],
update: jest.fn(),
}),
}),
});
mockFirestore.FieldValue = {
arrayUnion: jest.fn(),
arrayRemove: jest.fn(),
};
return mockFirestore;
});
This way works but I will need to extend it for every new case, so it is better to use your library.
I will appreciate any ideas of how to make it work. Thank you.
Oh, I forgot to add an error I got during the test.
TypeError: Cannot read properties of undefined (reading 'collection')
from firestore-jest-mock.
Related Issues (20)
- QueryDocumentSnapshot that passed to trigger functions doesn't contain createTime element HOT 1
- Firebase Cloud Messaging HOT 2
- Is Firestore mock delete() not yet implemented? HOT 6
- How to test a trigger HOT 2
- Where query on nested fields HOT 6
- Firestore mock for DocumentReference.create() HOT 7
- Checking for mockUpdate within a datasnapshot forEach HOT 3
- React Native Support HOT 3
- include firebase/admin with 'import' instead of 'require' HOT 4
- Example of multiple tests with different database data? HOT 3
- Jest, `mockDoc` validate collection type (v0.18.0)
- Requires wrong package for firebase 9 HOT 4
- firestore and auth mocks not complete on firebase-admin HOT 1
- broken links for firebase doc references
- `set` without merge overrides _collections HOT 1
- Transfer Repo HOT 9
- Is there a way to test multiple firestore states? HOT 1
- Mock the unsubscribe callback returned by onSnapshot HOT 2
- Simulate undefined properties update error
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from firestore-jest-mock.