test(channels): align prerelease fallback catalog spec (#120092)

This commit is contained in:
Vincent Koc
2026-08-07 10:39:43 +08:00
committed by GitHub
parent 21e9634f10
commit 0f92db6a5a
@@ -1,4 +1,7 @@
// Channel catalog contract tests cover bundled and registry-backed channel catalog invariants.
import fs from "node:fs";
import path from "node:path";
import { isPrereleaseSemverVersion } from "../../../infra/npm-registry-spec.js";
import {
describeBundledMetadataOnlyChannelCatalogContract,
describeChannelCatalogEntryContract,
@@ -20,6 +23,22 @@ const whatsappMeta = {
blurb: "works with your own number; recommend a separate phone + eSIM.",
};
const whatsappPackageJson = JSON.parse(
fs.readFileSync(path.join(process.cwd(), "extensions", "whatsapp", "package.json"), "utf8"),
) as {
name?: string;
version?: string;
openclaw?: { install?: { npmSpec?: string } };
};
const whatsappNpmSpec = whatsappPackageJson.openclaw?.install?.npmSpec ?? whatsappPackageJson.name;
const whatsappVersion = whatsappPackageJson.version;
if (!whatsappNpmSpec || !whatsappVersion) {
throw new Error("missing package metadata for whatsapp");
}
const whatsappOfficialFallbackNpmSpec = isPrereleaseSemverVersion(whatsappVersion)
? `${whatsappNpmSpec}@${whatsappVersion}`
: whatsappNpmSpec;
describeBundledMetadataOnlyChannelCatalogContract({
pluginId: "whatsapp",
packageName: "@openclaw/whatsapp",
@@ -30,7 +49,7 @@ describeBundledMetadataOnlyChannelCatalogContract({
describeOfficialFallbackChannelCatalogContract({
channelId: "whatsapp",
npmSpec: "@openclaw/whatsapp",
npmSpec: whatsappOfficialFallbackNpmSpec,
meta: whatsappMeta,
packageName: "@openclaw/whatsapp",
pluginId: "whatsapp",