Make package-runtime publication verify generated distribution
This commit is contained in:
@@ -122,6 +122,48 @@ test("runtime context exposes only explicitly injected ports", async () => {
|
||||
assert.deepEqual(await context.edge("port:children").resolve(), []);
|
||||
});
|
||||
|
||||
test("injected ports preserve an explicitly traversed object through PackageRuntime RPC", async () => {
|
||||
const reads = [];
|
||||
const caminoServer = await listen((router) => router.service(CaminoService, {
|
||||
readState: (request) => {
|
||||
reads.push(request);
|
||||
return { value: jsToProtoValue("Project name") };
|
||||
},
|
||||
}));
|
||||
const runtimeServer = await listen(createPackageRuntimeRoutes({
|
||||
packageRevisionId: "package:test@1",
|
||||
caminoUrl: caminoServer.url,
|
||||
exports: {
|
||||
"export:test:value": (context) => context.state("port:value").get(),
|
||||
},
|
||||
}));
|
||||
const client = createClient(PackageRuntime, createConnectTransport({
|
||||
baseUrl: runtimeServer.url,
|
||||
httpVersion: "1.1",
|
||||
}));
|
||||
try {
|
||||
const response = await client.invoke({
|
||||
export: create(PackageExportRefSchema, {
|
||||
packageRevisionId: "package:test@1",
|
||||
exportId: "export:test:value",
|
||||
}),
|
||||
objectId: "obj:component",
|
||||
dependencies: [create(InjectedDependencySchema, {
|
||||
portId: "port:value",
|
||||
objectId: "obj:project",
|
||||
binding: { case: "stateSlotId", value: "slot:project:name" },
|
||||
})],
|
||||
});
|
||||
assert.equal(response.ok, true);
|
||||
assert.equal(protoValueToJs(response.result), "Project name");
|
||||
assert.equal(reads.length, 1);
|
||||
assert.equal(reads[0]?.objectId, "obj:project");
|
||||
} finally {
|
||||
await runtimeServer.close();
|
||||
await caminoServer.close();
|
||||
}
|
||||
});
|
||||
|
||||
test("derived watches subscribe before reading and emit only real changes", async () => {
|
||||
let current = "before";
|
||||
let subscribed = false;
|
||||
|
||||
Reference in New Issue
Block a user