One type of test is called integration testing, which observes how separate systems interact. Specifically, how ServiceA may interact with ServiceB, like an API calling a DB to update an entry.
For databases, we use 'mocking' which starts an instance of the db locally and gives it fake data. The tests will start a server and run operations between server and DB, and verify that the results are what was expected.
FireStore doesn't have a way to start a local instance. Instead, it provides an emulator to use. Figure out a way to use the FireStore emulator for integration tests. Assume the FireStore wrapper (which should reference the emulated DB) and the backend application are in a docker container, and the tests call endpoints on the server which interact with FireStore.
Your task is to do research on the FireStore emulator and propose a plan for how to mock FireStore data to be used in an integration test.
One type of test is called integration testing, which observes how separate systems interact. Specifically, how ServiceA may interact with ServiceB, like an API calling a DB to update an entry.
For databases, we use 'mocking' which starts an instance of the db locally and gives it fake data. The tests will start a server and run operations between server and DB, and verify that the results are what was expected.
FireStore doesn't have a way to start a local instance. Instead, it provides an emulator to use. Figure out a way to use the FireStore emulator for integration tests. Assume the FireStore wrapper (which should reference the emulated DB) and the backend application are in a docker container, and the tests call endpoints on the server which interact with FireStore.
Your task is to do research on the FireStore emulator and propose a plan for how to mock FireStore data to be used in an integration test.