mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-07 16:03:21 +00:00
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BayTppRCstWX6qTf3LMco5
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { expect, test } from "bun:test";
|
|
import {
|
|
executionModeFromAppFile,
|
|
generatingPolicy,
|
|
markAccessFromPolicy,
|
|
} from "../src/commands/app/app.ts";
|
|
|
|
// The access mode is the one policy field a tracked app keeps; a pull then a push must
|
|
// deploy the mode that was pulled, guest included, not a default.
|
|
test("the access mode survives the app.yaml round trip", async () => {
|
|
const guest: any = { policy: { execution_mode: "guest" }, value: {} };
|
|
markAccessFromPolicy(guest);
|
|
guest.policy = undefined;
|
|
expect(guest.guests).toBe(true);
|
|
expect(guest.public).toBeUndefined();
|
|
expect(executionModeFromAppFile(guest)).toBe("guest");
|
|
await generatingPolicy(guest, "u/test/app", executionModeFromAppFile(guest));
|
|
expect(guest.policy.execution_mode).toBe("guest");
|
|
|
|
const anonymous: any = { policy: { execution_mode: "anonymous" }, value: {} };
|
|
markAccessFromPolicy(anonymous);
|
|
anonymous.policy = undefined;
|
|
expect(anonymous.public).toBe(true);
|
|
expect(executionModeFromAppFile(anonymous)).toBe("anonymous");
|
|
|
|
expect(executionModeFromAppFile({ policy: { execution_mode: "publisher" } })).toBe("publisher");
|
|
expect(executionModeFromAppFile({})).toBe("publisher");
|
|
});
|