fix(installer): harden admin smoke and rollback cleanup
This commit is contained in:
@@ -5,7 +5,7 @@ import {
|
||||
HYSTERIA_HASHES_ASSET,
|
||||
HYSTERIA_LINUX_AMD64_ASSET,
|
||||
selectLatestStableRelease,
|
||||
type GithubRelease
|
||||
type GithubRelease,
|
||||
} from "../src/build/hysteriaRelease";
|
||||
|
||||
function assetUrl(tag: string, name: string): string {
|
||||
@@ -21,13 +21,13 @@ function release(tag: string): GithubRelease {
|
||||
assets: [
|
||||
{
|
||||
name: HYSTERIA_LINUX_AMD64_ASSET,
|
||||
browser_download_url: assetUrl(tag, HYSTERIA_LINUX_AMD64_ASSET)
|
||||
browser_download_url: assetUrl(tag, HYSTERIA_LINUX_AMD64_ASSET),
|
||||
},
|
||||
{
|
||||
name: HYSTERIA_HASHES_ASSET,
|
||||
browser_download_url: assetUrl(tag, HYSTERIA_HASHES_ASSET)
|
||||
}
|
||||
]
|
||||
browser_download_url: assetUrl(tag, HYSTERIA_HASHES_ASSET),
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ describe("install-time никогда не резолвит latest", () => {
|
||||
["commands", "install.ts"],
|
||||
["steps", "hysteria.ts"],
|
||||
["lib", "packageMeta.ts"],
|
||||
["commands", "reconfigure.ts"]
|
||||
["commands", "reconfigure.ts"],
|
||||
];
|
||||
|
||||
test("install-time код не импортирует build-time резолвер", () => {
|
||||
@@ -83,13 +83,19 @@ describe("install-time никогда не резолвит latest", () => {
|
||||
|
||||
test("установка берёт версию, url и sha256 только из metadata пакета", () => {
|
||||
const install = srcFile("commands", "install.ts");
|
||||
expect(install).toContain('readPackageValue(options.packageDir, "hysteria.version"');
|
||||
expect(install).toContain('readPackageValue(options.packageDir, "hysteria.url"');
|
||||
expect(install).toContain('readPackageValue(options.packageDir, "hysteria.sha256"');
|
||||
for (const key of ["hysteria.version", "hysteria.url", "hysteria.sha256"]) {
|
||||
expect(install).toMatch(
|
||||
new RegExp(
|
||||
`readPackageValue\\(\\s*options\\.packageDir,\\s*"${key.replace(".", "\\.")}"`,
|
||||
),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test("отсутствие любой части lock-метаданных прерывает установку", () => {
|
||||
expect(srcFile("commands", "install.ts")).toContain("missing Hysteria lock metadata in package");
|
||||
expect(srcFile("commands", "install.ts")).toContain(
|
||||
"missing Hysteria lock metadata in package",
|
||||
);
|
||||
});
|
||||
|
||||
test("установленный бинарник сверяется с закреплённой версией", () => {
|
||||
|
||||
Reference in New Issue
Block a user