diff --git a/packages/core/sdk/src/policies.test.ts b/packages/core/sdk/src/policies.test.ts index 1b5683aeb..18c5d29a7 100644 --- a/packages/core/sdk/src/policies.test.ts +++ b/packages/core/sdk/src/policies.test.ts @@ -459,6 +459,23 @@ describe("executor.policies", () => { }), ); + it.live("concurrent creates of equally specific rules get distinct positions", () => + Effect.gen(function* () { + const executor = yield* setupExecutor(); + yield* Effect.all( + [ + executor.policies.create({ owner: "org", pattern: "vercel.dns.create", action: "block" }), + executor.policies.create({ owner: "org", pattern: "vercel.dns.delete", action: "block" }), + ], + { concurrency: "unbounded" }, + ); + + const rules = yield* executor.policies.list(); + expect(rules).toHaveLength(2); + expect(new Set(rules.map((r) => r.position)).size).toBe(2); + }), + ); + it.effect("create stores rules at the requested owner", () => Effect.gen(function* () { const executor = yield* setupExecutor();