* Add end-to-end tests with Playwright This commit introduces end-to-end tests with Docker Compose to improve code quality and provide a more robust testing environment. This involves adding a GitHub workflow for manually triggering the test suite, Makefile commands for running, the tests, and configurations. This addition will enable easier testing and provide a platform for future test development. * Cleanup * Only allow manual CI trigger * Ignore e2e tests in Jest configuration Added 'testPathIgnorePatterns' field to the Jest configuration in order to ignore end-to-end tests when running unit tests. * Address code review comments * Update e2e test environment for multi-architecture support Modified the end-to-end test setup scripts and docker files to support both Linux and MacOS architectures. The build process now detects the system architecture and downloads the appropriate version of `mkcert`. Also, there is a control flow to build binaries only if they don't exist and the build files are now mounted from the build directory instead of being copied. These changes aim to make the e2e tests more robust and adaptable to different development environments. * Update Makefile and teleport.yaml for testing improvements Continued refinement of testing process by updating the Makefile and teleport.yaml. Changes to the Makefile include additional phony targets, modification of build-binaries, and a new 'all' target which runs key steps in sequence. The teleport.yaml file was updated to version v3. * Fix makefile on MacOS * Add Readme
1.6 KiB
Teleport E2E Tests
This directory contains end-to-end tests for Teleport. These tests are designed to be run against a live cluster. They are written in TS and use Playwright to interact with the browser. Docker compose is used to spin up a cluster for testing and to run the tests.
Running the tests
# Make all removes the existing docker volumes to ensure a clean state
# and rebuild the containers
make all
or
# Only run tests
make test
MacOS building notes
Before running the tests on MacOS in Docker, you need to build Linux compatible binaries.
Binaries are build using our Docker images inside build.assets directory. You can also
build them manually using make build-binaries command.
Running tests for development
Docker compose setup is designed to run tests in CI and create the same environment
locally, so debugging potential issues is easier. E2E tests make changes to the cluster,
so the order of the tests is important. To run tests for development, you can use
yarn test command to run the test against the existing cluster.
yarn codegen starts the Playwright codegen tool that allows to record the test
and generate the code for it. This improves the development speed as most code can be generated.
Common issues
Cannot run macOS (Mach-O) executable in Docker: Exec format error
This error means that you are trying to run MacOS binary on Linux. You need to build
Linux compatible binaries to run them in Docker. You can rebuild them using make build-binaries
or just remove existing binaries in ../build as they will be rebuilt automatically.