Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/tests/unit/bootstrap.test.ts')
-rw-r--r--editors/code/tests/unit/bootstrap.test.ts96
1 files changed, 96 insertions, 0 deletions
diff --git a/editors/code/tests/unit/bootstrap.test.ts b/editors/code/tests/unit/bootstrap.test.ts
new file mode 100644
index 0000000000..8aeb72180a
--- /dev/null
+++ b/editors/code/tests/unit/bootstrap.test.ts
@@ -0,0 +1,96 @@
+import * as assert from "assert";
+import { _private } from "../../src/bootstrap";
+import type { Context } from ".";
+
+export async function getTests(ctx: Context) {
+ await ctx.suite("Bootstrap/Select toolchain RA", (suite) => {
+ suite.addTest("Order of nightly RA", async () => {
+ assert.deepStrictEqual(
+ _private.orderFromPath(
+ "/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
+ function (path: string) {
+ assert.deepStrictEqual(
+ path,
+ "/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
+ );
+ return "rust-analyzer 1.67.0-nightly (b7bc90fe 2022-11-21)";
+ },
+ ),
+ "0-2022-11-21/0",
+ );
+ });
+
+ suite.addTest("Order of versioned RA", async () => {
+ assert.deepStrictEqual(
+ _private.orderFromPath(
+ "/Users/myuser/.rustup/toolchains/1.72.1-aarch64-apple-darwin/bin/rust-analyzer",
+ function (path: string) {
+ assert.deepStrictEqual(
+ path,
+ "/Users/myuser/.rustup/toolchains/1.72.1-aarch64-apple-darwin/bin/rust-analyzer",
+ );
+ return "rust-analyzer 1.72.1 (d5c2e9c3 2023-09-13)";
+ },
+ ),
+ "0-2023-09-13/1",
+ );
+ });
+
+ suite.addTest("Order of versioned RA when unable to obtain version date", async () => {
+ assert.deepStrictEqual(
+ _private.orderFromPath(
+ "/Users/myuser/.rustup/toolchains/1.72.1-aarch64-apple-darwin/bin/rust-analyzer",
+ function () {
+ return "rust-analyzer 1.72.1";
+ },
+ ),
+ "2",
+ );
+ });
+
+ suite.addTest("Order of stable RA", async () => {
+ assert.deepStrictEqual(
+ _private.orderFromPath(
+ "/Users/myuser/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rust-analyzer",
+ function (path: string) {
+ assert.deepStrictEqual(
+ path,
+ "/Users/myuser/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rust-analyzer",
+ );
+ return "rust-analyzer 1.79.0 (129f3b99 2024-06-10)";
+ },
+ ),
+ "0-2024-06-10/1",
+ );
+ });
+
+ suite.addTest("Order with invalid path to RA", async () => {
+ assert.deepStrictEqual(
+ _private.orderFromPath("some-weird-path", function () {
+ return undefined;
+ }),
+ "2",
+ );
+ });
+
+ suite.addTest("Earliest RA between nightly and stable", async () => {
+ assert.deepStrictEqual(
+ _private.earliestToolchainPath(
+ "/Users/myuser/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rust-analyzer",
+ "/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
+ function (path: string) {
+ if (
+ path ===
+ "/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer"
+ ) {
+ return "rust-analyzer 1.67.0-nightly (b7bc90fe 2022-11-21)";
+ } else {
+ return "rust-analyzer 1.79.0 (129f3b99 2024-06-10)";
+ }
+ },
+ ),
+ "/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
+ );
+ });
+ });
+}