refactor: move tmpdir into src/node/constants

This commit is contained in:
Joe Previte 2021-04-21 13:22:11 -07:00
parent cc99fddf24
commit cb65590b98
No known key found for this signature in database
GPG Key ID: 2C91590C6B742C24
8 changed files with 20 additions and 13 deletions

View File

@ -1,5 +1,6 @@
import { logger } from "@coder/logger" import { logger } from "@coder/logger"
import { JSONSchemaForNPMPackageJsonFiles } from "@schemastore/package" import { JSONSchemaForNPMPackageJsonFiles } from "@schemastore/package"
import * as os from "os"
import * as path from "path" import * as path from "path"
export function getPackageJson(relativePath: string): JSONSchemaForNPMPackageJsonFiles { export function getPackageJson(relativePath: string): JSONSchemaForNPMPackageJsonFiles {
@ -18,3 +19,4 @@ const pkg = getPackageJson("../../package.json")
export const version = pkg.version || "development" export const version = pkg.version || "development"
export const commit = pkg.commit || "development" export const commit = pkg.commit || "development"
export const rootPath = path.resolve(__dirname, "../..") export const rootPath = path.resolve(__dirname, "../..")
export const tmpdir = path.join(os.tmpdir(), "code-server")

View File

@ -4,7 +4,8 @@ import * as path from "path"
import * as tls from "tls" import * as tls from "tls"
import { Emitter } from "../common/emitter" import { Emitter } from "../common/emitter"
import { generateUuid } from "../common/util" import { generateUuid } from "../common/util"
import { canConnect, tmpdir } from "./util" import { tmpdir } from "./constants"
import { canConnect } from "./util"
/** /**
* Provides a way to proxy a TLS socket. Can be used when you need to pass a * Provides a way to proxy a TLS socket. Can be used when you need to pass a

View File

@ -8,8 +8,6 @@ import * as path from "path"
import * as util from "util" import * as util from "util"
import xdgBasedir from "xdg-basedir" import xdgBasedir from "xdg-basedir"
export const tmpdir = path.join(os.tmpdir(), "code-server")
interface Paths { interface Paths {
data: string data: string
config: string config: string

View File

@ -16,23 +16,23 @@ export class CodeServer {
async navigate() { async navigate() {
await this.page.goto(CODE_SERVER_ADDRESS, { waitUntil: "networkidle" }) await this.page.goto(CODE_SERVER_ADDRESS, { waitUntil: "networkidle" })
let editorIsVisible = await this.isEditorVisible() const editorIsVisible = await this.isEditorVisible()
let reloadCount = 0 let reloadCount = 0
// Occassionally code-server timeouts in Firefox // Occassionally code-server timeouts in Firefox
// we're not sure why // we're not sure why
// but usually a reload or two fixes it // but usually a reload or two fixes it
// TODO@jsjoeio @oxy look into Firefox reconnection/timeout issues // TODO@jsjoeio @oxy look into Firefox reconnection/timeout issues
// TODO@jsjoeio sometimes it's 2 reloads, othertimes it's 9
// double-check this logic
while (!editorIsVisible) { while (!editorIsVisible) {
reloadCount += 1 reloadCount += 1
editorIsVisible = await this.isEditorVisible() if (await this.isEditorVisible()) {
if (editorIsVisible) { console.log(` Editor became visible after ${reloadCount} reloads`)
console.log(`Editor became visible after ${reloadCount} reloads`)
break break
} }
await this.page.reload({ waitUntil: "networkidle" }) // When a reload happens, we want to wait for all resources to be
// loaded completely. Hence why we use that instead of DOMContentLoaded
// Read more: https://thisthat.dev/dom-content-loaded-vs-load/
await this.page.reload({ waitUntil: "load" })
} }
} }

View File

@ -29,6 +29,10 @@ test.describe("Integrated Terminal", () => {
}) })
test("should echo a string to a file", options, async ({ page }) => { test("should echo a string to a file", options, async ({ page }) => {
// NOTE@jsjoeio
// We're not using tmpdir from src/node/constants
// because Playwright doesn't fully support ES modules from
// the erorrs I'm seeing
const tmpFolderPath = fs.mkdtempSync(path.join(tmpdir(), "code-server-test")) const tmpFolderPath = fs.mkdtempSync(path.join(tmpdir(), "code-server-test"))
const tmpFile = `${tmpFolderPath}${path.sep}${testFileName}` const tmpFile = `${tmpFolderPath}${path.sep}${testFileName}`
// Open terminal and type in value // Open terminal and type in value

View File

@ -4,7 +4,8 @@ import * as net from "net"
import * as os from "os" import * as os from "os"
import * as path from "path" import * as path from "path"
import { Args, parse, setDefaults, shouldOpenInExistingInstance } from "../../src/node/cli" import { Args, parse, setDefaults, shouldOpenInExistingInstance } from "../../src/node/cli"
import { paths, tmpdir } from "../../src/node/util" import { tmpdir } from "../../src/node/constants"
import { paths } from "../../src/node/util"
type Mutable<T> = { type Mutable<T> = {
-readonly [P in keyof T]: T[P] -readonly [P in keyof T]: T[P]

View File

@ -4,8 +4,9 @@ import * as net from "net"
import * as path from "path" import * as path from "path"
import * as tls from "tls" import * as tls from "tls"
import { Emitter } from "../../src/common/emitter" import { Emitter } from "../../src/common/emitter"
import { tmpdir } from "../../src/node/constants"
import { SocketProxyProvider } from "../../src/node/socket" import { SocketProxyProvider } from "../../src/node/socket"
import { generateCertificate, tmpdir } from "../../src/node/util" import { generateCertificate } from "../../src/node/util"
describe("SocketProxyProvider", () => { describe("SocketProxyProvider", () => {
const provider = new SocketProxyProvider() const provider = new SocketProxyProvider()

View File

@ -1,9 +1,9 @@
import { promises as fs } from "fs" import { promises as fs } from "fs"
import * as http from "http" import * as http from "http"
import * as path from "path" import * as path from "path"
import { tmpdir } from "../../src/node/constants"
import { SettingsProvider, UpdateSettings } from "../../src/node/settings" import { SettingsProvider, UpdateSettings } from "../../src/node/settings"
import { LatestResponse, UpdateProvider } from "../../src/node/update" import { LatestResponse, UpdateProvider } from "../../src/node/update"
import { tmpdir } from "../../src/node/util"
describe.skip("update", () => { describe.skip("update", () => {
let version = "1.0.0" let version = "1.0.0"