Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEAT: [EVERYTHING] Discuss and strategize and implement integration testing strategy #28

Open
ccornick opened this issue Nov 27, 2023 · 2 comments
Assignees

Comments

@ccornick
Copy link
Collaborator

ccornick commented Nov 27, 2023

Our climate suite is very modular and can be fragile when making changes in one repo. We should devise a strategy wherein code updates in a single repo get automatically tested against existing climate code to ensure connection points do not break.

@ccornick
Copy link
Collaborator Author

Michael and Zach to look at Mocha framework for testing of individual repos. Estimated around 2 weeks total.

Mocha could provide end to end testing that would test entire system from create org to retire token.

@ccornick
Copy link
Collaborator Author

ccornick commented Nov 28, 2023

Workflow 1 (Core Registry E2E)

  1. Create organization (CADT) - ensure all applications (CTE, explorer, etc.) pick up the newly created org and are not sending errors. Should include a logo when creating organization
  2. Edit organization (CADT) - change name and/or prefix for the organization
  3. Subscribe to org (CADT) - ensure you can subscribe to an organization not already listed in governance node
  4. Unsubscribe to org (CADT) - ensure you can unsubscribe to an organization and no longer receive updates
  5. Create project with subtables (CADT) - this includes staging a record with at least issuance sub table populated, and then committing the project
  6. Create unit with subtable for issuance (CADT) - includes staging a record after project is committed so that you can reference the issuance ID when creating unit. Make sure the unit status is NOT "retired" "cancelled" or "expired".
  7. Add file (CADT) - upload a file
  8. Edit project (CADT) - change table and reference the file uploaded in prior test
  9. Edit unit (CADT) - change table data
  10. Split unit (CADT) - split unit into at least two different records
  11. Delete unit (CADT) - delete one of the unit records
  12. Issue token (CTE) - issue token for the remaining unit record. Once issued, ensure explorer gets the activity as "tokenization". Ensure that CADT metadata is updated properly by calling metadata endpoint. Ensure CADT unit data is updated correctly with marketplace and marketplaceIdentifier.
  13. Send token (Wallet) - send some partial amount of token to another wallet address using climate wallet (using the token driver endpoints)
  14. Retire token (Wallet) - retire some partial amount of token using the Climate Wallet. Add beneficiary name and key. Once retirement is complete, ensure Explorer detects and has the right beneficiary name and key. Ensure CTE processes the retirement, and CADT updates unit record with retirement data (specifically unit owner field is updated with beneficiary name and unitStatusReason is updated with beneficiary public key. Also unitStatus should be retired). Ensure CADT metadata is updated with lastRetiredHeight.

Workflow 2 (CADT + Tokenization E2E)

  1. Create organization (CADT) - ensure all applications (CTE, explorer, etc.) pick up the newly created org and are not sending errors. Should include a logo when creating organization
  2. Edit organization (CADT) - change name and/or logo for the organization
  3. Subscribe to org (CADT) - ensure you can subscribe to an organization not already listed in governance node
  4. Unsubscribe to org (CADT) - ensure you can unsubscribe to an organization and no longer receive updates
  5. Create project with subtables (CADT) - this includes staging a record with at least issuance sub table populated, and then committing the project
  6. Create unit with subtable for issuance (CADT) - includes staging a record after project is committed so that you can reference the issuance ID when creating unit. Make sure the unit status is NOT "retired" "cancelled" or "expired".
  7. Add file (CADT) - upload a file
  8. Edit project (CADT) - change table and reference the file uploaded in prior test
  9. Split unit (CADT) - split unit into at least two different records
  10. Delete unit (CADT) - delete one of the unit records
  11. Issue token (CTE) - issue token for the remaining unit record. Once issued, ensure explorer gets the activity as "tokenization". Ensure that CADT metadata is updated properly by calling metadata endpoint.
  12. Edit unit record (CADT) - add token assetID to marketplaceIdentifier for unit record. Ensure this makes the endpoint from CTE "get tokenized units" returns the unit record in question.
  13. Send token (Wallet) - send some partial amount of token to another wallet address using climate wallet (using the token driver endpoints)
  14. Retire token (Wallet) - retire some partial amount of token using the Climate Wallet. Add beneficiary name and key. Once retirement is complete, ensure Explorer detects and has the right beneficiary name and key.

@ccornick ccornick self-assigned this Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant