mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-21 21:01:38 +00:00
76 lines
2.6 KiB
TypeScript
76 lines
2.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
MAX_PRIVATE_QA_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES,
|
|
MAX_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES,
|
|
PLUGIN_SDK_DECLARATION_OUTPUT_VARIANCE_BYTES,
|
|
evaluatePluginSdkDeclarationBudget,
|
|
isPrivateQaPluginSdkBuild,
|
|
} from "../../scripts/lib/plugin-sdk-declaration-budget.mjs";
|
|
|
|
describe("plugin SDK declaration budget", () => {
|
|
it("selects private QA mode only for the explicit build flag", () => {
|
|
expect(isPrivateQaPluginSdkBuild({})).toBe(false);
|
|
expect(isPrivateQaPluginSdkBuild({ OPENCLAW_BUILD_PRIVATE_QA: "0" })).toBe(false);
|
|
expect(isPrivateQaPluginSdkBuild({ OPENCLAW_BUILD_PRIVATE_QA: "1" })).toBe(true);
|
|
});
|
|
|
|
it("enforces the publication budget at its exact boundary", () => {
|
|
const budgetBytes =
|
|
MAX_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES + PLUGIN_SDK_DECLARATION_OUTPUT_VARIANCE_BYTES;
|
|
expect(
|
|
evaluatePluginSdkDeclarationBudget({
|
|
buildPrivateQa: false,
|
|
declarationBytes: budgetBytes,
|
|
}),
|
|
).toEqual({
|
|
budgetBytes,
|
|
budgetKind: "public",
|
|
ratchetBytes: MAX_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES,
|
|
shouldFail: false,
|
|
varianceBytes: PLUGIN_SDK_DECLARATION_OUTPUT_VARIANCE_BYTES,
|
|
});
|
|
expect(
|
|
evaluatePluginSdkDeclarationBudget({
|
|
buildPrivateQa: false,
|
|
declarationBytes: budgetBytes + 1,
|
|
}),
|
|
).toEqual({
|
|
budgetBytes,
|
|
budgetKind: "public",
|
|
ratchetBytes: MAX_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES,
|
|
shouldFail: true,
|
|
varianceBytes: PLUGIN_SDK_DECLARATION_OUTPUT_VARIANCE_BYTES,
|
|
});
|
|
});
|
|
|
|
it("tracks private-build public-entry chunk growth under a separate budget", () => {
|
|
const budgetBytes =
|
|
MAX_PRIVATE_QA_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES +
|
|
PLUGIN_SDK_DECLARATION_OUTPUT_VARIANCE_BYTES;
|
|
expect(
|
|
evaluatePluginSdkDeclarationBudget({
|
|
buildPrivateQa: true,
|
|
declarationBytes: budgetBytes,
|
|
}),
|
|
).toEqual({
|
|
budgetBytes,
|
|
budgetKind: "private-qa-public-entry",
|
|
ratchetBytes: MAX_PRIVATE_QA_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES,
|
|
shouldFail: false,
|
|
varianceBytes: PLUGIN_SDK_DECLARATION_OUTPUT_VARIANCE_BYTES,
|
|
});
|
|
expect(
|
|
evaluatePluginSdkDeclarationBudget({
|
|
buildPrivateQa: true,
|
|
declarationBytes: budgetBytes + 1,
|
|
}),
|
|
).toEqual({
|
|
budgetBytes,
|
|
budgetKind: "private-qa-public-entry",
|
|
ratchetBytes: MAX_PRIVATE_QA_PUBLIC_PLUGIN_SDK_DECLARATION_BYTES,
|
|
shouldFail: true,
|
|
varianceBytes: PLUGIN_SDK_DECLARATION_OUTPUT_VARIANCE_BYTES,
|
|
});
|
|
});
|
|
});
|