@jantstack/adonis-authz 2.5.0-alpha.1 → 2.5.0-alpha.3
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/README.md +515 -22
- package/build/commands/authz_relations_reconcile.d.ts +13 -62
- package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
- package/build/commands/authz_relations_reconcile.js +202 -116
- package/build/commands/authz_relations_reconcile.js.map +1 -1
- package/build/commands/openfga_provision.d.ts +62 -0
- package/build/commands/openfga_provision.d.ts.map +1 -1
- package/build/commands/openfga_provision.js +193 -1
- package/build/commands/openfga_provision.js.map +1 -1
- package/build/index.d.ts +6 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -3
- package/build/index.js.map +1 -1
- package/build/providers/authz_provider.d.ts.map +1 -1
- package/build/providers/authz_provider.js +4 -1
- package/build/providers/authz_provider.js.map +1 -1
- package/build/src/define_config.d.ts +32 -0
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js +109 -0
- package/build/src/define_config.js.map +1 -1
- package/build/src/drivers/database_relations_driver.d.ts +36 -1
- package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/database_relations_driver.js +213 -46
- package/build/src/drivers/database_relations_driver.js.map +1 -1
- package/build/src/drivers/openfga_driver.d.ts +30 -4
- package/build/src/drivers/openfga_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_driver.js +151 -45
- package/build/src/drivers/openfga_driver.js.map +1 -1
- package/build/src/drivers/openfga_facts.d.ts +21 -0
- package/build/src/drivers/openfga_facts.d.ts.map +1 -1
- package/build/src/drivers/openfga_facts.js +74 -8
- package/build/src/drivers/openfga_facts.js.map +1 -1
- package/build/src/drivers/openfga_relations_driver.d.ts +140 -10
- package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_relations_driver.js +743 -49
- package/build/src/drivers/openfga_relations_driver.js.map +1 -1
- package/build/src/errors.d.ts +148 -0
- package/build/src/errors.d.ts.map +1 -1
- package/build/src/errors.js +166 -0
- package/build/src/errors.js.map +1 -1
- package/build/src/manager.d.ts.map +1 -1
- package/build/src/manager.js +15 -5
- package/build/src/manager.js.map +1 -1
- package/build/src/openfga.d.ts +1 -1
- package/build/src/openfga.d.ts.map +1 -1
- package/build/src/openfga.js +1 -1
- package/build/src/openfga.js.map +1 -1
- package/build/src/relations/check_many.d.ts +1 -1
- package/build/src/relations/check_many.d.ts.map +1 -1
- package/build/src/relations/check_many.js +6 -4
- package/build/src/relations/check_many.js.map +1 -1
- package/build/src/relations/define_relations_config.d.ts +187 -1
- package/build/src/relations/define_relations_config.d.ts.map +1 -1
- package/build/src/relations/define_relations_config.js +395 -7
- package/build/src/relations/define_relations_config.js.map +1 -1
- package/build/src/relations/manager.d.ts +33 -2
- package/build/src/relations/manager.d.ts.map +1 -1
- package/build/src/relations/manager.js +123 -4
- package/build/src/relations/manager.js.map +1 -1
- package/build/src/relations/reconcile.d.ts +295 -13
- package/build/src/relations/reconcile.d.ts.map +1 -1
- package/build/src/relations/reconcile.js +886 -85
- package/build/src/relations/reconcile.js.map +1 -1
- package/build/src/relations/tuple_order.d.ts +126 -0
- package/build/src/relations/tuple_order.d.ts.map +1 -0
- package/build/src/relations/tuple_order.js +598 -0
- package/build/src/relations/tuple_order.js.map +1 -0
- package/build/src/relations_config_store.d.ts.map +1 -1
- package/build/src/relations_config_store.js +29 -7
- package/build/src/relations_config_store.js.map +1 -1
- package/build/src/relations_reconcile.d.ts +79 -0
- package/build/src/relations_reconcile.d.ts.map +1 -0
- package/build/src/relations_reconcile.js +85 -0
- package/build/src/relations_reconcile.js.map +1 -0
- package/build/src/scope_outbox.d.ts +9 -5
- package/build/src/scope_outbox.d.ts.map +1 -1
- package/build/src/scope_outbox.js +7 -4
- package/build/src/scope_outbox.js.map +1 -1
- package/build/src/shared/backend_guard.d.ts +8 -0
- package/build/src/shared/backend_guard.d.ts.map +1 -1
- package/build/src/shared/backend_guard.js +15 -0
- package/build/src/shared/backend_guard.js.map +1 -1
- package/build/src/testing/main.d.ts +1 -1
- package/build/src/testing/main.d.ts.map +1 -1
- package/build/src/testing/main.js +1 -1
- package/build/src/testing/main.js.map +1 -1
- package/build/src/testing/relations_contract.d.ts +18 -0
- package/build/src/testing/relations_contract.d.ts.map +1 -1
- package/build/src/testing/relations_contract.js +895 -45
- package/build/src/testing/relations_contract.js.map +1 -1
- package/build/src/testing/relations_reconcile_contract.d.ts +9 -0
- package/build/src/testing/relations_reconcile_contract.d.ts.map +1 -1
- package/build/src/testing/relations_reconcile_contract.js +207 -0
- package/build/src/testing/relations_reconcile_contract.js.map +1 -1
- package/build/src/testing/scope_outbox_contract.d.ts +14 -1
- package/build/src/testing/scope_outbox_contract.d.ts.map +1 -1
- package/build/src/testing/scope_outbox_contract.js +126 -48
- package/build/src/testing/scope_outbox_contract.js.map +1 -1
- package/build/src/types.d.ts +90 -6
- package/build/src/types.d.ts.map +1 -1
- package/build/src/types.js +2 -0
- package/build/src/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
import { v7 as uuidv7 } from 'uuid';
|
|
23
23
|
import { test as japaTest } from '@japa/runner';
|
|
24
24
|
import { AuthorizationManager } from '../manager.js';
|
|
25
|
+
import { AuthorizationConfigError } from '../errors.js';
|
|
25
26
|
import { memoryScopeTree, resolveChainFrom } from './scope_tree.js';
|
|
26
27
|
import { APP_SCOPE } from '../types.js';
|
|
27
28
|
export const SCOPE_OUTBOX_CAPABILITY_KEYS = [
|
|
@@ -33,7 +34,10 @@ export const SCOPE_OUTBOX_CAPABILITY_KEYS = [
|
|
|
33
34
|
'earlierPending',
|
|
34
35
|
'requeue',
|
|
35
36
|
'createdAt',
|
|
37
|
+
'requiresTransaction',
|
|
36
38
|
];
|
|
39
|
+
/** Claves OPCIONALES (D15, desde 2.5.0): ausentes se normalizan a `false`; un valor presente tiene que ser booleano. */
|
|
40
|
+
export const OPTIONAL_SCOPE_OUTBOX_CAPABILITY_KEYS = ['requiresTransaction'];
|
|
37
41
|
function keyOf(scope) {
|
|
38
42
|
return scope.type === 'app' ? 'app' : `${scope.type}|${scope.uuid}`;
|
|
39
43
|
}
|
|
@@ -73,6 +77,12 @@ export function makeScopeOutbox(options) {
|
|
|
73
77
|
const indexOf = (id) => Number(id) - 1;
|
|
74
78
|
const outbox = {
|
|
75
79
|
async enqueue(change, context) {
|
|
80
|
+
// B6: el doble con `requiresTransaction: true` se niega sin `{ transaction }` con la MISMA letra que
|
|
81
|
+
// `sqlScopeOutbox` (nombra `requireTransaction`), para que el par se juzgue también sin base.
|
|
82
|
+
if (caps.requiresTransaction === true && context?.transaction === undefined) {
|
|
83
|
+
throw new AuthorizationConfigError('makeScopeOutbox.enqueue: no llegó { transaction } y este doble declara requireTransaction: true (requiresTransaction). ' +
|
|
84
|
+
'Encolar fuera de tu unidad de trabajo es la fuga que la outbox existe para cerrar. No se ha encolado nada.');
|
|
85
|
+
}
|
|
76
86
|
rows.push({ change, actor: context?.actor, attempts: 0, applied: false, createdAt: now() });
|
|
77
87
|
return { id: rows.length };
|
|
78
88
|
},
|
|
@@ -183,10 +193,14 @@ async function rejects(assert, run, expected, message) {
|
|
|
183
193
|
export function registerScopeOutboxContract(harness, api) {
|
|
184
194
|
const caps = harness.capabilities;
|
|
185
195
|
for (const key of SCOPE_OUTBOX_CAPABILITY_KEYS) {
|
|
196
|
+
if (OPTIONAL_SCOPE_OUTBOX_CAPABILITY_KEYS.includes(key) && caps[key] === undefined)
|
|
197
|
+
continue;
|
|
186
198
|
if (typeof caps[key] !== 'boolean') {
|
|
187
199
|
throw new Error(`[contrato ${harness.name}] la capacidad '${key}' tiene que ser un booleano (llegó ${String(caps[key])})`);
|
|
188
200
|
}
|
|
189
201
|
}
|
|
202
|
+
/** D15: la clave opcional ausente es `false`. */
|
|
203
|
+
const requiresTransaction = caps.requiresTransaction === true;
|
|
190
204
|
const maxAttempts = harness.limits?.maxAttempts;
|
|
191
205
|
if (caps.dead && !(Number.isInteger(maxAttempts) && maxAttempts >= 3)) {
|
|
192
206
|
throw new Error(`[contrato ${harness.name}] declara 'dead: true' sin 'limits.maxAttempts' (entero >= 3): sin saber cuándo aparca tu ` +
|
|
@@ -199,6 +213,10 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
199
213
|
throw new Error(`[contrato ${harness.name}] declara 'transactionalEnqueue: true' sin 'transactions.begin': sin una transacción de TU ` +
|
|
200
214
|
`conexión no se puede observar el rollback (un skip disfrazado).`);
|
|
201
215
|
}
|
|
216
|
+
if (requiresTransaction && typeof harness.transactions?.begin !== 'function') {
|
|
217
|
+
throw new Error(`[contrato ${harness.name}] declara 'requiresTransaction: true' sin 'transactions.begin': el juez tiene que encolar ` +
|
|
218
|
+
`con una transacción de TU conexión en cada caso (plan 2.5 · B6), y sin ella todo encolado sería el 500.`);
|
|
219
|
+
}
|
|
202
220
|
const covered = new Set();
|
|
203
221
|
let registered = 0;
|
|
204
222
|
const state = {};
|
|
@@ -220,7 +238,37 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
220
238
|
});
|
|
221
239
|
return { manager, driver, calls, tree };
|
|
222
240
|
}
|
|
223
|
-
|
|
241
|
+
/**
|
|
242
|
+
* **El encolado del juez pasa la transacción del harness** (plan 2.5 · lote B · B6, prerrequisito del
|
|
243
|
+
* default `requireTransaction: true` de `sqlScopeOutbox`): con `requiresTransaction` cada encolado
|
|
244
|
+
* —directo (`enqueue`) o por el manager (`scopes.*`)— abre `transactions.begin()`, encola con
|
|
245
|
+
* `{ transaction }` y confirma. Sin la capacidad, encola como hasta 2.4 (sin transacción). Hasta B6
|
|
246
|
+
* el contexto era `{ actor? }` a secas, y por eso el default no podía cambiar sin poner en rojo a todo tercero.
|
|
247
|
+
*/
|
|
248
|
+
async function viaTransaction(fn) {
|
|
249
|
+
if (!requiresTransaction)
|
|
250
|
+
return fn(undefined);
|
|
251
|
+
const trx = await harness.transactions.begin();
|
|
252
|
+
try {
|
|
253
|
+
const result = await fn(trx.client);
|
|
254
|
+
await trx.commit();
|
|
255
|
+
return result;
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
await trx.rollback();
|
|
259
|
+
throw error;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
const ctxOf = (transaction, actor) => ({
|
|
263
|
+
...(actor ? { actor } : {}),
|
|
264
|
+
...(transaction === undefined ? {} : { transaction }),
|
|
265
|
+
});
|
|
266
|
+
const enqueue = (outbox, change, actor) => viaTransaction((transaction) => outbox.enqueue(change, ctxOf(transaction, actor)));
|
|
267
|
+
const scopes = {
|
|
268
|
+
attached: (manager, child, parent) => viaTransaction((transaction) => manager.scopes.attached(child, parent, ctxOf(transaction))),
|
|
269
|
+
moved: (manager, child, parent) => viaTransaction((transaction) => manager.scopes.moved(child, parent, ctxOf(transaction))),
|
|
270
|
+
detached: (manager, child) => viaTransaction((transaction) => manager.scopes.detached(child, ctxOf(transaction))),
|
|
271
|
+
};
|
|
224
272
|
api.group(`scope outbox contract [${harness.name}]`, (group) => {
|
|
225
273
|
group.each.setup(async () => {
|
|
226
274
|
await harness.cleanup?.();
|
|
@@ -243,7 +291,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
243
291
|
/* ── Núcleo: los deberes que todo puerto tiene ── */
|
|
244
292
|
test('O-01 · recibo: `enqueue` devuelve `{ id }` (o void) y ese id es EXACTAMENTE el que `pending()` devuelve', async ({ assert }) => {
|
|
245
293
|
const outbox = state.outbox;
|
|
246
|
-
const receipt = await
|
|
294
|
+
const receipt = await enqueue(outbox, { op: 'attached', child: unitScope(), parent: orgScope() });
|
|
247
295
|
const [row] = await outbox.pending(10);
|
|
248
296
|
assert.isDefined(row, 'lo encolado está pendiente');
|
|
249
297
|
if (receipt !== undefined && receipt !== null) {
|
|
@@ -256,9 +304,9 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
256
304
|
const org = orgScope();
|
|
257
305
|
const unit = unitScope();
|
|
258
306
|
const actor = { type: 'users', uuid: uuidv7() };
|
|
259
|
-
await
|
|
260
|
-
await
|
|
261
|
-
await
|
|
307
|
+
await enqueue(outbox, { op: 'attached', child: org, parent: APP_SCOPE }, actor);
|
|
308
|
+
await enqueue(outbox, { op: 'moved', child: unit, parent: org });
|
|
309
|
+
await enqueue(outbox, { op: 'detached', child: unit });
|
|
262
310
|
const all = await outbox.pending(10);
|
|
263
311
|
assert.deepEqual(all.map((p) => p.change), [
|
|
264
312
|
{ op: 'attached', child: org, parent: APP_SCOPE },
|
|
@@ -273,9 +321,9 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
273
321
|
});
|
|
274
322
|
test('O-03 · `after` continúa DESPUÉS de un id: lo saltado no vuelve a salir el primero (3b-2h · 🔴 2)', async ({ assert }) => {
|
|
275
323
|
const outbox = state.outbox;
|
|
276
|
-
await
|
|
277
|
-
await
|
|
278
|
-
await
|
|
324
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
325
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
326
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
279
327
|
const [a, b, c] = await outbox.pending(10);
|
|
280
328
|
assert.deepEqual(ids(await outbox.pending(10, a.id)), [String(b.id), String(c.id)]);
|
|
281
329
|
assert.deepEqual(ids(await outbox.pending(1, a.id)), [String(b.id)]);
|
|
@@ -283,20 +331,20 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
283
331
|
});
|
|
284
332
|
test('O-04 · `markApplied` saca la entrada de `pending()` y es idempotente; lo encolado después sigue saliendo', async ({ assert }) => {
|
|
285
333
|
const outbox = state.outbox;
|
|
286
|
-
await
|
|
334
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
287
335
|
const [first] = await outbox.pending(10);
|
|
288
336
|
await outbox.markApplied(first.id);
|
|
289
337
|
assert.deepEqual(await outbox.pending(10), []);
|
|
290
338
|
await outbox.markApplied(first.id);
|
|
291
339
|
assert.deepEqual(await outbox.pending(10), [], 'la segunda vez no revive nada ni lanza');
|
|
292
|
-
await
|
|
340
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
293
341
|
const rest = await outbox.pending(10);
|
|
294
342
|
assert.lengthOf(rest, 1);
|
|
295
343
|
assert.notEqual(String(rest[0].id), String(first.id));
|
|
296
344
|
});
|
|
297
345
|
test('O-05 · `markFailed` DEJA la entrada pendiente, cuenta el intento y guarda la causa (a la vista en `pending()`)', async ({ assert }) => {
|
|
298
346
|
const outbox = state.outbox;
|
|
299
|
-
await
|
|
347
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
300
348
|
const [row] = await outbox.pending(10);
|
|
301
349
|
await outbox.markFailed(row.id, 'el padre no existe');
|
|
302
350
|
const [once] = await outbox.pending(10);
|
|
@@ -314,8 +362,8 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
314
362
|
const unit = unitScope();
|
|
315
363
|
await tree.attach(org, APP_SCOPE);
|
|
316
364
|
await tree.attach(unit, org);
|
|
317
|
-
await
|
|
318
|
-
await
|
|
365
|
+
await scopes.attached(manager, org, APP_SCOPE);
|
|
366
|
+
await scopes.attached(manager, unit, org);
|
|
319
367
|
assert.deepEqual(calls, [], 'con outbox el driver no ve nada al notificar');
|
|
320
368
|
const first = await manager.relayScopeChanges();
|
|
321
369
|
assert.lengthOf(first.applied, 2);
|
|
@@ -333,9 +381,9 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
333
381
|
const other = unitScope();
|
|
334
382
|
await tree.attach(org, APP_SCOPE);
|
|
335
383
|
await tree.attach(unit, org);
|
|
336
|
-
await
|
|
337
|
-
await
|
|
338
|
-
await
|
|
384
|
+
await scopes.attached(manager, org, APP_SCOPE);
|
|
385
|
+
await scopes.attached(manager, unit, org);
|
|
386
|
+
await scopes.detached(manager, other);
|
|
339
387
|
driver.onScopeAttached = async (c, p) => {
|
|
340
388
|
if (keyOf(c) === keyOf(org))
|
|
341
389
|
throw new Error('el store no lo acepta');
|
|
@@ -365,10 +413,10 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
365
413
|
await tree.attach(orgB, APP_SCOPE);
|
|
366
414
|
await tree.attach(unitA, orgB);
|
|
367
415
|
await tree.attach(unitB, orgB);
|
|
368
|
-
await
|
|
369
|
-
await
|
|
370
|
-
await
|
|
371
|
-
await
|
|
416
|
+
await scopes.attached(manager, orgA, APP_SCOPE);
|
|
417
|
+
await scopes.attached(manager, orgB, APP_SCOPE);
|
|
418
|
+
await scopes.attached(manager, unitA, orgB);
|
|
419
|
+
await scopes.attached(manager, unitB, orgB);
|
|
372
420
|
driver.onScopeAttached = async (c, p) => {
|
|
373
421
|
if (keyOf(c) === keyOf(orgA) || keyOf(c) === keyOf(unitA))
|
|
374
422
|
throw new Error('el store no lo acepta');
|
|
@@ -395,7 +443,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
395
443
|
{ op: 'detached', child: unitB },
|
|
396
444
|
];
|
|
397
445
|
for (const change of wanted)
|
|
398
|
-
await
|
|
446
|
+
await enqueue(outbox, change);
|
|
399
447
|
const all = await outbox.pending(100);
|
|
400
448
|
assert.deepEqual(all.map((p) => p.change), wanted, 'las seis, de los dos tenants, en orden de encolado');
|
|
401
449
|
const first = await outbox.pending(4);
|
|
@@ -416,12 +464,42 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
416
464
|
await committed.commit();
|
|
417
465
|
assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }]);
|
|
418
466
|
}),
|
|
419
|
-
whenFalse: () => test('transactionalEnqueue:false · encolar
|
|
467
|
+
whenFalse: () => test('transactionalEnqueue:false · encolar funciona ignorando la transacción (la mitigación del rollback queda apagada: dilo en tu README)', async ({ assert, }) => {
|
|
420
468
|
const outbox = state.outbox;
|
|
421
469
|
const unit = unitScope();
|
|
422
|
-
|
|
470
|
+
// Con `requiresTransaction` el encolado lleva la transacción del harness (y se ignora); sin ella, ninguna.
|
|
471
|
+
await enqueue(outbox, { op: 'detached', child: unit });
|
|
472
|
+
assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }]);
|
|
473
|
+
}),
|
|
474
|
+
});
|
|
475
|
+
caseFor('requiresTransaction', {
|
|
476
|
+
whenTrue: () => test('requiresTransaction:true · `enqueue` sin `{ transaction }` es 500 E_AUTHZ_CONFIG nombrando `requireTransaction` y CERO filas — por la outbox sola y por `scopes.*` del manager (sin encolar ni tocar el driver); con la transacción del harness entra (2.5.0 · B6)', async ({ assert, }) => {
|
|
477
|
+
const outbox = state.outbox;
|
|
478
|
+
const unit = unitScope();
|
|
479
|
+
const bare = await rejects(assert, () => outbox.enqueue({ op: 'detached', child: unit }, {}), { status: 500, code: 'E_AUTHZ_CONFIG' }, 'outbox sola');
|
|
480
|
+
assert.include(bare.message, 'requireTransaction', 'la letra nombra la opción');
|
|
481
|
+
assert.deepEqual(await outbox.pending(10), [], 'cero filas');
|
|
482
|
+
const { manager, calls, tree } = managerOver(outbox);
|
|
483
|
+
const org = orgScope();
|
|
484
|
+
await tree.attach(org, APP_SCOPE);
|
|
485
|
+
const viaManager = await rejects(assert, () => manager.scopes.attached(org, APP_SCOPE), { status: 500, code: 'E_AUTHZ_CONFIG' }, 'por el manager');
|
|
486
|
+
assert.include(viaManager.message, 'requireTransaction');
|
|
487
|
+
assert.deepEqual(await outbox.pending(10), [], 'cero filas por el manager');
|
|
488
|
+
assert.deepEqual(calls, [], 'y el driver no se toca');
|
|
489
|
+
// La cara buena: con la transacción del harness, entra (es lo que hace TODO encolado de este contrato).
|
|
490
|
+
await enqueue(outbox, { op: 'detached', child: unit });
|
|
423
491
|
assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }]);
|
|
424
492
|
}),
|
|
493
|
+
whenFalse: () => test('requiresTransaction:false · encolar SIN transacción entra, por la outbox sola y por `scopes.*` (la outbox no exige la unidad de trabajo: dilo en tu README)', async ({ assert, }) => {
|
|
494
|
+
const outbox = state.outbox;
|
|
495
|
+
const unit = unitScope();
|
|
496
|
+
await outbox.enqueue({ op: 'detached', child: unit }, {});
|
|
497
|
+
const { manager, tree } = managerOver(outbox);
|
|
498
|
+
const org = orgScope();
|
|
499
|
+
await tree.attach(org, APP_SCOPE);
|
|
500
|
+
await manager.scopes.attached(org, APP_SCOPE);
|
|
501
|
+
assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }, { op: 'attached', child: org, parent: APP_SCOPE }]);
|
|
502
|
+
}),
|
|
425
503
|
});
|
|
426
504
|
caseFor('filter', {
|
|
427
505
|
whenTrue: () => test('filter:true · `pending(limit, after, { ids })` devuelve SOLO esos ids, en orden, y con `after`; el manager aplica solo lo pedido', async ({ assert, }) => {
|
|
@@ -429,9 +507,9 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
429
507
|
const { manager, calls } = managerOver(outbox);
|
|
430
508
|
// Tres entradas INDEPENDIENTES (sin clave común, ni la raíz): lo pedido no depende de nada.
|
|
431
509
|
const [a, b, c] = [unitScope(), unitScope(), unitScope()];
|
|
432
|
-
const ia = (await
|
|
433
|
-
const ib = (await
|
|
434
|
-
const ic = (await
|
|
510
|
+
const ia = (await enqueue(outbox, { op: 'detached', child: a })).id;
|
|
511
|
+
const ib = (await enqueue(outbox, { op: 'detached', child: b })).id;
|
|
512
|
+
const ic = (await enqueue(outbox, { op: 'detached', child: c })).id;
|
|
435
513
|
assert.deepEqual(ids(await outbox.pending(10, undefined, { ids: [ic, ia] })), [String(ia), String(ic)], 'en orden de id, no del array');
|
|
436
514
|
assert.deepEqual(ids(await outbox.pending(10, ia, { ids: [ic, ia] })), [String(ic)], '`after` sigue valiendo');
|
|
437
515
|
const report = await manager.relayScopeChanges({ only: [ib] });
|
|
@@ -441,8 +519,8 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
441
519
|
}),
|
|
442
520
|
whenFalse: () => test('filter:false · una outbox que IGNORA `ids` no aplica el backlog ajeno en silencio: `relayScopeChanges({ only })` es 500 E_AUTHZ_CONFIG con cero llamadas', async ({ assert, }) => {
|
|
443
521
|
const { manager, calls } = managerOver(state.outbox);
|
|
444
|
-
await state.outbox
|
|
445
|
-
const ib = (await state.outbox
|
|
522
|
+
await enqueue(state.outbox, { op: 'detached', child: unitScope() });
|
|
523
|
+
const ib = (await enqueue(state.outbox, { op: 'detached', child: unitScope() })).id;
|
|
446
524
|
const error = await rejects(assert, () => manager.relayScopeChanges({ only: [ib] }), { status: 500, code: 'E_AUTHZ_CONFIG' });
|
|
447
525
|
assert.include(error.message, 'pending(limit, after, { ids })');
|
|
448
526
|
assert.deepEqual(calls, []);
|
|
@@ -451,7 +529,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
451
529
|
caseFor('transient', {
|
|
452
530
|
whenTrue: () => test('transient:true · `markFailed(id, error, { transient: true })` escribe la causa y NO cuenta el intento; sin `transient`, cuenta', async ({ assert, }) => {
|
|
453
531
|
const outbox = state.outbox;
|
|
454
|
-
await
|
|
532
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
455
533
|
const [row] = await outbox.pending(10);
|
|
456
534
|
await outbox.markFailed(row.id, 'el store no responde', { transient: true });
|
|
457
535
|
const [after] = await outbox.pending(10);
|
|
@@ -462,7 +540,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
462
540
|
}),
|
|
463
541
|
whenFalse: () => test('transient:false · una outbox que ignora el tercer parámetro cuenta el intento igual (lo de alpha.4: degrada hacia lo seguro)', async ({ assert, }) => {
|
|
464
542
|
const outbox = state.outbox;
|
|
465
|
-
await
|
|
543
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
466
544
|
const [row] = await outbox.pending(10);
|
|
467
545
|
await outbox.markFailed(row.id, 'el store no responde', { transient: true });
|
|
468
546
|
assert.equal((await outbox.pending(10))[0].attempts, 1);
|
|
@@ -476,7 +554,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
476
554
|
const unit = unitScope();
|
|
477
555
|
await tree.attach(org, APP_SCOPE);
|
|
478
556
|
await tree.attach(unit, org);
|
|
479
|
-
const { queued: [id] } = await
|
|
557
|
+
const { queued: [id] } = await scopes.moved(manager, unit, org);
|
|
480
558
|
for (let i = 0; i < maxAttempts; i++)
|
|
481
559
|
await outbox.markFailed(id, `fallo ${i + 1}`);
|
|
482
560
|
assert.deepEqual(await outbox.pending(10), [], 'agotados los intentos, deja de ofrecerse');
|
|
@@ -488,7 +566,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
488
566
|
// Y el manager: reportada, y el attached que nombra su clave se APLAZA (parked:<id>).
|
|
489
567
|
const child = unitScope();
|
|
490
568
|
await tree.attach(child, unit);
|
|
491
|
-
await
|
|
569
|
+
await scopes.attached(manager, child, unit);
|
|
492
570
|
const report = await manager.relayScopeChanges();
|
|
493
571
|
assert.deepEqual(ids(report.dead), [String(id)]);
|
|
494
572
|
assert.deepEqual(report.entries.map((e) => [e.status, e.reason ?? null]), [['deferred', `parked:${id}`], ['dead', `fallo ${maxAttempts}`]]);
|
|
@@ -497,7 +575,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
497
575
|
whenFalse: () => test('dead:false · sin `dead()` nada se aparca: tras N fallos la entrada sigue en `pending()` y el reporte dice `dead: []`', async ({ assert, }) => {
|
|
498
576
|
const outbox = state.outbox;
|
|
499
577
|
assert.isUndefined(outbox.dead);
|
|
500
|
-
await
|
|
578
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
501
579
|
const [row] = await outbox.pending(10);
|
|
502
580
|
for (let i = 0; i < 6; i++)
|
|
503
581
|
await outbox.markFailed(row.id, 'irreparable');
|
|
@@ -520,7 +598,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
520
598
|
const { manager, driver, calls, tree } = managerOver(outbox);
|
|
521
599
|
const org = orgScope();
|
|
522
600
|
await tree.attach(org, APP_SCOPE);
|
|
523
|
-
await
|
|
601
|
+
await scopes.attached(manager, org, APP_SCOPE);
|
|
524
602
|
driver.onScopeAttached = async (c, p) => {
|
|
525
603
|
await new Promise((r) => setTimeout(r, 60));
|
|
526
604
|
calls.push(`attached ${keyOf(c)} → ${keyOf(p)}`);
|
|
@@ -539,7 +617,7 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
539
617
|
const { manager, tree } = managerOver(outbox);
|
|
540
618
|
const org = orgScope();
|
|
541
619
|
await tree.attach(org, APP_SCOPE);
|
|
542
|
-
await
|
|
620
|
+
await scopes.attached(manager, org, APP_SCOPE);
|
|
543
621
|
const report = await manager.relayScopeChanges();
|
|
544
622
|
assert.isFalse(report.busy);
|
|
545
623
|
assert.lengthOf(report.applied, 1);
|
|
@@ -552,10 +630,10 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
552
630
|
const unit = unitScope();
|
|
553
631
|
const child = unitScope();
|
|
554
632
|
const other = unitScope();
|
|
555
|
-
const a = (await
|
|
556
|
-
const b = (await
|
|
557
|
-
const c = (await
|
|
558
|
-
const d = (await
|
|
633
|
+
const a = (await enqueue(outbox, { op: 'attached', child: org, parent: APP_SCOPE })).id;
|
|
634
|
+
const b = (await enqueue(outbox, { op: 'attached', child: unit, parent: org })).id;
|
|
635
|
+
const c = (await enqueue(outbox, { op: 'attached', child, parent: unit })).id;
|
|
636
|
+
const d = (await enqueue(outbox, { op: 'detached', child: other })).id;
|
|
559
637
|
assert.equal(String((await outbox.earlierPending(c, [child, unit])).id), String(b), 'por hijo');
|
|
560
638
|
assert.equal(String((await outbox.earlierPending(b, [unit, org])).id), String(a), 'por padre');
|
|
561
639
|
assert.equal(String((await outbox.earlierPending(d, [APP_SCOPE])).id), String(a), 'la raíz');
|
|
@@ -572,10 +650,10 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
572
650
|
const unit = unitScope();
|
|
573
651
|
await tree.attach(org, APP_SCOPE);
|
|
574
652
|
await tree.attach(unit, org);
|
|
575
|
-
const { queued: [movedId] } = await
|
|
653
|
+
const { queued: [movedId] } = await scopes.moved(manager, unit, org);
|
|
576
654
|
const child = unitScope();
|
|
577
655
|
await tree.attach(child, unit);
|
|
578
|
-
const { queued: [attachedId] } = await
|
|
656
|
+
const { queued: [attachedId] } = await scopes.attached(manager, child, unit);
|
|
579
657
|
if (caps.filter) {
|
|
580
658
|
const report = await manager.relayScopeChanges({ only: [attachedId] });
|
|
581
659
|
assert.deepEqual(report.applied, []);
|
|
@@ -594,13 +672,13 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
594
672
|
const orgB = orgScope();
|
|
595
673
|
const orgC = orgScope();
|
|
596
674
|
const unit = unitScope();
|
|
597
|
-
const old = (await
|
|
675
|
+
const old = (await enqueue(outbox, { op: 'moved', child: unit, parent: orgB })).id;
|
|
598
676
|
for (let i = 0; i < maxAttempts; i++)
|
|
599
677
|
await outbox.markFailed(old, 'el store no respondía');
|
|
600
|
-
const current = (await
|
|
678
|
+
const current = (await enqueue(outbox, { op: 'moved', child: unit, parent: orgC })).id;
|
|
601
679
|
await outbox.markApplied(current);
|
|
602
680
|
// Una posterior PENDIENTE que comparte `unit`: no es «aplicada», no cuenta en la sonda.
|
|
603
|
-
const live = (await
|
|
681
|
+
const live = (await enqueue(outbox, { op: 'moved', child: unit, parent: orgScope() })).id;
|
|
604
682
|
assert.deepEqual(ids(await outbox.dead(10)), [String(old)]);
|
|
605
683
|
// laterApplied: SOLO la posterior APLICADA que comparte `unit`; la pendiente no; nada posterior a `current`.
|
|
606
684
|
assert.deepEqual(ids(await outbox.laterApplied(old, [unit, orgB], 10)), [String(current)]);
|
|
@@ -640,8 +718,8 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
640
718
|
const before = Date.now();
|
|
641
719
|
const unit = unitScope();
|
|
642
720
|
const other = unitScope();
|
|
643
|
-
await
|
|
644
|
-
await
|
|
721
|
+
await enqueue(outbox, { op: 'detached', child: unit });
|
|
722
|
+
await enqueue(outbox, { op: 'detached', child: other });
|
|
645
723
|
const after = Date.now();
|
|
646
724
|
const [first, second] = await outbox.pending(10);
|
|
647
725
|
assert.instanceOf(first.createdAt, Date, 'el sello de la primera');
|
|
@@ -660,8 +738,8 @@ export function registerScopeOutboxContract(harness, api) {
|
|
|
660
738
|
}),
|
|
661
739
|
whenFalse: () => test('createdAt:false · las entradas NO llevan `createdAt` y el relay dice `queue: { oldestPendingAt: null, pendingAgeMs: null }` (jamás 0 ni «ahora»), con la pasada en verde', async ({ assert, }) => {
|
|
662
740
|
const outbox = state.outbox;
|
|
663
|
-
await
|
|
664
|
-
await
|
|
741
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
742
|
+
await enqueue(outbox, { op: 'detached', child: unitScope() });
|
|
665
743
|
const [first] = await outbox.pending(10);
|
|
666
744
|
assert.isUndefined(first.createdAt, 'ausente, no `null` ni una fecha inventada');
|
|
667
745
|
const { manager, calls } = managerOver(outbox);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope_outbox_contract.js","sourceRoot":"","sources":["../../../src/testing/scope_outbox_contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scope_outbox_contract.js","sourceRoot":"","sources":["../../../src/testing/scope_outbox_contract.ts"],"names":[],"mappings":"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"}
|