fix(device-core): activate adopted model profiles safely

This commit is contained in:
Codex
2026-08-13 10:51:02 +03:00
parent 185c54ced2
commit 40fbfcf351
3 changed files with 104 additions and 1 deletions
@@ -31,3 +31,13 @@ test("legacy model adoption is a one-way exact-identity registry transition", as
assert.match(source, /profile ->> 'protocol' = excluded\.protocol/);
assert.match(source, /adapter_version_id is null[\s\S]*schema_artifact_ref is null[\s\S]*profile_digest is null[\s\S]*cardinality\(device_model_profiles\.capabilities\) = 0[\s\S]*lifecycle_state = 'active'[\s\S]*excluded\.lifecycle_state = 'draft'/);
});
test("adopted rich profile lifecycle changes preserve exact registry identity", async () => {
const source = await readFile(
new URL("../src/infrastructure-repository.mjs", import.meta.url),
"utf8",
);
assert.match(source, /profile = excluded\.profile[\s\S]*or \([\s\S]*profile ->> 'schemaVersion' = excluded\.schema_version[\s\S]*profile ->> 'profileRef' = excluded\.profile_ref[\s\S]*profile ->> 'vendor' = excluded\.vendor[\s\S]*profile ->> 'model' = excluded\.model[\s\S]*profile ->> 'deviceType' = excluded\.device_type[\s\S]*profile ->> 'protocol' = excluded\.protocol/);
assert.match(source, /adapter_version_id = excluded\.adapter_version_id[\s\S]*schema_artifact_ref = excluded\.schema_artifact_ref[\s\S]*profile_digest = excluded\.profile_digest[\s\S]*capabilities = excluded\.capabilities/);
});