Migrate existing vscode UI tests to cypress #2590
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Intent
This PR updates the infrastructure of the e2e testing facility while adding tests that mimic the existing coverage of the tests within
test/vscode
.Resolves #2586
When this PR is merged, we can then merge in #2584, which will remove the old tests, which then will unblock #2569 and various other PRs which are failing CI.
Type of Change
Approach
As outlined within the related issue, there were a few tests implemented within the
test/vscode
project that needed to be replicated. These fell into a few buckets:User Impact
No impact to users - this affects internal testing only.
Automated Tests
All the changes are related to automated tests.
Directions for Reviewers
Because of the addition of several projects into the testing content workspace, a review of the changes by walking through the commits individually is recommended.
You will see that I have extended the functionality available within the Cypress commands. The tests required both reading and writing of the config files, while also accepting errors to be present. To handle this, I have swapped out the
toml
library for a newer library (smol-toml
) and have implemented reading & writing, as well as wildcard expansion for the toml files. I have also implemented a generic sequence that I've used to automate the creation of a deployment and publishing of the deployment.I noticed that we are unable to automate the deployment of any non-python or static project, since the docker image used to host the VSCode server (and its related workspace environment), does not have a good way to install versions of R and Quarto into it. Without those interpreters being available for the publisher, it is impossible to create projects of the related content types. This has been captured within issue #2589, which will then open up our ability to implement automated deployments for all of the supported content types.
Checklist