webcomponents.org icon indicating copy to clipboard operation
webcomponents.org copied to clipboard

[catalog-server] Run tests against real Firestore

Open justinfagnani opened this issue 1 year ago • 1 comments

Tests against real (GCP production) Firestore will presumably be more accurate wrt to transactions, indices, and security rules.

To do this properly we will need to:

  • [x] Create a test GCP project to separate prod and test environments.
  • [ ] Be able to set the GCP project with a flag or environment variable, and set it from the GitHub actions
  • [ ] Namespace all collections so that tests can run in parallel without interfering with each other. The root collection somewhat obviously needs to namespaces, but so do any collections that are used in a .collectionGroup() query, like customElements, so it's probably best to just make factories for all Firestore references and namespace them all.
  • [ ] Have a robust data cleanup script that runs after tests. This script will need to use the namespace used in the tests it's cleaning up after.

justinfagnani avatar Sep 23 '22 16:09 justinfagnani

The emulator is pretty good, especially for testing all different security rule permissions.

https://firebase.google.com/docs/firestore/security/test-rules-emulator

CaptainCodeman avatar Sep 23 '22 19:09 CaptainCodeman