⛏️ Plugin (Legacy Plugin)
🪄 Builder
This diagram contains the basic overview. An interactive C4 graph is also available (recommended).
Verify correct behaviour inside the Challenges Plugin. JUnit is the test suite and MockBukkit is used to provide a mock Minecraft Server. External dependencies like sending data to AWS is mocked.
Verify correct behaviour inside the Builder Frontend. Cypress is used.
Verify correct behaviour inside the Live Frontend. Cypress is used and all data (challenge file, existing challenge events, live events from websocket) is mocked. No request to AWS is made.
Verify correct behaviour of the Lambda Handlers. Moto is used to mock the AWS resources.
Verify the test data on AWS (S3, DynamoDB) that was added by the plugin during a test run. More precisely this Integration Test verifies correct behaviour between the challenge plugin, the AWS gateway, the AWS Lambdas, and the data stored on AWS. The test data that was stored is explicitly not cleared after, because it is used in following Integration Tests.
Reuse the test data from the previous Integration Test. This test verifies that the data from AWS is correctly displayed. Reusing the data means that only challenge file and event data fetching is tested. Integration testing the live data flow is not done as it's just too complicated. The Live Fronted Unit Tests with mocked websockets should be sufficient.
The test data is now cleared.
The two Integration Tests form E2E tests.