Frontend Repository for Fyle <> Quickbooks Online Integration
Please refer this link to find the documentation of the project.
Follow instructions mentioned in Integrations Central
-
Install dependencies
npm install
-
Copy
environment.json
from integrations-central/ and add it tosrc/environments
cp ../fyle-integrations-central/app-secrets/qbo-app-2/environment.json src/environments/environment.json
-
Run app
npm start
Note: All the steps mentioned in this section are one time activity
-
It would be very easy if we use this org for running tests since we have pre populated data in Fyle to run tests
Email: [email protected] | Org Name: Fyle For QBO Angular Tests - Github Action
Email: [email protected] | Org Name: Fyle For netsuiteMicroActiontesting
-
Login to this org on local once and complete QBO OAuth connection (Connect to
Sandbox Company_US_2
company in QBO) -
Update values for these variables in
e2e_tests
key inenvironment.json
(present insrc/environments
) - (Copy all these values from local storage) Note: Copy refresh_token fromuser
key in local storage"workspace_id": "", "refresh_token": "", "org_id": ""
-
Create an sql function to partially setup an org to run tests -
# bash into database \i ../fyle-qbo-api/sql/functions/e2e-test-setup-workspace-local.sql;
-
Partially reset the org using the sql script we created -
select reset_workspace_e2e(<workspace_id_goes_here>);
-
Make sure the app and api is up and running
-
To open Cypress UI and run end to end test spec wise, use this command -
npm run cypress_open
Note: Running this command will decrease the code coverage since we run 1 test at a time
-
To run all end to end tests and update code coverage, use this command -
npm run cypress_run
Note: Running this command will update the code coverage This step is highly recommended when you write a new end to end test
-
To reset the org to initial data, use the
reset_workspace_e2e()
sql function and re run tests
- Add new test for new feature in micro action
- Before running Journey test, do reset the db for the org, using
reset_workspace_e2e()
- End to End tests runs on all PRs, after the PR is approved. Only if all tests pass, contributor will be able to merge it to master. This happens against the staging environment. We'll receive a comment in the PR about the run status and code coverage summary.
- End to End tests against production environment will run every Tuesday and Thursday at 2pm.
- Manually if we wanted to trigger end to end tests, we can make use of manual github action and run it against Staging/Production environment with the specified branch and click on
Run Workflow
button. - Once the tests are completed, we'll receive a message on slack with the summary and screen recordings incase the test fails.
- Consider the following scenario for example -
- Developer raised a PR -> reviewer approved it -> e2e failed -> dev fixed the broken test
- Now, to trigger the action, the developer should manually trigger the github action by creating a label named
run e2e tests
in the PR. - Dev will be able to un label and label them multiple times to trigger e2e tests. Note: Labels can be found in the right side section where Reviewer, Assignee are maintained
For more detailed notes, please to check the Notion doc about End to End Tests on QBO App