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", ); }); }); }