@kernlang/core 3.4.0 → 3.4.2-canary.3.1.6b4cbb13
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/codegen/body-ts.d.ts +68 -0
- package/dist/codegen/body-ts.js +233 -0
- package/dist/codegen/body-ts.js.map +1 -0
- package/dist/codegen/functions.js +19 -2
- package/dist/codegen/functions.js.map +1 -1
- package/dist/codegen/kern-stdlib.d.ts +63 -0
- package/dist/codegen/kern-stdlib.js +160 -0
- package/dist/codegen/kern-stdlib.js.map +1 -0
- package/dist/codegen/stdlib-preamble.d.ts +19 -0
- package/dist/codegen/stdlib-preamble.js +62 -4
- package/dist/codegen/stdlib-preamble.js.map +1 -1
- package/dist/codegen/type-system.js +15 -1
- package/dist/codegen/type-system.js.map +1 -1
- package/dist/codegen-core.js +7 -0
- package/dist/codegen-core.js.map +1 -1
- package/dist/codegen-expression.d.ts +8 -0
- package/dist/codegen-expression.js +111 -5
- package/dist/codegen-expression.js.map +1 -1
- package/dist/decompiler.js +219 -0
- package/dist/decompiler.js.map +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/native-eligibility.d.ts +69 -0
- package/dist/native-eligibility.js +155 -0
- package/dist/native-eligibility.js.map +1 -0
- package/dist/node-props.d.ts +4 -0
- package/dist/node-props.js.map +1 -1
- package/dist/parser-core.d.ts +7 -1
- package/dist/parser-core.js +5 -2
- package/dist/parser-core.js.map +1 -1
- package/dist/parser-diagnostics.js +6 -2
- package/dist/parser-diagnostics.js.map +1 -1
- package/dist/parser-expression.d.ts +8 -3
- package/dist/parser-expression.js +293 -5
- package/dist/parser-expression.js.map +1 -1
- package/dist/parser-keywords.js +16 -0
- package/dist/parser-keywords.js.map +1 -1
- package/dist/parser-validate-native-eligible.d.ts +21 -0
- package/dist/parser-validate-native-eligible.js +46 -0
- package/dist/parser-validate-native-eligible.js.map +1 -0
- package/dist/parser-validate-propagation.d.ts +105 -0
- package/dist/parser-validate-propagation.js +684 -0
- package/dist/parser-validate-propagation.js.map +1 -0
- package/dist/parser.d.ts +10 -3
- package/dist/parser.js +11 -5
- package/dist/parser.js.map +1 -1
- package/dist/schema.js +199 -13
- package/dist/schema.js.map +1 -1
- package/dist/semantic-validator.js +9 -5
- package/dist/semantic-validator.js.map +1 -1
- package/dist/spec.d.ts +2 -2
- package/dist/spec.js +13 -1
- package/dist/spec.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/value-ir.d.ts +27 -0
- package/dist/value-ir.js +6 -1
- package/dist/value-ir.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-validate-propagation.js","sourceRoot":"","sources":["../src/parser-validate-propagation.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* - parser-keywords.ts — keyword-specific handlers
|
|
10
10
|
* - parser-core.ts — line parsing, tree building, orchestration
|
|
11
11
|
*/
|
|
12
|
+
import { type ParseOptions } from './parser-core.js';
|
|
12
13
|
import type { ParserHintsConfig } from './runtime.js';
|
|
13
14
|
import { type KernRuntime } from './runtime.js';
|
|
14
15
|
import type { IRNode, ParseDiagnostic, ParseResult } from './types.js';
|
|
@@ -65,9 +66,15 @@ export declare function parseDocument(source: string, runtime?: KernRuntime): IR
|
|
|
65
66
|
* @param runtime - Optional KernRuntime instance for isolation
|
|
66
67
|
* @returns `{ root: IRNode, diagnostics: ParseDiagnostic[] }`
|
|
67
68
|
*/
|
|
68
|
-
export declare function parseWithDiagnostics(source: string, runtime?: KernRuntime): ParseResult;
|
|
69
|
-
/** Parse with diagnostics (document mode).
|
|
70
|
-
|
|
69
|
+
export declare function parseWithDiagnostics(source: string, runtime?: KernRuntime, options?: ParseOptions): ParseResult;
|
|
70
|
+
/** Parse with diagnostics (document mode).
|
|
71
|
+
*
|
|
72
|
+
* Slice 7 v2 — `options.resolveImport` enables cross-module Result/Option
|
|
73
|
+
* recognition for `?`/`!` propagation. The CLI builds the resolver from a
|
|
74
|
+
* project-wide pre-pass over `.kern` files and passes it per-file; pure
|
|
75
|
+
* callers (browser playground, tests) omit it and cross-module
|
|
76
|
+
* recognition stays disabled. */
|
|
77
|
+
export declare function parseDocumentWithDiagnostics(source: string, runtime?: KernRuntime, options?: ParseOptions): ParseResult;
|
|
71
78
|
/**
|
|
72
79
|
* Strict parse — throws if any diagnostic has severity `'error'` or a schema violation is found.
|
|
73
80
|
*
|
package/dist/parser.js
CHANGED
|
@@ -83,12 +83,18 @@ export function parseDocument(source, runtime) {
|
|
|
83
83
|
* @param runtime - Optional KernRuntime instance for isolation
|
|
84
84
|
* @returns `{ root: IRNode, diagnostics: ParseDiagnostic[] }`
|
|
85
85
|
*/
|
|
86
|
-
export function parseWithDiagnostics(source, runtime) {
|
|
87
|
-
return parseInternal(source, false, runtime);
|
|
86
|
+
export function parseWithDiagnostics(source, runtime, options) {
|
|
87
|
+
return parseInternal(source, false, runtime, options);
|
|
88
88
|
}
|
|
89
|
-
/** Parse with diagnostics (document mode).
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
/** Parse with diagnostics (document mode).
|
|
90
|
+
*
|
|
91
|
+
* Slice 7 v2 — `options.resolveImport` enables cross-module Result/Option
|
|
92
|
+
* recognition for `?`/`!` propagation. The CLI builds the resolver from a
|
|
93
|
+
* project-wide pre-pass over `.kern` files and passes it per-file; pure
|
|
94
|
+
* callers (browser playground, tests) omit it and cross-module
|
|
95
|
+
* recognition stays disabled. */
|
|
96
|
+
export function parseDocumentWithDiagnostics(source, runtime, options) {
|
|
97
|
+
return parseInternal(source, true, runtime, options);
|
|
92
98
|
}
|
|
93
99
|
/**
|
|
94
100
|
* Strict parse — throws if any diagnostic has severity `'error'` or a schema violation is found.
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -291,8 +291,9 @@ export const NODE_SCHEMAS = {
|
|
|
291
291
|
props: {
|
|
292
292
|
name: { required: true, kind: 'string' },
|
|
293
293
|
target: { kind: 'string' },
|
|
294
|
+
coverage: { kind: 'boolean' },
|
|
294
295
|
},
|
|
295
|
-
allowedChildren: ['describe', 'it', 'expect', 'fixture', 'handler'],
|
|
296
|
+
allowedChildren: ['describe', 'it', 'expect', 'fixture', 'mock', 'handler'],
|
|
296
297
|
},
|
|
297
298
|
event: {
|
|
298
299
|
description: 'Typed event with payload type children',
|
|
@@ -1201,7 +1202,7 @@ export const NODE_SCHEMAS = {
|
|
|
1201
1202
|
deps: { kind: 'string' },
|
|
1202
1203
|
once: { kind: 'boolean' },
|
|
1203
1204
|
},
|
|
1204
|
-
allowedChildren: ['prop', 'handler', 'cleanup'],
|
|
1205
|
+
allowedChildren: ['prop', 'handler', 'cleanup', 'trigger', 'recover'],
|
|
1205
1206
|
},
|
|
1206
1207
|
// ── Web / UI node types ──────────────────────────────────────────────
|
|
1207
1208
|
page: {
|
|
@@ -1468,7 +1469,22 @@ export const NODE_SCHEMAS = {
|
|
|
1468
1469
|
props: {
|
|
1469
1470
|
name: { required: true, kind: 'identifier' },
|
|
1470
1471
|
},
|
|
1471
|
-
allowedChildren: [
|
|
1472
|
+
allowedChildren: [
|
|
1473
|
+
'param',
|
|
1474
|
+
'handler',
|
|
1475
|
+
'description',
|
|
1476
|
+
'guard',
|
|
1477
|
+
'sampling',
|
|
1478
|
+
'elicitation',
|
|
1479
|
+
'derive',
|
|
1480
|
+
'effect',
|
|
1481
|
+
'respond',
|
|
1482
|
+
'branch',
|
|
1483
|
+
'each',
|
|
1484
|
+
'collect',
|
|
1485
|
+
'destructure',
|
|
1486
|
+
'partition',
|
|
1487
|
+
],
|
|
1472
1488
|
},
|
|
1473
1489
|
resource: {
|
|
1474
1490
|
description: 'MCP resource — a data source exposed to AI agents via URI. Use {variables} for templated URIs.',
|
|
@@ -1682,6 +1698,10 @@ export const NODE_SCHEMAS = {
|
|
|
1682
1698
|
kind: { kind: 'identifier' },
|
|
1683
1699
|
on: { kind: 'string' },
|
|
1684
1700
|
from: { kind: 'string' },
|
|
1701
|
+
expr: { kind: 'rawExpr' },
|
|
1702
|
+
query: { kind: 'string' },
|
|
1703
|
+
url: { kind: 'string' },
|
|
1704
|
+
call: { kind: 'rawExpr' },
|
|
1685
1705
|
},
|
|
1686
1706
|
allowedChildren: ['handler'],
|
|
1687
1707
|
},
|
|
@@ -2163,13 +2183,13 @@ export const NODE_SCHEMAS = {
|
|
|
2163
2183
|
description: 'Test suite — groups related test cases',
|
|
2164
2184
|
example: 'describe name="UserService"\n it name="creates a user"\n handler <<<\n expect(createUser()).toBeDefined();\n >>>',
|
|
2165
2185
|
props: { name: { required: true, kind: 'string' } },
|
|
2166
|
-
allowedChildren: ['it', 'describe', 'expect', 'fixture', 'handler'],
|
|
2186
|
+
allowedChildren: ['it', 'describe', 'expect', 'fixture', 'mock', 'handler'],
|
|
2167
2187
|
},
|
|
2168
2188
|
it: {
|
|
2169
2189
|
description: 'Test case — single test assertion',
|
|
2170
2190
|
example: 'it name="returns 200 on success"\n handler <<<\n expect(res.status).toBe(200);\n >>>',
|
|
2171
2191
|
props: { name: { required: true, kind: 'string' } },
|
|
2172
|
-
allowedChildren: ['expect', 'fixture', 'handler'],
|
|
2192
|
+
allowedChildren: ['expect', 'case', 'fixture', 'mock', 'handler'],
|
|
2173
2193
|
},
|
|
2174
2194
|
// Ground layer — semantic reasoning
|
|
2175
2195
|
path: {
|
|
@@ -2208,14 +2228,32 @@ export const NODE_SCHEMAS = {
|
|
|
2208
2228
|
},
|
|
2209
2229
|
expect: {
|
|
2210
2230
|
description: 'Assertion — declare an expected runtime condition or KERN structural invariant',
|
|
2211
|
-
example: 'expect expr={{items.length > 0}} message="Items must not be empty"\nexpect machine=Order reaches=paid via=confirm,capture\nexpect machine=Order transition=capture from=confirmed to=paid\nexpect node=interface name=User child=field count=3\nexpect no=deriveCycles',
|
|
2231
|
+
example: 'expect expr={{items.length > 0}} message="Items must not be empty"\nexpect route="GET /api/users" with={{({ query: { role: "admin" } })}} returns={{adminUsers}}\nexpect machine=Order reaches=paid via=confirm,capture\nexpect machine=Order transition=capture from=confirmed to=paid\nexpect node=interface name=User child=field count=3\nexpect no=deriveCycles',
|
|
2212
2232
|
props: {
|
|
2213
2233
|
expr: { kind: 'rawExpr' },
|
|
2214
2234
|
fn: { kind: 'identifier' },
|
|
2215
2235
|
derive: { kind: 'identifier' },
|
|
2236
|
+
route: { kind: 'string' },
|
|
2237
|
+
tool: { kind: 'identifier' },
|
|
2238
|
+
effect: { kind: 'identifier' },
|
|
2239
|
+
mock: { kind: 'identifier' },
|
|
2240
|
+
called: { kind: 'number' },
|
|
2241
|
+
import: { kind: 'string' },
|
|
2242
|
+
source: { kind: 'string' },
|
|
2243
|
+
unmapped: { kind: 'number' },
|
|
2244
|
+
allowWarnings: { kind: 'boolean' },
|
|
2216
2245
|
args: { kind: 'rawExpr' },
|
|
2217
2246
|
with: { kind: 'rawExpr' },
|
|
2247
|
+
input: { kind: 'rawExpr' },
|
|
2218
2248
|
equals: { kind: 'rawExpr' },
|
|
2249
|
+
returns: { kind: 'rawExpr' },
|
|
2250
|
+
recovers: { kind: 'boolean' },
|
|
2251
|
+
fallback: { kind: 'rawExpr' },
|
|
2252
|
+
codegen: { kind: 'boolean' },
|
|
2253
|
+
decompile: { kind: 'boolean' },
|
|
2254
|
+
roundtrip: { kind: 'boolean' },
|
|
2255
|
+
contains: { kind: 'string' },
|
|
2256
|
+
notContains: { kind: 'string' },
|
|
2219
2257
|
matches: { kind: 'string' },
|
|
2220
2258
|
throws: { kind: 'string' },
|
|
2221
2259
|
message: { kind: 'string' },
|
|
@@ -2248,6 +2286,26 @@ export const NODE_SCHEMAS = {
|
|
|
2248
2286
|
covers: { kind: 'string' },
|
|
2249
2287
|
},
|
|
2250
2288
|
},
|
|
2289
|
+
case: {
|
|
2290
|
+
description: 'Native test table row — supplies input and expected output for a parent expect assertion',
|
|
2291
|
+
example: 'case name=admin with={{({ query: { role: "admin" } })}} returns={{adminUsers}}\nexpect route="GET /api/users"',
|
|
2292
|
+
props: {
|
|
2293
|
+
name: { kind: 'string' },
|
|
2294
|
+
args: { kind: 'rawExpr' },
|
|
2295
|
+
with: { kind: 'rawExpr' },
|
|
2296
|
+
input: { kind: 'rawExpr' },
|
|
2297
|
+
equals: { kind: 'rawExpr' },
|
|
2298
|
+
returns: { kind: 'rawExpr' },
|
|
2299
|
+
recovers: { kind: 'boolean' },
|
|
2300
|
+
fallback: { kind: 'rawExpr' },
|
|
2301
|
+
matches: { kind: 'string' },
|
|
2302
|
+
throws: { kind: 'string' },
|
|
2303
|
+
called: { kind: 'number' },
|
|
2304
|
+
message: { kind: 'string' },
|
|
2305
|
+
severity: { kind: 'identifier' },
|
|
2306
|
+
},
|
|
2307
|
+
allowedChildren: ['fixture', 'mock'],
|
|
2308
|
+
},
|
|
2251
2309
|
fixture: {
|
|
2252
2310
|
description: 'Native test fixture — named runtime data available to scoped expect assertions',
|
|
2253
2311
|
example: 'fixture name=paidOrder value={{({ id: "ord_1", status: "paid" })}}',
|
|
@@ -2257,10 +2315,22 @@ export const NODE_SCHEMAS = {
|
|
|
2257
2315
|
expr: { kind: 'rawExpr' },
|
|
2258
2316
|
},
|
|
2259
2317
|
},
|
|
2318
|
+
mock: {
|
|
2319
|
+
description: 'Native test mock — replaces a scoped KERN effect with deterministic runtime data',
|
|
2320
|
+
example: 'mock effect=fetchUsers returns={{users}}\nmock effect=fetchUsers throws=NetworkError',
|
|
2321
|
+
props: {
|
|
2322
|
+
effect: { required: true, kind: 'identifier' },
|
|
2323
|
+
returns: { kind: 'rawExpr' },
|
|
2324
|
+
throws: { kind: 'string' },
|
|
2325
|
+
},
|
|
2326
|
+
},
|
|
2260
2327
|
recover: {
|
|
2261
2328
|
description: 'Recovery handler — runs when a parent node fails',
|
|
2262
2329
|
example: 'recover\n handler <<<\n return fallbackValue;\n >>>',
|
|
2263
|
-
props: {
|
|
2330
|
+
props: {
|
|
2331
|
+
retry: { kind: 'number' },
|
|
2332
|
+
fallback: { kind: 'rawExpr' },
|
|
2333
|
+
},
|
|
2264
2334
|
allowedChildren: ['handler'],
|
|
2265
2335
|
},
|
|
2266
2336
|
strategy: {
|
|
@@ -2369,39 +2439,135 @@ function checkCrossProps(node, violations) {
|
|
|
2369
2439
|
if (node.type === 'expect') {
|
|
2370
2440
|
const hasRuntimeAssertion = 'expr' in props;
|
|
2371
2441
|
const hasRuntimeBehavior = 'fn' in props || 'derive' in props;
|
|
2442
|
+
const hasRuntimeWorkflow = 'route' in props || 'tool' in props || 'effect' in props;
|
|
2443
|
+
const hasMockCallAssertion = 'mock' in props || 'called' in props;
|
|
2444
|
+
const hasCodegenAssertion = 'codegen' in props;
|
|
2445
|
+
const hasDecompileAssertion = 'decompile' in props;
|
|
2446
|
+
const hasImportAssertion = 'import' in props;
|
|
2447
|
+
const hasRoundtripAssertion = 'roundtrip' in props;
|
|
2372
2448
|
const hasPreset = 'preset' in props;
|
|
2373
2449
|
const hasNodeShape = 'node' in props;
|
|
2374
2450
|
const hasNegativeInvariant = 'no' in props;
|
|
2451
|
+
const hasPositiveInvariant = 'has' in props;
|
|
2375
2452
|
const hasGuardExhaustiveness = 'guard' in props;
|
|
2376
2453
|
const hasMachineTransition = 'transition' in props;
|
|
2377
|
-
const hasMachineReachability = 'reaches' in props ||
|
|
2454
|
+
const hasMachineReachability = 'reaches' in props ||
|
|
2455
|
+
('machine' in props && !hasNegativeInvariant && !hasPositiveInvariant && !hasMachineTransition);
|
|
2378
2456
|
if (!hasRuntimeAssertion &&
|
|
2379
2457
|
!hasRuntimeBehavior &&
|
|
2458
|
+
!hasRuntimeWorkflow &&
|
|
2459
|
+
!hasMockCallAssertion &&
|
|
2460
|
+
!hasCodegenAssertion &&
|
|
2461
|
+
!hasDecompileAssertion &&
|
|
2462
|
+
!hasImportAssertion &&
|
|
2463
|
+
!hasRoundtripAssertion &&
|
|
2380
2464
|
!hasPreset &&
|
|
2381
2465
|
!hasNodeShape &&
|
|
2382
2466
|
!hasMachineTransition &&
|
|
2383
2467
|
!hasMachineReachability &&
|
|
2384
2468
|
!hasNegativeInvariant &&
|
|
2469
|
+
!hasPositiveInvariant &&
|
|
2385
2470
|
!hasGuardExhaustiveness) {
|
|
2386
2471
|
violations.push({
|
|
2387
2472
|
nodeType: 'expect',
|
|
2388
|
-
message: "'expect' requires 'expr', 'fn', 'derive', 'preset', 'node', 'machine' reachability, machine transition, 'no', or 'guard'",
|
|
2473
|
+
message: "'expect' requires 'expr', 'fn', 'derive', 'route', 'tool', 'effect', 'mock' call count, 'codegen', 'decompile', 'import', 'roundtrip', 'preset', 'node', 'machine' reachability, machine transition, 'no', 'has', or 'guard'",
|
|
2389
2474
|
line: node.loc?.line,
|
|
2390
2475
|
col: node.loc?.col,
|
|
2391
2476
|
});
|
|
2392
2477
|
}
|
|
2393
|
-
if ('
|
|
2478
|
+
if (hasCodegenAssertion && !('contains' in props) && !('notContains' in props) && !('matches' in props)) {
|
|
2394
2479
|
violations.push({
|
|
2395
2480
|
nodeType: 'expect',
|
|
2396
|
-
message: "'expect'
|
|
2481
|
+
message: "'expect codegen' requires contains=, notContains=, or matches=",
|
|
2397
2482
|
line: node.loc?.line,
|
|
2398
2483
|
col: node.loc?.col,
|
|
2399
2484
|
});
|
|
2400
2485
|
}
|
|
2401
|
-
if (
|
|
2486
|
+
if (hasDecompileAssertion && !('contains' in props) && !('notContains' in props) && !('matches' in props)) {
|
|
2487
|
+
violations.push({
|
|
2488
|
+
nodeType: 'expect',
|
|
2489
|
+
message: "'expect decompile' requires contains=, notContains=, or matches=",
|
|
2490
|
+
line: node.loc?.line,
|
|
2491
|
+
col: node.loc?.col,
|
|
2492
|
+
});
|
|
2493
|
+
}
|
|
2494
|
+
if (hasImportAssertion) {
|
|
2495
|
+
const importValue = props.import === undefined ? '' : String(props.import);
|
|
2496
|
+
const hasPath = (importValue !== '' && importValue !== 'true') || 'from' in props || 'source' in props;
|
|
2497
|
+
const hasTextAssertion = 'contains' in props || 'notContains' in props || 'matches' in props;
|
|
2498
|
+
const hasUnmappedAssertion = 'unmapped' in props || props.no === 'unmapped';
|
|
2499
|
+
if (!hasPath) {
|
|
2500
|
+
violations.push({
|
|
2501
|
+
nodeType: 'expect',
|
|
2502
|
+
message: "'expect import' requires import=<ts-file>, from=<ts-file>, or source=<typescript>",
|
|
2503
|
+
line: node.loc?.line,
|
|
2504
|
+
col: node.loc?.col,
|
|
2505
|
+
});
|
|
2506
|
+
}
|
|
2507
|
+
if (!hasTextAssertion && !hasRoundtripAssertion && !hasUnmappedAssertion) {
|
|
2508
|
+
violations.push({
|
|
2509
|
+
nodeType: 'expect',
|
|
2510
|
+
message: "'expect import' requires contains=, notContains=, matches=, roundtrip=true, unmapped=<count>, or no=unmapped",
|
|
2511
|
+
line: node.loc?.line,
|
|
2512
|
+
col: node.loc?.col,
|
|
2513
|
+
});
|
|
2514
|
+
}
|
|
2515
|
+
}
|
|
2516
|
+
if (hasNegativeInvariant && hasPositiveInvariant) {
|
|
2402
2517
|
violations.push({
|
|
2403
2518
|
nodeType: 'expect',
|
|
2404
|
-
message: "'expect' cannot combine
|
|
2519
|
+
message: "'expect' cannot combine no=<invariant> and has=<invariant>",
|
|
2520
|
+
line: node.loc?.line,
|
|
2521
|
+
col: node.loc?.col,
|
|
2522
|
+
});
|
|
2523
|
+
}
|
|
2524
|
+
if (Number('fn' in props) +
|
|
2525
|
+
Number('derive' in props) +
|
|
2526
|
+
Number('route' in props) +
|
|
2527
|
+
Number('tool' in props) +
|
|
2528
|
+
Number('effect' in props) +
|
|
2529
|
+
Number('mock' in props) >
|
|
2530
|
+
1) {
|
|
2531
|
+
violations.push({
|
|
2532
|
+
nodeType: 'expect',
|
|
2533
|
+
message: "'expect' cannot combine fn=<name>, derive=<name>, route=<spec>, tool=<name>, effect=<name>, and mock=<name>",
|
|
2534
|
+
line: node.loc?.line,
|
|
2535
|
+
col: node.loc?.col,
|
|
2536
|
+
});
|
|
2537
|
+
}
|
|
2538
|
+
if ((hasRuntimeBehavior || hasRuntimeWorkflow || hasMockCallAssertion) && hasRuntimeAssertion) {
|
|
2539
|
+
violations.push({
|
|
2540
|
+
nodeType: 'expect',
|
|
2541
|
+
message: "'expect' cannot combine fn/derive/route/tool/effect/mock behavioral assertions with expr={{...}}",
|
|
2542
|
+
line: node.loc?.line,
|
|
2543
|
+
col: node.loc?.col,
|
|
2544
|
+
});
|
|
2545
|
+
}
|
|
2546
|
+
if (hasMockCallAssertion && (!('mock' in props) || !('called' in props))) {
|
|
2547
|
+
violations.push({
|
|
2548
|
+
nodeType: 'expect',
|
|
2549
|
+
message: "'expect' mock call assertions require both mock=<effect> and called=<count>",
|
|
2550
|
+
line: node.loc?.line,
|
|
2551
|
+
col: node.loc?.col,
|
|
2552
|
+
});
|
|
2553
|
+
}
|
|
2554
|
+
if ('called' in props) {
|
|
2555
|
+
const rawCalled = props.called;
|
|
2556
|
+
const called = Number(props.called);
|
|
2557
|
+
if (rawCalled === '' || !Number.isInteger(called) || called < 0) {
|
|
2558
|
+
violations.push({
|
|
2559
|
+
nodeType: 'expect',
|
|
2560
|
+
message: "'expect' mock call assertions require called=<non-negative integer>",
|
|
2561
|
+
line: node.loc?.line,
|
|
2562
|
+
col: node.loc?.col,
|
|
2563
|
+
});
|
|
2564
|
+
}
|
|
2565
|
+
}
|
|
2566
|
+
if (hasMockCallAssertion &&
|
|
2567
|
+
['args', 'with', 'input', 'equals', 'returns', 'recovers', 'fallback', 'matches', 'throws'].some((prop) => prop in props)) {
|
|
2568
|
+
violations.push({
|
|
2569
|
+
nodeType: 'expect',
|
|
2570
|
+
message: "'expect' mock call assertions cannot combine with runtime value/result props",
|
|
2405
2571
|
line: node.loc?.line,
|
|
2406
2572
|
col: node.loc?.col,
|
|
2407
2573
|
});
|
|
@@ -2459,6 +2625,26 @@ function checkCrossProps(node, violations) {
|
|
|
2459
2625
|
});
|
|
2460
2626
|
}
|
|
2461
2627
|
}
|
|
2628
|
+
if (node.type === 'mock') {
|
|
2629
|
+
const hasReturns = 'returns' in props;
|
|
2630
|
+
const hasThrows = 'throws' in props;
|
|
2631
|
+
if (!hasReturns && !hasThrows) {
|
|
2632
|
+
violations.push({
|
|
2633
|
+
nodeType: 'mock',
|
|
2634
|
+
message: "'mock' requires either returns={{...}} or throws=<ErrorName>",
|
|
2635
|
+
line: node.loc?.line,
|
|
2636
|
+
col: node.loc?.col,
|
|
2637
|
+
});
|
|
2638
|
+
}
|
|
2639
|
+
if (hasReturns && hasThrows) {
|
|
2640
|
+
violations.push({
|
|
2641
|
+
nodeType: 'mock',
|
|
2642
|
+
message: "'mock' must not combine returns={{...}} and throws=<ErrorName>",
|
|
2643
|
+
line: node.loc?.line,
|
|
2644
|
+
col: node.loc?.col,
|
|
2645
|
+
});
|
|
2646
|
+
}
|
|
2647
|
+
}
|
|
2462
2648
|
if (node.type === 'fmt') {
|
|
2463
2649
|
const returnMode = isTruthyProp(props.return);
|
|
2464
2650
|
if (returnMode && 'name' in props) {
|