Test plan for "Open Web Terminal from attached CI runner in Web IDE"
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=7658)
</details>
<!--IssueSummary end-->
# Test Plan
## Introduction
This test plan is for #5426. The feature allows a user to open a web terminal from the Web IDE and execute commands against the latest committed version of their code.
## Scope
* EE-only (Ultimate)
* The terminal will include only the latest commit, not any uncommited changes. A new commit will destroy the current web terminal instance and replace it.
* The web terminal is displayed as a vertical panel. It can be resized but not moved.
## ACC Matrix
| | Simple | Secure | Responsive | Intuitive | Reliable |
|-------------|:------:|:------:|:----------:|:---------:|:--------:|
| Web IDE | | | | | |
| CI/CD | | | | | |
For more information see the [Google Testing Blog article about the 10 minute
test plan](https://testing.googleblog.com/2011/09/10-minute-test-plan.html) and
[this wiki page from an open-source tool that implements the ACC
model](https://code.google.com/archive/p/test-analytics/wikis/AccExplained.wiki).
## Capabilities
Web IDE is:
* Intuitive
* When a new commit is made and the web terminal is already open the change in the web terminal is clear.
* If a runner it not available the user is appropriately informed.
* The terminal behaves as a typical terminal
* Reliable
* All code up to the latest commit can be accessed via the web terminal.
* Responsive
* The web terminal can be resized.
CI/CD is:
* Secure
* The web terminal should allow access only to the code for the project. If a runner is reused or shared there should be no trace of any previous code or code from another project.
* Only applicable runners are used for the web terminal.
## Test Plan
End-to-end tests:
* Add and configure a runner, push a change to a project, and then
* start the web terminal and `cat` the changed file
* make a change to a project via the Web IDE, commit it and `cat` the changed file
* Start the web terminal while there are no runners available. Check that there is an appropriate message.
* Check that the web terminal can't be started if there is no `web-ide` job defined in `.gitlab-ci.yml`.
* Check that the web terminal can be stopped and restarted and that there is appropriate feedback.
[Test Coverage sheet](https://docs.google.com/spreadsheets/d/1RlLfXGboJmNVIPP9jgFV5sXIACGfdcFq1tKd7xnlb74/)
issue