Disable "Show Local" button, add --disable-file-uploads option and add file operation trace level logs (#6557)
This commit is contained in:
@ -23,6 +23,41 @@ describe("Downloads (enabled)", ["--disable-workspace-trust"], {}, async () => {
|
||||
|
||||
expect(await codeServerPage.page.isVisible("text=Download...")).toBe(true)
|
||||
})
|
||||
|
||||
test("should see the 'Show Local' button on Save As", async ({ codeServerPage }) => {
|
||||
// Setup
|
||||
const workspaceDir = await codeServerPage.workspaceDir
|
||||
const fileName = "unique-file-save-as.txt"
|
||||
const tmpFilePath = path.join(workspaceDir, fileName)
|
||||
await fs.writeFile(tmpFilePath, "Hello World")
|
||||
|
||||
// Action
|
||||
await codeServerPage.page.waitForSelector(`text=${fileName}`)
|
||||
|
||||
await codeServerPage.openFile(fileName)
|
||||
await codeServerPage.page.click(".tab")
|
||||
await codeServerPage.navigateMenus(["File", "Auto Save"])
|
||||
await codeServerPage.page.keyboard.type("Making some edits.")
|
||||
await codeServerPage.navigateMenus(["File", "Save As..."])
|
||||
await codeServerPage.page.waitForSelector(".quick-input-widget")
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(true)
|
||||
})
|
||||
|
||||
test("should see the 'Show Local' button on Save File", async ({ codeServerPage }) => {
|
||||
// Action
|
||||
await codeServerPage.navigateMenus(["File", "New Text File"])
|
||||
await codeServerPage.waitForTab("Untitled-1")
|
||||
await codeServerPage.navigateMenus(["File", "Save"])
|
||||
await codeServerPage.page.waitForSelector(".quick-input-widget")
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(true)
|
||||
})
|
||||
|
||||
test("should see the 'Show Local' button on Save Workspace As", async ({ codeServerPage }) => {
|
||||
// Action
|
||||
await codeServerPage.navigateMenus(["File", "Save Workspace As..."])
|
||||
await codeServerPage.page.waitForSelector(".quick-input-widget")
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
describe("Downloads (disabled)", ["--disable-workspace-trust", "--disable-file-downloads"], {}, async () => {
|
||||
@ -35,7 +70,7 @@ describe("Downloads (disabled)", ["--disable-workspace-trust", "--disable-file-d
|
||||
// Setup
|
||||
const workspaceDir = await codeServerPage.workspaceDir
|
||||
const tmpFilePath = path.join(workspaceDir, "unique-file.txt")
|
||||
await fs.writeFile(tmpFilePath, "hello world")
|
||||
await fs.writeFile(tmpFilePath, "Hello World")
|
||||
|
||||
// Action
|
||||
const fileInExplorer = await codeServerPage.page.waitForSelector("text=unique-file.txt")
|
||||
@ -45,4 +80,35 @@ describe("Downloads (disabled)", ["--disable-workspace-trust", "--disable-file-d
|
||||
|
||||
expect(await codeServerPage.page.isVisible("text=Download...")).toBe(false)
|
||||
})
|
||||
|
||||
test("should not see the 'Show Local' button on Save as", async ({ codeServerPage }) => {
|
||||
// Setup
|
||||
const workspaceDir = await codeServerPage.workspaceDir
|
||||
const fileName = "unique-file-save-as.txt"
|
||||
const tmpFilePath = path.join(workspaceDir, fileName)
|
||||
await fs.writeFile(tmpFilePath, "Hello World")
|
||||
|
||||
// Action
|
||||
await codeServerPage.page.waitForSelector(`text=${fileName}`)
|
||||
await codeServerPage.openFile(fileName)
|
||||
await codeServerPage.page.click(".tab")
|
||||
await codeServerPage.navigateMenus(["File", "Save As..."])
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(false)
|
||||
})
|
||||
|
||||
test("should not see the 'Show Local' button on Save File", async ({ codeServerPage }) => {
|
||||
// Action
|
||||
await codeServerPage.navigateMenus(["File", "New Text File"])
|
||||
await codeServerPage.waitForTab("Untitled-1")
|
||||
await codeServerPage.navigateMenus(["File", "Save"])
|
||||
await codeServerPage.page.waitForSelector(".quick-input-widget")
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(false)
|
||||
})
|
||||
|
||||
test("should not see the 'Show Local' button on Save Workspace As", async ({ codeServerPage }) => {
|
||||
// Action
|
||||
await codeServerPage.navigateMenus(["File", "Save Workspace As..."])
|
||||
await codeServerPage.page.waitForSelector(".quick-input-widget")
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(false)
|
||||
})
|
||||
})
|
||||
|
@ -401,7 +401,7 @@ export class CodeServerPage {
|
||||
* Open a file by using menus.
|
||||
*/
|
||||
async openFile(file: string) {
|
||||
await this.navigateMenus(["File", "Open File"])
|
||||
await this.navigateMenus(["File", "Open File..."])
|
||||
await this.navigateQuickInput([path.basename(file)])
|
||||
await this.waitForTab(file)
|
||||
}
|
||||
@ -432,7 +432,7 @@ export class CodeServerPage {
|
||||
* it then clicking the match from the results.
|
||||
*/
|
||||
async executeCommandViaMenus(command: string) {
|
||||
await this.navigateMenus(["View", "Command Palette"])
|
||||
await this.navigateMenus(["View", "Command Palette..."])
|
||||
|
||||
await this.page.keyboard.type(command)
|
||||
|
||||
@ -488,19 +488,19 @@ export class CodeServerPage {
|
||||
// splitting them into two steps each we can cancel before running the
|
||||
// action.
|
||||
steps.push({
|
||||
fn: () => this.page.hover(`${selector} :text("${item}")`, { trial: true }),
|
||||
fn: () => this.page.hover(`${selector} :text-is("${item}")`, { trial: true }),
|
||||
name: `${item}:hover:trial`,
|
||||
})
|
||||
steps.push({
|
||||
fn: () => this.page.hover(`${selector} :text("${item}")`, { force: true }),
|
||||
fn: () => this.page.hover(`${selector} :text-is("${item}")`, { force: true }),
|
||||
name: `${item}:hover:force`,
|
||||
})
|
||||
steps.push({
|
||||
fn: () => this.page.click(`${selector} :text("${item}")`, { trial: true }),
|
||||
fn: () => this.page.click(`${selector} :text-is("${item}")`, { trial: true }),
|
||||
name: `${item}:click:trial`,
|
||||
})
|
||||
steps.push({
|
||||
fn: () => this.page.click(`${selector} :text("${item}")`, { force: true }),
|
||||
fn: () => this.page.click(`${selector} :text-is("${item}")`, { force: true }),
|
||||
name: `${item}:click:force`,
|
||||
})
|
||||
}
|
||||
|
61
test/e2e/uploads.test.ts
Normal file
61
test/e2e/uploads.test.ts
Normal file
@ -0,0 +1,61 @@
|
||||
import { promises as fs } from "fs"
|
||||
import * as path from "path"
|
||||
import { clean } from "../utils/helpers"
|
||||
import { describe, test, expect } from "./baseFixture"
|
||||
|
||||
describe("Uploads (enabled)", ["--disable-workspace-trust"], {}, () => {
|
||||
const testName = "uploads-enabled"
|
||||
test.beforeAll(async () => {
|
||||
await clean(testName)
|
||||
})
|
||||
|
||||
test("should see the 'Upload...' option", async ({ codeServerPage }) => {
|
||||
// Setup
|
||||
const workspaceDir = await codeServerPage.workspaceDir
|
||||
const tmpDirPath = path.join(workspaceDir, "test-directory")
|
||||
await fs.mkdir(tmpDirPath)
|
||||
|
||||
// Action
|
||||
const fileInExplorer = await codeServerPage.page.waitForSelector('span:has-text("test-directory")')
|
||||
await fileInExplorer.click({
|
||||
button: "right",
|
||||
})
|
||||
expect(await codeServerPage.page.isVisible("text=Upload...")).toBe(true)
|
||||
})
|
||||
|
||||
test("should see the 'Show Local' button on Open File", async ({ codeServerPage }) => {
|
||||
// Action
|
||||
await codeServerPage.navigateMenus(["File", "Open File..."])
|
||||
await codeServerPage.page.waitForSelector(".quick-input-widget")
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
describe("Uploads (disabled)", ["--disable-workspace-trust", "--disable-file-uploads"], {}, () => {
|
||||
const testName = "uploads-disabled"
|
||||
test.beforeAll(async () => {
|
||||
await clean(testName)
|
||||
})
|
||||
|
||||
test("should not see the 'Upload...' option", async ({ codeServerPage }) => {
|
||||
// Setup
|
||||
const workspaceDir = await codeServerPage.workspaceDir
|
||||
const tmpDirPath = path.join(workspaceDir, "test-directory")
|
||||
await fs.mkdir(tmpDirPath)
|
||||
|
||||
// Action
|
||||
const fileInExplorer = await codeServerPage.page.waitForSelector('span:has-text("test-directory")')
|
||||
await fileInExplorer.click({
|
||||
button: "right",
|
||||
})
|
||||
|
||||
expect(await codeServerPage.page.isVisible("text=Upload...")).toBe(false)
|
||||
})
|
||||
|
||||
test("should not see the 'Show Local' button on Open File", async ({ codeServerPage }) => {
|
||||
// Action
|
||||
await codeServerPage.navigateMenus(["File", "Open File..."])
|
||||
await codeServerPage.page.waitForSelector(".quick-input-widget")
|
||||
expect(await codeServerPage.page.isVisible("text=Show Local")).toBe(false)
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user