feat: add tests for bindAddrFromArgs
This commit is contained in:
parent
a673cf2833
commit
f84757507b
@ -594,7 +594,11 @@ interface Addr {
|
|||||||
port: number
|
port: number
|
||||||
}
|
}
|
||||||
|
|
||||||
function bindAddrFromArgs(addr: Addr, args: Args): Addr {
|
/**
|
||||||
|
* This function creates the bind address
|
||||||
|
* using the CLI args.
|
||||||
|
*/
|
||||||
|
export function bindAddrFromArgs(addr: Addr, args: Args): Addr {
|
||||||
addr = { ...addr }
|
addr = { ...addr }
|
||||||
if (args["bind-addr"]) {
|
if (args["bind-addr"]) {
|
||||||
addr = parseBindAddr(args["bind-addr"])
|
addr = parseBindAddr(args["bind-addr"])
|
||||||
@ -626,13 +630,11 @@ function bindAddrFromAllSources(...argsConfig: Args[]): Addr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const shouldRunVsCodeCli = (args: Args): boolean => {
|
export const shouldRunVsCodeCli = (args: Args): boolean => {
|
||||||
// Create new interface with only these keys
|
// Create new interface with only Arg keys
|
||||||
// Pick<Args, "list-extensions" | "install-extension" | "uninstall-extension">
|
// keyof Args
|
||||||
// Get the keys of new interface
|
|
||||||
// keyof ...
|
|
||||||
// Turn that into an array
|
// Turn that into an array
|
||||||
// Array<...>
|
// Array<...>
|
||||||
type ExtensionArgs = Array<keyof Pick<Args, "list-extensions" | "install-extension" | "uninstall-extension">>
|
type ExtensionArgs = Array<keyof Args>
|
||||||
const extensionRelatedArgs: ExtensionArgs = ["list-extensions", "install-extension", "uninstall-extension"]
|
const extensionRelatedArgs: ExtensionArgs = ["list-extensions", "install-extension", "uninstall-extension"]
|
||||||
|
|
||||||
const argKeys = Object.keys(args)
|
const argKeys = Object.keys(args)
|
||||||
|
@ -5,6 +5,7 @@ import * as os from "os"
|
|||||||
import * as path from "path"
|
import * as path from "path"
|
||||||
import {
|
import {
|
||||||
Args,
|
Args,
|
||||||
|
bindAddrFromArgs,
|
||||||
parse,
|
parse,
|
||||||
setDefaults,
|
setDefaults,
|
||||||
shouldOpenInExistingInstance,
|
shouldOpenInExistingInstance,
|
||||||
@ -13,6 +14,7 @@ import {
|
|||||||
} from "../../../src/node/cli"
|
} from "../../../src/node/cli"
|
||||||
import { tmpdir } from "../../../src/node/constants"
|
import { tmpdir } from "../../../src/node/constants"
|
||||||
import { paths } from "../../../src/node/util"
|
import { paths } from "../../../src/node/util"
|
||||||
|
import { useEnv } from "../../utils/helpers"
|
||||||
|
|
||||||
type Mutable<T> = {
|
type Mutable<T> = {
|
||||||
-readonly [P in keyof T]: T[P]
|
-readonly [P in keyof T]: T[P]
|
||||||
@ -515,3 +517,128 @@ describe("shouldRunVsCodeCli", () => {
|
|||||||
expect(actual).toBe(expected)
|
expect(actual).toBe(expected)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe("bindAddrFromArgs", () => {
|
||||||
|
it("should return the bind address", () => {
|
||||||
|
const args = {
|
||||||
|
_: [],
|
||||||
|
}
|
||||||
|
|
||||||
|
const addr = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 8080,
|
||||||
|
}
|
||||||
|
|
||||||
|
const actual = bindAddrFromArgs(addr, args)
|
||||||
|
const expected = addr
|
||||||
|
|
||||||
|
expect(actual).toStrictEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should use the bind-address if set in args", () => {
|
||||||
|
const args = {
|
||||||
|
_: [],
|
||||||
|
["bind-addr"]: "localhost:3000",
|
||||||
|
}
|
||||||
|
|
||||||
|
const addr = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 8080,
|
||||||
|
}
|
||||||
|
|
||||||
|
const actual = bindAddrFromArgs(addr, args)
|
||||||
|
const expected = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 3000,
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(actual).toStrictEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should use the host if set in args", () => {
|
||||||
|
const args = {
|
||||||
|
_: [],
|
||||||
|
["host"]: "coder",
|
||||||
|
}
|
||||||
|
|
||||||
|
const addr = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 8080,
|
||||||
|
}
|
||||||
|
|
||||||
|
const actual = bindAddrFromArgs(addr, args)
|
||||||
|
const expected = {
|
||||||
|
host: "coder",
|
||||||
|
port: 8080,
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(actual).toStrictEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should use process.env.PORT if set", () => {
|
||||||
|
const [setValue, resetValue] = useEnv("PORT")
|
||||||
|
setValue("8000")
|
||||||
|
|
||||||
|
const args = {
|
||||||
|
_: [],
|
||||||
|
}
|
||||||
|
|
||||||
|
const addr = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 8080,
|
||||||
|
}
|
||||||
|
|
||||||
|
const actual = bindAddrFromArgs(addr, args)
|
||||||
|
const expected = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 8000,
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(actual).toStrictEqual(expected)
|
||||||
|
resetValue()
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should set port if in args", () => {
|
||||||
|
const args = {
|
||||||
|
_: [],
|
||||||
|
port: 3000,
|
||||||
|
}
|
||||||
|
|
||||||
|
const addr = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 8080,
|
||||||
|
}
|
||||||
|
|
||||||
|
const actual = bindAddrFromArgs(addr, args)
|
||||||
|
const expected = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 3000,
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(actual).toStrictEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should use the args.port over process.env.PORT if both set", () => {
|
||||||
|
const [setValue, resetValue] = useEnv("PORT")
|
||||||
|
setValue("8000")
|
||||||
|
|
||||||
|
const args = {
|
||||||
|
_: [],
|
||||||
|
port: 3000,
|
||||||
|
}
|
||||||
|
|
||||||
|
const addr = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 8080,
|
||||||
|
}
|
||||||
|
|
||||||
|
const actual = bindAddrFromArgs(addr, args)
|
||||||
|
const expected = {
|
||||||
|
host: "localhost",
|
||||||
|
port: 3000,
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(actual).toStrictEqual(expected)
|
||||||
|
resetValue()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
Reference in New Issue
Block a user