返回 DeepSeek-Reasonix
download-link.test.mjs
根目录 / site / src / scripts / download-link.test.mjs
1 import { test } from "node:test";
2 import assert from "node:assert/strict";
3 import { downloadPaneFromURL, downloadURLForPane, releaseChannelFromURL } from "./download-link.js";
4
5 test("desktop updater deep link selects the desktop pane", () => {
6 assert.equal(downloadPaneFromURL("https://reasonix.io/?download=desktop#start"), "desktop");
7 });
8
9 test("plain install links preserve the default pane", () => {
10 assert.equal(downloadPaneFromURL("https://reasonix.io/#start"), "");
11 assert.equal(downloadPaneFromURL("https://reasonix.io/?download=desktop"), "");
12 });
13
14 test("recognized download panes are strict", () => {
15 assert.equal(downloadPaneFromURL("/?download=brew#start"), "brew");
16 assert.equal(downloadPaneFromURL("/?download=npm#start"), "npm");
17 assert.equal(downloadPaneFromURL("/?download=vscode#start"), "vscode");
18 assert.equal(downloadPaneFromURL("/?download=cli#start"), "cli");
19 assert.equal(downloadPaneFromURL("/?download=DESKTOP#start"), "");
20 assert.equal(downloadPaneFromURL("/?download=unknown#start"), "");
21 assert.equal(downloadPaneFromURL("not a url", "not a base"), "");
22 });
23
24 test("legacy release channel deep links never select a public channel", () => {
25 assert.equal(releaseChannelFromURL("/?download=desktop&channel=preview#start"), "");
26 assert.equal(releaseChannelFromURL("/?download=cli&channel=stable#start"), "");
27 assert.equal(releaseChannelFromURL("/?download=desktop&channel=canary#start"), "");
28 });
29
30 test("download tab navigation keeps the pane and removes legacy channels", () => {
31 assert.equal(
32 downloadURLForPane("https://reasonix.io/?download=desktop&channel=preview#start", "cli", "stable"),
33 "https://reasonix.io/?download=cli#start",
34 );
35 assert.equal(
36 downloadURLForPane("https://reasonix.io/?download=desktop&channel=preview#start", "npm", "preview"),
37 "https://reasonix.io/?download=npm#start",
38 );
39 assert.equal(downloadURLForPane("https://reasonix.io/", "desktop", "preview"),
40 "https://reasonix.io/?download=desktop#start");
41 assert.equal(downloadURLForPane("https://reasonix.io/", "unknown", "stable"), "");
42 });
43
43 lines Plain Text