Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 2cb4993

Browse files
committedApr 30, 2021
feat: add isConnected method to CodeServer model
1 parent 0d9fe6f commit 2cb4993

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed
 

‎test/e2e/codeServer.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ test.describe("CodeServer", () => {
3838
expect(await codeServer.isEditorVisible()).toBe(true)
3939
})
4040

41+
test.only("should always have a connection", options, async ({ page }) => {
42+
expect(await codeServer.isConnected()).toBe(true)
43+
})
44+
4145
test("should show the Integrated Terminal", options, async ({ page }) => {
4246
await codeServer.focusTerminal()
4347
expect(await page.isVisible("#terminal")).toBe(true)

‎test/e2e/models/CodeServer.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,25 @@ export class CodeServer {
5656
return await this.page.isVisible(this.editorSelector)
5757
}
5858

59+
/**
60+
* Checks if the editor is visible
61+
*/
62+
async isConnected() {
63+
await this.page.waitForLoadState("networkidle")
64+
65+
// See [aria-label="Remote Host"]
66+
const hostElement = await this.page.$(`[aria-label="Remote Host"]`)
67+
// Returns something like " localhost:8080"
68+
const host = await hostElement?.innerText()
69+
70+
// Check if host (localhost:8080) is in the CODE_SERVER_ADDRESS
71+
// if it is, we're connected!
72+
// if not, we may need to reload the page
73+
// Make sure to trim whitespace too
74+
const isEditorConnected = host ? CODE_SERVER_ADDRESS.includes(host.trim()) : false
75+
return isEditorConnected
76+
}
77+
5978
/**
6079
* Focuses Integrated Terminal
6180
* by using "Terminal: Focus Terminal"

0 commit comments

Comments
 (0)
Please sign in to comment.