Skip to content

Commit c91379f

Browse files
committed
chore: delete the inert no-explicit-any eslint-disable comments outside ui/
The root ESLint config never loads @typescript-eslint/eslint-plugin and `pnpm lint` runs with --no-inline-config, so these 211 comments in 66 files disabled a rule nobody runs. Delete them: a whole-line eslint-disable-next-line comment goes with its line, a trailing eslint-disable-line comment is cut from the end of its line. No rule, plugin, config or baseline changes; nothing under ui/. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D8CEyQZUZgQM1xXhoZeKgb
1 parent 601c773 commit c91379f

66 files changed

Lines changed: 45 additions & 211 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎packages/core/src/utils/metadata-activation-store.test.ts‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ const TABLE = 'sys_metadata_activation';
5555
* gate then reports the matcher UNJUDGED, and unjudged is never treated as
5656
* passing.
5757
*/
58-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
5958
function matches(row: any, where: any): boolean {
6059
return Object.entries(where ?? {}).every(([k, v]) => {
6160
// Equality ONLY, and a loud REFUSAL for anything else rather than a
@@ -84,22 +83,17 @@ function matches(row: any, where: any): boolean {
8483
* read by `metadata_type` and a double that answered every row regardless would
8584
* pin nothing about the discriminator — which is this file's whole subject.
8685
*/
87-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
8886
function makeStoreEngine(rows: any[] = []) {
89-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9087
const calls: Array<{ op: string; object: string; data?: any; options?: any }> = [];
9188
const engine = {
92-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9389
find: vi.fn(async (object: string, options?: any) => {
9490
calls.push({ op: 'find', object, options });
9591
return rows.filter((r) => matches(r, options?.where));
9692
}),
97-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9893
insert: vi.fn(async (object: string, data: any, options?: any) => {
9994
calls.push({ op: 'insert', object, data, options });
10095
return { id: 'row_new', ...data };
10196
}),
102-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
10397
update: vi.fn(async (object: string, data: any, options?: any) => {
10498
// Routed through the producer's OWN dispatch predicate, so this
10599
// fake cannot be looser than the engine it stands in for — #4434

‎packages/plugins/plugin-auth/src/first-session-membership-ordering.test.ts‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,9 @@ function makeEngine(seed: MemberRow[] = []) {
8686
return {
8787
rows,
8888
insert,
89-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9089
find: vi.fn(async (model: string, q: any) =>
9190
model === 'sys_member' ? rows.filter((r) => match(r, q?.where)).slice(0, q?.limit ?? 100) : [],
9291
),
93-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9492
findOne: vi.fn(async (model: string, q: any) =>
9593
{
9694
assertEngineFindOnePredicate(model, q);
@@ -107,26 +105,21 @@ interface ManagerOpts {
107105
membershipPolicy?: 'auto' | 'invite-only';
108106
/** What `tenancy.defaultOrgId()` answers. `null` = no unambiguous target. */
109107
defaultOrgId?: string | null;
110-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
111108
databaseHooks?: any;
112109
}
113110

114-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
115111
function hooksFor(opts: ManagerOpts): any {
116112
const manager = new AuthManager({
117113
secret: 'test-secret-at-least-32-chars-long',
118114
baseUrl: 'http://localhost:3000',
119115
dataEngine: opts.engine,
120116
...(opts.membershipPolicy ? { membershipPolicy: opts.membershipPolicy } : {}),
121117
getTenancy: () => ({ defaultOrgId: async () => opts.defaultOrgId ?? null }),
122-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
123118
} as any);
124-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
125119
const hooks = (manager as any).composeDatabaseHooks(opts.databaseHooks);
126120
// What the adapter's `create` does for a `sys_user` row inside the creating
127121
// request (`onRecordCreated`; the real wiring is pinned in
128122
// `user-created-in-request.test.ts`).
129-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
130123
hooks.__stageCreated = (request: unknown, userId: string) => (manager as any).stageUserCreatedInRequest(request, userId);
131124
return hooks;
132125
}
@@ -136,7 +129,6 @@ function hooksFor(opts: ManagerOpts): any {
136129
* session minted inside ONE endpoint context (the request), and
137130
* `user.create.after` is deferred past both. Returns the session hook's result.
138131
*/
139-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
140132
async function firstSessionOfCreation(hooks: any, session: Record<string, unknown> = { userId: USER }): Promise<any> {
141133
const request = {};
142134
hooks.__stageCreated(request, USER);
@@ -251,7 +243,6 @@ describe("[#8247 rule 2] a user's FIRST session settles the membership before re
251243

252244
it('the HOST session hook still chains first and still wins', async () => {
253245
const engine = makeEngine();
254-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
255246
const hostHook = vi.fn(async (session: any) => ({
256247
data: { ...session, activeOrganizationId: 'org_host' },
257248
}));
@@ -274,7 +265,6 @@ describe("[#8247 rule 2] a user's FIRST session settles the membership before re
274265
find: vi.fn(async () => { throw new Error('db down'); }),
275266
insert: vi.fn(async () => { throw new Error('db down'); }),
276267
};
277-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
278268
const hooks = hooksFor({ engine: engine as any, defaultOrgId: DEFAULT_ORG });
279269
const result = await firstSessionOfCreation(hooks);
280270
expect(result?.data?.activeOrganizationId).toBeUndefined();

‎packages/plugins/plugin-security/src/app-default-permission-set.test.ts‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ describe('the resolved options reach the constructed plugin (#7001)', () => {
9090
if (name === 'manifest') return { register() {} };
9191
return undefined;
9292
},
93-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9493
} as any);
9594
return services.get('security.fallbackPermissionSet');
9695
};

‎packages/plugins/plugin-security/src/deployment-platform-global-exemption.test.ts‎

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,7 @@ async function boot(
9090
},
9191
};
9292
const plugin = new SecurityPlugin({ fallbackPermissionSet: 'member_default' });
93-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9493
await plugin.init(ctx as any);
95-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
9694
await plugin.start(ctx as any);
9795
return { plugin, logger };
9896
}
@@ -103,7 +101,6 @@ describe('[ADR-0131 D7] plugin-security reads no platformGlobalObjects — the s
103101
{ sys_widget_registry: walledSchema('sys_widget_registry') },
104102
{ entitlement: { platformGlobalObjects: ['sys_widget_registry'] } },
105103
);
106-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
107104
expect(await (plugin as any).getReadFilter('sys_widget_registry', MEMBER_CTX)).toEqual({
108105
organization_id: 'org-1',
109106
});
@@ -115,7 +112,6 @@ describe('[ADR-0131 D7] plugin-security reads no platformGlobalObjects — the s
115112
{ entitlement: { platformGlobalObjects: ['sys_widget_registry'] }, tenancy: { posture: 'group' } },
116113
);
117114
const groupCtx = { ...MEMBER_CTX, accessible_org_ids: ['org-1', 'org-2'] };
118-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
119115
expect(await (plugin as any).getReadFilter('sys_widget_registry', groupCtx)).toEqual({
120116
organization_id: { $in: ['org-1', 'org-2'] },
121117
});
@@ -126,7 +122,6 @@ describe('[ADR-0131 D7] plugin-security reads no platformGlobalObjects — the s
126122
{ sys_widget_registry: walledSchema('sys_widget_registry') },
127123
{ entitlement: { platformGlobalObjects: ['sys_widget_registry'] } },
128124
);
129-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
130125
const walled = await (plugin as any).computeWriteTenantCheckFilter(
131126
[PLAIN_MEMBER], 'sys_widget_registry', 'insert', NO_ORG_CTX,
132127
);
@@ -138,14 +133,11 @@ describe('[ADR-0131 D7] plugin-security reads no platformGlobalObjects — the s
138133
sys_widget_registry: plannedSchema('sys_widget_registry'),
139134
crm_task: walledSchema('crm_task'),
140135
});
141-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
142136
expect(await (plugin as any).getReadFilter('sys_widget_registry', MEMBER_CTX)).toBeUndefined();
143-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
144137
expect(await (plugin as any).computeWriteTenantCheckFilter(
145138
[PLAIN_MEMBER], 'sys_widget_registry', 'insert', NO_ORG_CTX,
146139
)).toBeNull();
147140
// CONTROL — a sibling on the same deployment walls as today.
148-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
149141
expect(await (plugin as any).getReadFilter('crm_task', MEMBER_CTX)).toEqual({ organization_id: 'org-1' });
150142
});
151143

@@ -154,9 +146,7 @@ describe('[ADR-0131 D7] plugin-security reads no platformGlobalObjects — the s
154146
{ sys_widget_registry: walledSchema('sys_widget_registry'), crm_task: walledSchema('crm_task') },
155147
{ entitlement: { platformGlobalObjects: ['sys_widget_registry'] }, tenancy: { posture: 'single' } },
156148
);
157-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
158149
expect(await (plugin as any).getReadFilter('sys_widget_registry', MEMBER_CTX)).toBeUndefined();
159-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
160150
expect(await (plugin as any).getReadFilter('crm_task', MEMBER_CTX)).toBeUndefined();
161151
});
162152
});
@@ -167,7 +157,6 @@ describe('[#12699] refusals: this plugin warns only for the key it reads', () =>
167157
{ sys_widget_registry: walledSchema('sys_widget_registry') },
168158
{ entitlement: { platformGlobalObjects: 'sys_widget_registry' } },
169159
);
170-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
171160
await (plugin as any).getReadFilter('sys_widget_registry', MEMBER_CTX);
172161
const warned = logger.warn.mock.calls.map((c) => String(c[0]));
173162
expect(warned.filter((m) => m.includes('org-scoping entitlement key'))).toEqual([]);

‎packages/plugins/plugin-security/src/federated-tenant-layer0.test.ts‎

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,7 @@ async function bootWithSchema(schema: Record<string, unknown>, opts: { tenancy?:
7373
},
7474
};
7575
const plugin = new SecurityPlugin({ fallbackPermissionSet: 'member_default' });
76-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
7776
await plugin.init(ctx as any);
78-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
7977
await plugin.start(ctx as any);
8078
return plugin;
8179
}
@@ -102,7 +100,6 @@ const federatedSchema = (extra: Record<string, unknown> = {}) => ({
102100
describe('[#7835] Layer 0 vs federated (external) objects', () => {
103101
it('federated object with the INJECTED anchor: no organization_id predicate under `isolated`', async () => {
104102
const plugin = await bootWithSchema(federatedSchema());
105-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
106103
const filter = await (plugin as any).getReadFilter('ext_customer', MEMBER_CTX);
107104
// No Layer 1 policies and no Layer 0 contribution → nothing to AND at all.
108105
expect(filter).toBeUndefined();
@@ -114,7 +111,6 @@ describe('[#7835] Layer 0 vs federated (external) objects', () => {
114111
// suppression must hold — otherwise the fix would cover one posture and leave
115112
// the other emitting `organization_id IN (…)` against a table without it.
116113
const plugin = await bootWithSchema(federatedSchema(), { tenancy: { posture: 'group' } });
117-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
118114
const filter = await (plugin as any).getReadFilter('ext_customer', {
119115
...MEMBER_CTX,
120116
accessible_org_ids: ['org-1', 'org-2'],
@@ -135,7 +131,6 @@ describe('[#7835] Layer 0 vs federated (external) objects', () => {
135131
...REMOTE_COLUMNS,
136132
},
137133
});
138-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
139134
const filter = await (plugin as any).getReadFilter('ext_customer', MEMBER_CTX);
140135
expect(filter).toEqual({ organization_id: 'org-1' });
141136
});
@@ -147,7 +142,6 @@ describe('[#7835] Layer 0 vs federated (external) objects', () => {
147142
name: 'task',
148143
fields: { organization_id: { ...TENANT_SCOPE_FIELD_DEF }, ...REMOTE_COLUMNS },
149144
});
150-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
151145
const filter = await (plugin as any).getReadFilter('task', MEMBER_CTX);
152146
expect(filter).toEqual({ organization_id: 'org-1' });
153147
});
@@ -159,7 +153,6 @@ describe('[#7835] Layer 0 vs federated (external) objects', () => {
159153
// so there was never isolation here to lose. Object-level CRUD is still the
160154
// gate, and a caller without read permission is refused before this point.
161155
const plugin = await bootWithSchema(federatedSchema());
162-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
163156
const filter = await (plugin as any).getReadFilter('ext_customer', { ...MEMBER_CTX, tenantId: undefined });
164157
expect(filter).toBeUndefined();
165158
});
@@ -196,9 +189,7 @@ describe('[#7835] Layer 0 vs federated (external) objects', () => {
196189
},
197190
};
198191
const plugin = new SecurityPlugin({ fallbackPermissionSet: 'member_default' });
199-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
200192
await plugin.init(ctx as any); await plugin.start(ctx as any);
201-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
202193
const filter = await (plugin as any).getReadFilter('ext_customer', MEMBER_CTX);
203194
// Layer 0 gone, Layer 1's authored predicate intact — no `$and`, no org column.
204195
expect(filter).toEqual({ region: 'org-1' });

‎packages/plugins/plugin-security/src/no-active-organization-write-refusal.test.ts‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -117,22 +117,18 @@ async function boot(opts: BootOpts = {}) {
117117
},
118118
};
119119
const plugin = new SecurityPlugin({ fallbackPermissionSet: opts.fallback ?? 'member_default' });
120-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
121120
await plugin.init(ctx as any);
122-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
123121
await plugin.start(ctx as any);
124122
return {
125123
plugin,
126124
warn,
127-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
128125
readFilter: (object: string, context: any) => (plugin as any).getReadFilter(object, context),
129126
// [#20013] The terminal stands in for the engine, which runs the installed
130127
// `postHookWriteImageCheck` on an INSERT's rows once its `beforeInsert`
131128
// chain has run — here (no hooks) the rows as sent. The Layer 0 tenant wall
132129
// installs that seam on every insert it walls, and a terminal that skipped
133130
// it would be refused fail-closed. Only the insert path is modelled: every
134131
// walled write in this file that reaches the terminal is an insert.
135-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
136132
run: async (opCtx: any) => {
137133
await middleware!(opCtx, async () => {
138134
const seam = opCtx.postHookWriteImageCheck;
@@ -156,7 +152,6 @@ const ORG_BOUND = { userId: 'u1', tenantId: 'org-1', positions: [], permissions:
156152
* not: the sibling forge guard is also `PERMISSION_DENIED`/403, and any 403 at
157153
* all satisfies the first two.
158154
*/
159-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
160155
function expectConformingRefusal(err: any, opts: { principal?: 'session' | 'delegator' } = {}) {
161156
expect(err, 'the write was not refused at all').toBeDefined();
162157
expect(err.code).toBe('PERMISSION_DENIED');
@@ -174,10 +169,8 @@ function expectConformingRefusal(err: any, opts: { principal?: 'session' | 'dele
174169
expect(err.developerMessage).toMatch(/ADR-0123 D2/);
175170
}
176171

177-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
178172
async function refusalFrom(run: (opCtx: any) => Promise<unknown>, opCtx: unknown): Promise<any> {
179173
try {
180-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
181174
await run(opCtx as any);
182175
return undefined;
183176
} catch (e) {
@@ -399,7 +392,6 @@ describe('[ADR-0123 D2] tenant-scoped READS with no active organization resolve
399392
// would be `undefined` (unrestricted) and an ordinary wall would be
400393
// `organization_id = …`; both are different verdicts from this one.
401394
expect(filter).toEqual(RLS_DENY_FILTER);
402-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
403395
expect(matchesFilterCondition(ROW as any, filter as any)).toBe(false);
404396
});
405397

@@ -411,7 +403,6 @@ describe('[ADR-0123 D2] tenant-scoped READS with no active organization resolve
411403
const h = await boot();
412404
const filter = await h.readFilter('task', { isSystem: true, userId: 'sys', positions: [], permissions: [] });
413405
expect(filter).toBeUndefined(); // no scoping imposed at all
414-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
415406
expect(matchesFilterCondition(ROW as any, (filter ?? {}) as any)).toBe(true);
416407
});
417408

@@ -422,7 +413,6 @@ describe('[ADR-0123 D2] tenant-scoped READS with no active organization resolve
422413
const h = await boot();
423414
const filter = await h.readFilter('task', { ...ORG_BOUND });
424415
expect(filter).toEqual({ organization_id: 'org-1' });
425-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
426416
expect(matchesFilterCondition(ROW as any, filter as any)).toBe(true);
427417
});
428418

‎packages/plugins/plugin-security/src/objects/default-permission-sets.test.ts‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ describe('default permission sets carry the managed denies (static baseline)', (
152152
describe('sys_invitation is row-scoped to its addressee (#8095)', () => {
153153
const SELF_PREDICATE = 'email == current_user.email';
154154

155-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
156155
const policiesFor = (setName: string, object: string): any[] =>
157156
(setByName(setName)?.rowLevelSecurity ?? []).filter((p: any) => p.object === object);
158157

@@ -297,7 +296,6 @@ describe('sys_invitation is row-scoped to its addressee (#8095)', () => {
297296
* they have now. So it is pinned here, structurally, next to the declaration.
298297
*/
299298
describe('sys_comment delete is moderation-shaped, not ownership-shaped (#8839)', () => {
300-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
301299
const policiesFor = (setName: string, object: string): any[] =>
302300
(setByName(setName)?.rowLevelSecurity ?? []).filter((p: any) => p.object === object);
303301

@@ -367,7 +365,6 @@ describe('sys_comment_reaction delete is ownership-shaped (#22566)', () => {
367365
it('no shipped set carries a row-level policy on sys_comment_reaction', () => {
368366
expect(defaultPermissionSets.length).toBeGreaterThanOrEqual(6);
369367
for (const set of defaultPermissionSets) {
370-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
371368
const scoped = (set.rowLevelSecurity ?? []).filter((p: any) => p.object === 'sys_comment_reaction');
372369
expect(scoped, `${set.name} sys_comment_reaction policies`).toEqual([]);
373370
}

‎packages/plugins/plugin-security/src/platform-owner-wall-bypass.test.ts‎

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,7 @@ async function boot(opts: {
113113
},
114114
};
115115
const plugin = new SecurityPlugin({ fallbackPermissionSet: 'member_default' });
116-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
117116
await plugin.init(ctx as any);
118-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
119117
await plugin.start(ctx as any);
120118
return { plugin, findOne, warn };
121119
}
@@ -131,7 +129,6 @@ const sessionCtx = (over: Record<string, unknown> = {}) => ({
131129
});
132130

133131
const readFilter = (plugin: unknown, ctx: unknown) =>
134-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
135132
(plugin as any).getReadFilter('task', ctx);
136133

137134
const OLD_OWNER = process.env.OS_PLATFORM_OWNER_EMAIL;
@@ -266,12 +263,10 @@ describe('[#12974] the bypass lifts ONLY Layer 0', () => {
266263
users: { u_owner: { id: 'u_owner', email: OWNER_EMAIL, email_verified: true } },
267264
});
268265
// Org-carrying owner write: the equality wall stands.
269-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
270266
const owner = await (plugin as any).computeWriteTenantCheckFilter([PLAIN_MEMBER], 'task', 'update', sessionCtx());
271267
expect(owner).toEqual({ organization_id: 'org-1' });
272268
// Org-LESS owner write: the deny sentinel stands — this is the exact
273269
// verdict the ADR-0123 D2 refusal derives its 403 from.
274-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
275270
const ownerOrgless = await (plugin as any).computeWriteTenantCheckFilter(
276271
[PLAIN_MEMBER],
277272
'task',
@@ -280,7 +275,6 @@ describe('[#12974] the bypass lifts ONLY Layer 0', () => {
280275
);
281276
expect(ownerOrgless).toEqual({ ...RLS_DENY_FILTER });
282277
// Everyone else: unchanged, same wall.
283-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
284278
const member = await (plugin as any).computeWriteTenantCheckFilter(
285279
[PLAIN_MEMBER],
286280
'task',
@@ -302,7 +296,6 @@ describe('[#12974] audit — the ruled floor', () => {
302296
await readFilter(plugin, sessionCtx({ userId: 'u_m', email: 'member@corp.example' }));
303297
expect(bypassEvents()).toHaveLength(0);
304298
// Owner WRITE: no bypass happens, so no event may claim one did.
305-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
306299
await (plugin as any).computeWriteTenantCheckFilter([PLAIN_MEMBER], 'task', 'update', sessionCtx());
307300
expect(bypassEvents()).toHaveLength(0);
308301
await readFilter(plugin, sessionCtx());

0 commit comments

Comments
 (0)