@productbrain/cli 0.1.0-beta.3603 → 0.1.0-beta.3616
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/admin/index.d.ts.map +1 -1
- package/dist/commands/admin/index.js +2 -0
- package/dist/commands/admin/index.js.map +1 -1
- package/dist/commands/admin/run.d.ts +43 -0
- package/dist/commands/admin/run.d.ts.map +1 -0
- package/dist/commands/admin/run.js +68 -0
- package/dist/commands/admin/run.js.map +1 -0
- package/dist/commands/admin/run.test.d.ts +18 -0
- package/dist/commands/admin/run.test.d.ts.map +1 -0
- package/dist/commands/admin/run.test.js +146 -0
- package/dist/commands/admin/run.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC,qEAAqE;AACrE,wBAAgB,kBAAkB,IAAI,OAAO,CA6P5C"}
|
|
@@ -23,6 +23,7 @@ import { isJsonMode } from '../../lib/runner.js';
|
|
|
23
23
|
import { adminBanner, bold, cyan, dim, heading } from '../../lib/style.js';
|
|
24
24
|
import { attachInspectCommands } from './inspect.js';
|
|
25
25
|
import { attachManageCommands } from './manage.js';
|
|
26
|
+
import { attachRunCommand } from './run.js';
|
|
26
27
|
import { attachSeedCommands, SEED_COMMAND_ENTRIES } from './seed.js';
|
|
27
28
|
function isBootstrapResponse(data) {
|
|
28
29
|
return (typeof data === 'object' &&
|
|
@@ -251,6 +252,7 @@ export function createAdminCommand() {
|
|
|
251
252
|
admin.addCommand(seed);
|
|
252
253
|
admin.addCommand(inspect);
|
|
253
254
|
attachManageCommands(admin);
|
|
255
|
+
attachRunCommand(admin);
|
|
254
256
|
return admin;
|
|
255
257
|
}
|
|
256
258
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/admin/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/admin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pb admin run — generic dispatcher for any admin manifest command (WP-592 S3 review fix).
|
|
3
|
+
*
|
|
4
|
+
* `convex/admin/commandManifest.ts` is the SSOT for every admin operation, but before this
|
|
5
|
+
* command the only generic CLI runner was `pb admin seed run` (seed.ts), which resolves
|
|
6
|
+
* exclusively against `SEED_BY_NAME` and throws on any `manage:`/`inspect:` name — so a command
|
|
7
|
+
* like `manage:archive-preset-residue` (WP-592) had NO agent-usable CLI surface on dev at all.
|
|
8
|
+
* `npx convex run` cannot substitute: it is PREVIEW-only by design (`scripts/convex-run.sh`
|
|
9
|
+
* refuses any non-`preview:` deployment).
|
|
10
|
+
*
|
|
11
|
+
* This command passes the raw parsed args object straight through `adminCall` to `/api/admin` —
|
|
12
|
+
* the SAME dispatch every other admin command uses, which is what gives a destructive op its
|
|
13
|
+
* STD-190/DEC-553 audit row (system-admin-gated, argsHash-logged).
|
|
14
|
+
*
|
|
15
|
+
* Unknown-command validation is deliberately NOT duplicated client-side. The server's
|
|
16
|
+
* `dispatchAdminCommand` (convex/admin/adminDispatch.ts) already refuses an unrecognized name
|
|
17
|
+
* with `Unknown admin command: "<name>". Available: <sorted COMMAND_MAP keys>`, and `adminCall`
|
|
18
|
+
* (lib/client.ts) throws that message verbatim on any `ok:false` response. A second, client-side
|
|
19
|
+
* copy of the manifest's command names would only be a second place for that list to drift from
|
|
20
|
+
* the real one — the server's error response IS the manifest, read live.
|
|
21
|
+
*
|
|
22
|
+
* Deployment awareness (WP-592 S3 second-pass review fix). This is the ONE generic command that
|
|
23
|
+
* can dispatch `manage:delete-workspace`, `manage:delete-user`, and
|
|
24
|
+
* `manage:archive-preset-residue` — so it must not be the one admin surface that never tells the
|
|
25
|
+
* operator which deployment it is about to hit. `adminBanner` prints unconditionally (it
|
|
26
|
+
* self-gates on quiet/JSON mode, same as every sibling command). The confirm gate is deliberately
|
|
27
|
+
* keyed on `requiresAdminDestructiveConfirmation(siteUrl)` — the DEPLOYMENT TIER — never on a
|
|
28
|
+
* client-side guess at whether `name` is "dangerous": duplicating the manifest's danger
|
|
29
|
+
* classification here is exactly the second copy the docstring above already refuses to keep for
|
|
30
|
+
* command names, and it would drift from the manifest the same way. So every dispatch through
|
|
31
|
+
* `run` on a non-local/non-dev-cloud deployment requires `--confirm` (or an interactive prompt),
|
|
32
|
+
* regardless of which command it is.
|
|
33
|
+
*/
|
|
34
|
+
import { Command } from 'commander';
|
|
35
|
+
/**
|
|
36
|
+
* Parses a JSON args string into a plain object args map. Exported for unit testing.
|
|
37
|
+
* Refuses (never silently coerces) anything that isn't a JSON OBJECT — an array or bare scalar
|
|
38
|
+
* would otherwise reach `adminCall` as `args`, which every manifest command's Convex validator
|
|
39
|
+
* expects to be an object.
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseRunArgs(raw: string | undefined): Record<string, unknown>;
|
|
42
|
+
export declare function attachRunCommand(admin: Command): void;
|
|
43
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmB7E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CA+CrD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { adminCall } from '../../lib/client.js';
|
|
2
|
+
import { resolveAdminConfig } from '../../lib/config.js';
|
|
3
|
+
import { CLIError, ErrorCode } from '../../lib/errors.js';
|
|
4
|
+
import { adminBanner, confirmProdAction } from '../../lib/style.js';
|
|
5
|
+
import { confirmRiskNoteTitle, requiresAdminDestructiveConfirmation } from '../../lib/deployment.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parses a JSON args string into a plain object args map. Exported for unit testing.
|
|
8
|
+
* Refuses (never silently coerces) anything that isn't a JSON OBJECT — an array or bare scalar
|
|
9
|
+
* would otherwise reach `adminCall` as `args`, which every manifest command's Convex validator
|
|
10
|
+
* expects to be an object.
|
|
11
|
+
*/
|
|
12
|
+
export function parseRunArgs(raw) {
|
|
13
|
+
if (raw === undefined || raw.trim() === '')
|
|
14
|
+
return {};
|
|
15
|
+
let parsed;
|
|
16
|
+
try {
|
|
17
|
+
parsed = JSON.parse(raw);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
throw new CLIError(`Invalid JSON args: ${err instanceof Error ? err.message : String(err)}\n Got: ${raw}`, { code: ErrorCode.VALIDATION_FAILED, category: 'validation' });
|
|
21
|
+
}
|
|
22
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
23
|
+
throw new CLIError(`Args must be a JSON OBJECT, e.g. '{"workspaceId":"<id>"}'. Got: ${raw}`, { code: ErrorCode.VALIDATION_FAILED, category: 'validation' });
|
|
24
|
+
}
|
|
25
|
+
return parsed;
|
|
26
|
+
}
|
|
27
|
+
export function attachRunCommand(admin) {
|
|
28
|
+
admin
|
|
29
|
+
.command('run')
|
|
30
|
+
.description('Run any admin manifest command directly by its full name (e.g. manage:archive-preset-residue). ' +
|
|
31
|
+
'The only generic runner that reaches manage:/inspect: commands — pb admin seed run is seed-only.')
|
|
32
|
+
.argument('<name>', 'full manifest command name, e.g. manage:archive-preset-residue')
|
|
33
|
+
.argument('[jsonArgs]', 'JSON object of args, e.g. \'{"workspaceId":"<id>"}\' (default: {})')
|
|
34
|
+
.option('--confirm', 'Non-interactive prod/cloud acknowledgment — required on a deployment tier that needs it', false)
|
|
35
|
+
.action(async (name, jsonArgs, options) => {
|
|
36
|
+
const args = parseRunArgs(jsonArgs);
|
|
37
|
+
// Let a config error surface naturally (no swallowed catch) — every path below, including
|
|
38
|
+
// the confirm gate, needs a real siteUrl to reason about.
|
|
39
|
+
const { siteUrl } = resolveAdminConfig();
|
|
40
|
+
// Deployment-tier gate, not a command-name allowlist (see module docstring) — `run` reaches
|
|
41
|
+
// every manifest command including the destructive ones, so any non-local/non-dev-cloud
|
|
42
|
+
// deployment requires explicit acknowledgment regardless of which command is being sent.
|
|
43
|
+
const needsConfirm = requiresAdminDestructiveConfirmation(siteUrl);
|
|
44
|
+
if (needsConfirm) {
|
|
45
|
+
const ok = await confirmProdAction({
|
|
46
|
+
confirm: options.confirm,
|
|
47
|
+
isProduction: true,
|
|
48
|
+
message: `Run admin command "${name}" via pb admin run on ${siteUrl}?`,
|
|
49
|
+
noteTitle: confirmRiskNoteTitle(siteUrl),
|
|
50
|
+
});
|
|
51
|
+
if (!ok) {
|
|
52
|
+
process.stderr.write('Cancelled.\n');
|
|
53
|
+
process.exitCode = 1;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Self-gates on quiet/JSON mode (style.ts) — matches every sibling admin command's banner.
|
|
58
|
+
adminBanner(siteUrl);
|
|
59
|
+
// No client-side command-name allowlist — see module docstring: the server's own refusal
|
|
60
|
+
// already lists every valid name, read live from COMMAND_MAP, with no second copy to drift.
|
|
61
|
+
const data = await adminCall(name, args);
|
|
62
|
+
// Always the FULL result, untruncated, as JSON — a dry-run's candidate list (e.g.
|
|
63
|
+
// manage:archive-preset-residue) is the founder's review artifact, and there is no sensible
|
|
64
|
+
// generic human-format for a result shape that varies per arbitrary manifest command.
|
|
65
|
+
process.stdout.write(JSON.stringify({ command: name, data }, null, 2) + '\n');
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/admin/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for `pb admin run <name> [jsonArgs]` — the generic admin-manifest dispatcher
|
|
3
|
+
* (WP-592 S3 review fix).
|
|
4
|
+
*
|
|
5
|
+
* Covers:
|
|
6
|
+
* - dispatches the given command name with parsed JSON args via adminCall
|
|
7
|
+
* - defaults to {} when jsonArgs is omitted
|
|
8
|
+
* - rejects invalid JSON before ever calling adminCall
|
|
9
|
+
* - rejects a JSON array / scalar (must be an object) before ever calling adminCall
|
|
10
|
+
* - prints the FULL result as JSON, untruncated
|
|
11
|
+
* - an unknown-command error from adminCall (mirroring the server's
|
|
12
|
+
* "Unknown admin command" refusal) propagates rather than being swallowed
|
|
13
|
+
* - prints the deployment banner before dispatching (WP-592 S3 second-pass review fix)
|
|
14
|
+
* - a deployment tier that requires confirmation gates the dispatch on confirmProdAction
|
|
15
|
+
* - a tier that does not require confirmation (e.g. local) never consults confirmProdAction
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=run.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.test.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/run.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for `pb admin run <name> [jsonArgs]` — the generic admin-manifest dispatcher
|
|
3
|
+
* (WP-592 S3 review fix).
|
|
4
|
+
*
|
|
5
|
+
* Covers:
|
|
6
|
+
* - dispatches the given command name with parsed JSON args via adminCall
|
|
7
|
+
* - defaults to {} when jsonArgs is omitted
|
|
8
|
+
* - rejects invalid JSON before ever calling adminCall
|
|
9
|
+
* - rejects a JSON array / scalar (must be an object) before ever calling adminCall
|
|
10
|
+
* - prints the FULL result as JSON, untruncated
|
|
11
|
+
* - an unknown-command error from adminCall (mirroring the server's
|
|
12
|
+
* "Unknown admin command" refusal) propagates rather than being swallowed
|
|
13
|
+
* - prints the deployment banner before dispatching (WP-592 S3 second-pass review fix)
|
|
14
|
+
* - a deployment tier that requires confirmation gates the dispatch on confirmProdAction
|
|
15
|
+
* - a tier that does not require confirmation (e.g. local) never consults confirmProdAction
|
|
16
|
+
*/
|
|
17
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
18
|
+
import { Command } from 'commander';
|
|
19
|
+
// Mock adminCall — the single server dispatch surface.
|
|
20
|
+
vi.mock('../../lib/client.js', () => ({
|
|
21
|
+
adminCall: vi.fn(async () => ({})),
|
|
22
|
+
}));
|
|
23
|
+
vi.mock('../../lib/config.js', () => ({
|
|
24
|
+
resolveAdminConfig: vi.fn(() => ({ siteUrl: 'http://127.0.0.1:3210' })),
|
|
25
|
+
}));
|
|
26
|
+
// Mock the banner + confirm primitives directly rather than relying on TTY/quiet-mode detection
|
|
27
|
+
// in the test process — this asserts run.ts actually CALLS them with the right arguments, which
|
|
28
|
+
// is the behavior the WP-592 S3 second-pass review finding is about (MAJOR 1).
|
|
29
|
+
vi.mock('../../lib/style.js', () => ({
|
|
30
|
+
adminBanner: vi.fn(),
|
|
31
|
+
confirmProdAction: vi.fn(async () => true),
|
|
32
|
+
}));
|
|
33
|
+
vi.mock('../../lib/deployment.js', () => ({
|
|
34
|
+
requiresAdminDestructiveConfirmation: vi.fn(() => false),
|
|
35
|
+
confirmRiskNoteTitle: vi.fn(() => '⚠ Confirm'),
|
|
36
|
+
}));
|
|
37
|
+
import { attachRunCommand, parseRunArgs } from './run.js';
|
|
38
|
+
import { adminCall } from '../../lib/client.js';
|
|
39
|
+
import { adminBanner, confirmProdAction } from '../../lib/style.js';
|
|
40
|
+
import { requiresAdminDestructiveConfirmation } from '../../lib/deployment.js';
|
|
41
|
+
/** Build a Commander tree with `run` attached and parse argv. */
|
|
42
|
+
async function runAdminRun(argv) {
|
|
43
|
+
const admin = new Command();
|
|
44
|
+
attachRunCommand(admin);
|
|
45
|
+
// exitOverride so a parse error throws instead of calling process.exit.
|
|
46
|
+
admin.exitOverride();
|
|
47
|
+
await admin.parseAsync(['node', 'pb', 'run', ...argv]);
|
|
48
|
+
}
|
|
49
|
+
let stdoutSpy;
|
|
50
|
+
beforeEach(() => {
|
|
51
|
+
vi.clearAllMocks();
|
|
52
|
+
vi.mocked(adminCall).mockResolvedValue({ ok: true });
|
|
53
|
+
stdoutSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
54
|
+
});
|
|
55
|
+
afterEach(() => {
|
|
56
|
+
stdoutSpy.mockRestore();
|
|
57
|
+
process.exitCode = 0;
|
|
58
|
+
});
|
|
59
|
+
describe('parseRunArgs', () => {
|
|
60
|
+
it('returns {} when jsonArgs is omitted', () => {
|
|
61
|
+
expect(parseRunArgs(undefined)).toEqual({});
|
|
62
|
+
});
|
|
63
|
+
it('returns {} for an empty/whitespace string', () => {
|
|
64
|
+
expect(parseRunArgs(' ')).toEqual({});
|
|
65
|
+
});
|
|
66
|
+
it('parses a valid JSON object', () => {
|
|
67
|
+
expect(parseRunArgs('{"workspaceId":"ws1","dryRun":false}')).toEqual({
|
|
68
|
+
workspaceId: 'ws1',
|
|
69
|
+
dryRun: false,
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
it('throws on invalid JSON', () => {
|
|
73
|
+
expect(() => parseRunArgs('{not json')).toThrow(/Invalid JSON args/);
|
|
74
|
+
});
|
|
75
|
+
it('throws on a JSON array (must be an object)', () => {
|
|
76
|
+
expect(() => parseRunArgs('[1,2,3]')).toThrow(/must be a JSON OBJECT/);
|
|
77
|
+
});
|
|
78
|
+
it('throws on a bare JSON scalar (must be an object)', () => {
|
|
79
|
+
expect(() => parseRunArgs('"just a string"')).toThrow(/must be a JSON OBJECT/);
|
|
80
|
+
});
|
|
81
|
+
it('throws on JSON null (must be an object)', () => {
|
|
82
|
+
expect(() => parseRunArgs('null')).toThrow(/must be a JSON OBJECT/);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('pb admin run <name> [jsonArgs]', () => {
|
|
86
|
+
it('dispatches the given command name with parsed JSON args', async () => {
|
|
87
|
+
await runAdminRun(['manage:archive-preset-residue', '{"workspaceId":"ws1"}']);
|
|
88
|
+
expect(adminCall).toHaveBeenCalledTimes(1);
|
|
89
|
+
expect(adminCall).toHaveBeenCalledWith('manage:archive-preset-residue', { workspaceId: 'ws1' });
|
|
90
|
+
});
|
|
91
|
+
it('defaults args to {} when jsonArgs is omitted', async () => {
|
|
92
|
+
await runAdminRun(['inspect:preset-residue-census']);
|
|
93
|
+
expect(adminCall).toHaveBeenCalledWith('inspect:preset-residue-census', {});
|
|
94
|
+
});
|
|
95
|
+
it('rejects invalid JSON before ever calling adminCall', async () => {
|
|
96
|
+
await expect(runAdminRun(['manage:archive-preset-residue', '{bad'])).rejects.toThrow(/Invalid JSON args/);
|
|
97
|
+
expect(adminCall).not.toHaveBeenCalled();
|
|
98
|
+
});
|
|
99
|
+
it('rejects a non-object JSON value before ever calling adminCall', async () => {
|
|
100
|
+
await expect(runAdminRun(['manage:archive-preset-residue', '[1,2]'])).rejects.toThrow(/must be a JSON OBJECT/);
|
|
101
|
+
expect(adminCall).not.toHaveBeenCalled();
|
|
102
|
+
});
|
|
103
|
+
it('prints the full result as JSON, untruncated', async () => {
|
|
104
|
+
const bigResult = {
|
|
105
|
+
outcome: 'dry_run',
|
|
106
|
+
candidates: Array.from({ length: 50 }, (_, i) => ({ entryId: `E-${i}`, classification: 'orphaned' })),
|
|
107
|
+
};
|
|
108
|
+
vi.mocked(adminCall).mockResolvedValueOnce(bigResult);
|
|
109
|
+
await runAdminRun(['manage:archive-preset-residue', '{"workspaceId":"ws1"}']);
|
|
110
|
+
const written = stdoutSpy.mock.calls.map((c) => String(c[0])).join('');
|
|
111
|
+
const parsed = JSON.parse(written);
|
|
112
|
+
expect(parsed.command).toBe('manage:archive-preset-residue');
|
|
113
|
+
expect(parsed.data.candidates).toHaveLength(50);
|
|
114
|
+
});
|
|
115
|
+
it('propagates an unknown-command error from adminCall rather than swallowing it', async () => {
|
|
116
|
+
vi.mocked(adminCall).mockRejectedValueOnce(new Error('Unknown admin command: "typo:command". Available: seed:knowledge, manage:archive-preset-residue, ...'));
|
|
117
|
+
await expect(runAdminRun(['typo:command'])).rejects.toThrow(/Unknown admin command/);
|
|
118
|
+
});
|
|
119
|
+
it('prints the deployment banner before dispatching', async () => {
|
|
120
|
+
await runAdminRun(['manage:archive-preset-residue', '{"workspaceId":"ws1"}']);
|
|
121
|
+
expect(adminBanner).toHaveBeenCalledTimes(1);
|
|
122
|
+
expect(adminBanner).toHaveBeenCalledWith('http://127.0.0.1:3210');
|
|
123
|
+
});
|
|
124
|
+
it('does not consult confirmProdAction on a tier that does not require confirmation', async () => {
|
|
125
|
+
vi.mocked(requiresAdminDestructiveConfirmation).mockReturnValueOnce(false);
|
|
126
|
+
await runAdminRun(['manage:archive-preset-residue', '{"workspaceId":"ws1"}']);
|
|
127
|
+
expect(confirmProdAction).not.toHaveBeenCalled();
|
|
128
|
+
expect(adminCall).toHaveBeenCalledTimes(1);
|
|
129
|
+
});
|
|
130
|
+
it('gates the dispatch on confirmProdAction when the deployment tier requires confirmation', async () => {
|
|
131
|
+
vi.mocked(requiresAdminDestructiveConfirmation).mockReturnValueOnce(true);
|
|
132
|
+
vi.mocked(confirmProdAction).mockResolvedValueOnce(true);
|
|
133
|
+
await runAdminRun(['manage:archive-preset-residue', '--confirm', '{"workspaceId":"ws1"}']);
|
|
134
|
+
expect(confirmProdAction).toHaveBeenCalledTimes(1);
|
|
135
|
+
expect(confirmProdAction).toHaveBeenCalledWith(expect.objectContaining({ confirm: true, isProduction: true }));
|
|
136
|
+
expect(adminCall).toHaveBeenCalledTimes(1);
|
|
137
|
+
});
|
|
138
|
+
it('refuses the dispatch when confirmProdAction resolves false on a tier that requires confirmation', async () => {
|
|
139
|
+
vi.mocked(requiresAdminDestructiveConfirmation).mockReturnValueOnce(true);
|
|
140
|
+
vi.mocked(confirmProdAction).mockResolvedValueOnce(false);
|
|
141
|
+
await runAdminRun(['manage:archive-preset-residue', '{"workspaceId":"ws1"}']);
|
|
142
|
+
expect(confirmProdAction).toHaveBeenCalledTimes(1);
|
|
143
|
+
expect(adminCall).not.toHaveBeenCalled();
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=run.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.test.js","sourceRoot":"","sources":["../../../src/commands/admin/run.test.ts"],"names":[],"mappings":"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"}
|