feat(edp): provision Foundry reader grants
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { resolveManagedReaderSourceConnection } from "../src/reader-source-scope.mjs";
|
||||
import { resolveManagedReaderScope, resolveManagedReaderSourceConnection } from "../src/reader-source-scope.mjs";
|
||||
|
||||
const policy = {
|
||||
tenantId: "tenant-01",
|
||||
@@ -20,6 +20,24 @@ await assert.rejects(
|
||||
resolveManagedReaderSourceConnection(db([]), policy),
|
||||
(error) => error?.status === 409 && error?.code === "managed_reader_source_scope_not_found",
|
||||
);
|
||||
|
||||
assert.deepEqual(
|
||||
await resolveManagedReaderScope(scopeDb([
|
||||
{ tenantId: "tenant-01", connectionId: "producer-connection", providerId: "provider-01" },
|
||||
]), policy.allowedDataProductIds),
|
||||
{ tenantId: "tenant-01", connectionId: "producer-connection", providerId: "provider-01" },
|
||||
);
|
||||
await assert.rejects(
|
||||
resolveManagedReaderScope(scopeDb([]), policy.allowedDataProductIds),
|
||||
(error) => error?.status === 409 && error?.code === "managed_consumer_reader_source_scope_not_found",
|
||||
);
|
||||
await assert.rejects(
|
||||
resolveManagedReaderScope(scopeDb([
|
||||
{ tenantId: "tenant-01", connectionId: "producer-a", providerId: "provider-01" },
|
||||
{ tenantId: "tenant-01", connectionId: "producer-b", providerId: "provider-01" },
|
||||
]), policy.allowedDataProductIds),
|
||||
(error) => error?.status === 409 && error?.code === "managed_consumer_reader_source_scope_ambiguous",
|
||||
);
|
||||
await assert.rejects(
|
||||
resolveManagedReaderSourceConnection(db(["producer-a", "producer-b"]), policy),
|
||||
(error) => error?.status === 409 && error?.code === "managed_reader_source_scope_ambiguous",
|
||||
@@ -39,4 +57,14 @@ function db(connectionIds) {
|
||||
};
|
||||
}
|
||||
|
||||
function scopeDb(rows) {
|
||||
return {
|
||||
async query(sql, values) {
|
||||
assert.match(sql, /external_data_plane_writer_bindings/);
|
||||
assert.deepEqual(values, [policy.allowedDataProductIds]);
|
||||
return { rows };
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
console.log("external-data-plane reader source scope: ok");
|
||||
|
||||
Reference in New Issue
Block a user