summaryrefslogtreecommitdiff
path: root/frontend-old/node_modules/@firebase/auth/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'frontend-old/node_modules/@firebase/auth/README.md')
-rw-r--r--frontend-old/node_modules/@firebase/auth/README.md139
1 files changed, 139 insertions, 0 deletions
diff --git a/frontend-old/node_modules/@firebase/auth/README.md b/frontend-old/node_modules/@firebase/auth/README.md
new file mode 100644
index 0000000..74e5296
--- /dev/null
+++ b/frontend-old/node_modules/@firebase/auth/README.md
@@ -0,0 +1,139 @@
+# @firebase/auth
+
+This is the Firebase Authentication component of the Firebase JS SDK.
+
+**This package is not intended for direct usage, and should only be used via the officially supported [firebase](https://www.npmjs.com/package/firebase) package.**
+
+## Testing
+
+The modular Auth SDK has both unit tests and integration tests, along with a
+host of npm scripts to run these tests. The most important commands are:
+
+| Command | Description |
+| ------- | ----------- |
+| `yarn test` | This will run lint, unit tests, and integration tests against the live environment|
+| `yarn test:<platform>` | Runs all browser tests, unit and integration |
+| `yarn test:<platform>:unit` | Runs only \<platform> unit tests |
+| `yarn test:<platform>:unit:debug` | Runs \<platform> unit tests, auto-watching for file system changes |
+| `yarn test:<platform>:integration` | Runs only integration tests against the live environment |
+| `yarn test:<platform>:integration:local` | Runs all headless \<platform> integration tests against the emulator (more below) |
+| `yarn test:browser:integration:prodbackend` | Runs TOTP MFA integration tests against the backend (more below) |
+
+Where \<platform> is "browser" or "node". There are also cordova tests, but they
+are not broken into such granular details. Check out `package.json` for more.
+
+### Integration testing with the emulator
+
+To test against the emulator, set up the Auth emulator
+([instructions](https://firebase.google.com/docs/emulator-suite/connect_and_prototype)).
+The easiest way to run these tests is to use the `firebase emulators:exec`
+command
+([documentation](https://firebase.google.com/docs/emulator-suite/install_and_configure#startup)).
+You can also manually start the emulator separately, and then point the tests
+to it by setting the `GCLOUD_PROJECT` and `FIREBASE_AUTH_EMULATOR_HOST`
+environmental variables. In addition to the commands listed above, the below
+commands also run various tests:
+
+ * `yarn test:integration:local` — Executes Node and browser emulator
+ integration tests, as well as the Selenium WebDriver tests
+
+ * `yarn test:webdriver` — Executes only the Selenium WebDriver
+ integration tests
+
+Note - The webdriver tests require the Chrome webdriver to match the version of Chrome running locally.
+In the CI environment, this is ensured using the environment variable [here.](https://github.com/firebase/firebase-js-sdk/blob/6e80a678fe0c31046860554cec0459a2be34d22b/.github/workflows/test-changed-auth.yml#L7)
+When running locally, change the chromedriver version in [package.json](https://github.com/firebase/firebase-js-sdk/blob/6e80a678fe0c31046860554cec0459a2be34d22b/packages/auth/package.json#L124) to match your local Chrome version and run `yarn install`.
+
+
+For example, to run all integration and WebDriver tests against the emulator,
+you would simply execute the following command:
+
+```sh
+firebase emulators:exec --project foo-bar --only auth "yarn test:integration:local"
+```
+
+### Integration testing with the production backend
+
+Currently, MFA TOTP, password policy, and reCAPTCHA Enterprise phone verification tests only run
+against the production backend (since they are not supported on the emulator yet).
+Running against the backend also makes it a more reliable end-to-end test.
+
+#### TOTP
+
+The TOTP tests require the following email/password combination to exist in the project, so if you are running this test against your test project, please create this user:
+
+'totpuser-donotdelete@test.com', 'password'
+
+You also need to verify this email address, in order to use MFA. This can be done with a curl command like this:
+
+```
+curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H "X-Goog-User-Project: ${PROJECT_ID}" -X POST https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode -d '{
+ "email": "totpuser-donotdelete@test.com",
+ "requestType": "VERIFY_EMAIL",
+ "returnOobLink": true,
+ }'
+```
+
+#### Password policy
+
+The password policy tests require a tenant configured with a password policy that requires all options to exist in the project.
+
+If you are running this test against your test project, please create the tenant and configure the policy with the following curl command:
+
+```
+curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H "X-Goog-User-Project: ${PROJECT_ID}" -X POST https://identitytoolkit.googleapis.com/v2/projects/${PROJECT_ID}/tenants -d '{
+ "displayName": "passpol-tenant",
+ "passwordPolicyConfig": {
+ "passwordPolicyEnforcementState": "ENFORCE",
+ "passwordPolicyVersions": [
+ {
+ "customStrengthOptions": {
+ "minPasswordLength": 8,
+ "maxPasswordLength": 24,
+ "containsLowercaseCharacter": true,
+ "containsUppercaseCharacter": true,
+ "containsNumericCharacter": true,
+ "containsNonAlphanumericCharacter": true
+ }
+ }
+ ]
+ }
+ }'
+```
+
+Replace the tenant ID `passpol-tenant-d7hha` in [test/integration/flows/password_policy.test.ts](https://github.com/firebase/firebase-js-sdk/blob/main/packages/auth/test/integration/flows/password_policy.test.ts) with the ID for the newly created tenant. The tenant ID can be found at the end of the `name` property in the response and is in the format `passpol-tenant-xxxxx`.
+
+#### reCAPTCHA Enterprise phone verification
+
+The reCAPTCHA Enterprise phone verification tests require reCAPTCHA Enterprise to be enabled and
+the following fictional phone number to be configured and in the project.
+
+If you are running this
+test against your project, please [add this test phone number](https://firebase.google.com/docs/auth/web/phone-auth#create-fictional-phone-numbers-and-verification-codes):
+
+'+1 555-555-1000', SMS code: '123456'
+
+Follow [this guide](https://cloud.google.com/identity-platform/docs/recaptcha-enterprise) to enable reCAPTCHA
+Enterprise, then use the following curl command to set reCAPTCHA Enterprise to ENFORCE for phone provider:
+
+```
+curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H "X-Goog-User-Project: $
+{PROJECT_ID}" -X POST https://identitytoolkit.googleapis.com/v2/projects/${PROJECT_ID}/config?updateMask=recaptchaConfig.phoneEnforcementState,recaptchaConfig.useSmsBotScore,recaptchaConfig.useSmsTollFraudProtection -d '
+{
+ "name": "projects/{PROJECT_ID}",
+ "recaptchaConfig": {
+ "phoneEnforcementState": "ENFORCE",
+ "useSmsBotScore": "true",
+ "useSmsTollFraudProtection": "true",
+ },
+}'
+```
+
+### Selenium Webdriver tests
+
+These tests assume that you have both Firefox and Chrome installed on your
+computer and in your `$PATH`. The tests will error out if this is not the case.
+The WebDriver tests talk to the emulator, but unlike the headless integration
+tests, these run in a browser robot environment; the assertions themselves run
+in Node. When you run these tests a small Express server will be started to
+serve the static files the browser robot uses.