fix(k1): translate onboard operation identities at plugin boundary

This commit is contained in:
DCCONSTRUCTIONS
2026-09-07 12:34:48 +03:00
parent 3dffe39c89
commit d2dbfc9c85
9 changed files with 264 additions and 34 deletions
@@ -109,3 +109,24 @@ test('delayed operation result cannot clear an observed board outage',()=>{
assert.equal(result.fresh,false);
assert.equal(api.mergeEnrollmentState(result,{...initial,fresh:true,snapshot_revision:3}).fresh,true);
});
test('failed or unknown Bluetooth search is never presented as an empty successful scan',async()=>{
for(const state of ['failed','rejected','unknown']){
let posts=0;
const transport={submit:async command=>{posts++;return {
operation_id:command.operation_id,state:state==='unknown'?'unknown':'complete',
error:'unconfirmed device command',
result:{...initial,candidates:[],command_result:{operation_id:command.operation_id,action:'scan',status:state}},
};}};
await assert.rejects(api.enroll(transport,initial,'scan'),/Не удалось выполнить поиск Bluetooth на БК/);
assert.equal(posts,1);
}
assert.equal(api.enrollmentNotice({...initial,command_result:{action:'scan',status:'failed'}}),'');
});
test('a confirmed scan with zero candidates remains a valid empty result',async()=>{
const transport={submit:async command=>({operation_id:command.operation_id,state:'complete',
result:{...initial,candidates:[],command_result:{operation_id:command.operation_id,action:'scan',status:'succeeded'}},
})};
assert.deepEqual((await api.enroll(transport,initial,'scan')).candidates,[]);
});
+1 -1
View File
@@ -11,7 +11,7 @@ import sys
ROOT = Path(__file__).resolve().parents[1]
VERSION = "0.8.1"
VERSION = "0.8.2"
sys.path.insert(0, str(ROOT.parents[1] / "scripts/packaging"))
from debian import package