Buckets:
| import { describe, expect, test } from "bun:test" | |
| import { enterWslOpencodeStep, wslOpencodeAction, wslRuntimeRetryable } from "./settings-model" | |
| describe("WSL server settings presentation", () => { | |
| test("retries only settled unsuccessful runtimes", () => { | |
| expect(wslRuntimeRetryable({ kind: "starting" })).toBe(false) | |
| expect(wslRuntimeRetryable({ kind: "ready", url: "http://127.0.0.1:4096", username: null, password: null })).toBe( | |
| false, | |
| ) | |
| expect(wslRuntimeRetryable({ kind: "failed", message: "boom" })).toBe(true) | |
| expect(wslRuntimeRetryable({ kind: "stopped" })).toBe(true) | |
| }) | |
| test("offers install and update only when OpenCode needs attention", () => { | |
| expect(wslOpencodeAction(undefined)).toBeUndefined() | |
| expect( | |
| wslOpencodeAction({ | |
| distro: "Debian", | |
| resolvedPath: null, | |
| version: null, | |
| expectedVersion: "1.2.3", | |
| matchesDesktop: null, | |
| error: null, | |
| }), | |
| ).toBe("Install OpenCode") | |
| expect( | |
| wslOpencodeAction({ | |
| distro: "Debian", | |
| resolvedPath: "/usr/local/bin/opencode", | |
| version: "1.2.2", | |
| expectedVersion: "1.2.3", | |
| matchesDesktop: false, | |
| error: null, | |
| }), | |
| ).toBe("Update OpenCode") | |
| expect( | |
| wslOpencodeAction({ | |
| distro: "Debian", | |
| resolvedPath: "/usr/local/bin/opencode", | |
| version: "1.2.3", | |
| expectedVersion: "1.2.3", | |
| matchesDesktop: true, | |
| error: null, | |
| }), | |
| ).toBeUndefined() | |
| }) | |
| test("probes the selected distro before entering the OpenCode step", async () => { | |
| const calls: string[] = [] | |
| await enterWslOpencodeStep( | |
| "Debian", | |
| async (distro) => calls.push(distro), | |
| (step) => calls.push(step), | |
| ) | |
| expect(calls).toEqual(["Debian", "opencode"]) | |
| }) | |
| }) | |
Xet Storage Details
- Size:
- 1.83 kB
- Xet hash:
- 51ba27b4f20fbbeb57176c85c1b0d4f10f92fc207e8059d1a9a28d94d327f257
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.