Build workspace agent, capability graph, and versioned cutovers
This commit is contained in:
@@ -92,7 +92,7 @@ test("the representative v1 workspace compiles to native and package plans", ()
|
||||
summary.dependencies.map((entry) => [entry.port.id, entry.binding.kind]),
|
||||
[
|
||||
[fixtureId.titlePort, "state"],
|
||||
[fixtureId.namedPort, "receiver-interface"],
|
||||
[fixtureId.namedPort, "interface"],
|
||||
[fixtureId.personPort, "constructor"],
|
||||
],
|
||||
);
|
||||
@@ -164,6 +164,25 @@ test("private attachments are visible only to their owning conformance", () => {
|
||||
expectIssue(workspace, "private-attachment-access");
|
||||
});
|
||||
|
||||
test("related-object dependency views cannot traverse another conformance's private edge", () => {
|
||||
const workspace = makeValidCapabilityWorkspace();
|
||||
const packageBinding = conformance(
|
||||
workspace,
|
||||
fixtureId.projectSummaryConformance,
|
||||
).operationBindings[0]!.binding;
|
||||
assert.equal(packageBinding.kind, "package");
|
||||
if (packageBinding.kind !== "package") return;
|
||||
const named = packageBinding.dependencies.find(
|
||||
(dependency) => dependency.portId === fixtureId.namedPort,
|
||||
);
|
||||
assert.ok(named && named.binding.kind === "interface");
|
||||
named.binding.via = {
|
||||
edgeTypeId: fixtureId.projectOwner,
|
||||
projectionId: fixtureId.projectOwnerProjection,
|
||||
};
|
||||
expectIssue(workspace, "private-attachment-access");
|
||||
});
|
||||
|
||||
test("native state and edge providers must match operation shape", () => {
|
||||
const stateWorkspace = makeValidCapabilityWorkspace();
|
||||
const state = conformance(
|
||||
|
||||
Reference in New Issue
Block a user