@@ -5208,28 +5208,31 @@ describe("matrix live qa scenarios", () => {
52085208 "matrix-e2ee-cli-encryption-setup-bootstrap-failure" ,
52095209 ) ;
52105210
5211- await expect (
5212- runMatrixQaScenario ( scenario , {
5213- ...matrixQaScenarioContext ( ) ,
5214- driverDeviceId : "DRIVERDEVICE" ,
5215- driverPassword : "driver-password" ,
5216- gatewayRuntimeEnv : {
5217- OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5218- OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5219- PATH : process . env . PATH ,
5220- } ,
5221- outputDir,
5222- } ) ,
5223- ) . resolves . toMatchObject ( {
5224- artifacts : {
5225- accountId : "cli-encryption-failure" ,
5226- bootstrapSuccess : false ,
5227- cliDeviceId : "CLIFAILUREDEVICE" ,
5228- faultedEndpoint : "/_matrix/client/v3/room_keys/version" ,
5229- faultHitCount : 1 ,
5230- faultRuleId : "room-key-backup-version-unavailable" ,
5211+ const result = await runMatrixQaScenario ( scenario , {
5212+ ...matrixQaScenarioContext ( ) ,
5213+ driverDeviceId : "DRIVERDEVICE" ,
5214+ driverPassword : "driver-password" ,
5215+ gatewayRuntimeEnv : {
5216+ OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5217+ OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5218+ PATH : process . env . PATH ,
52315219 } ,
5220+ outputDir,
52325221 } ) ;
5222+ const artifacts = result . artifacts as {
5223+ accountId ?: unknown ;
5224+ bootstrapSuccess ?: unknown ;
5225+ cliDeviceId ?: unknown ;
5226+ faultedEndpoint ?: unknown ;
5227+ faultHitCount ?: unknown ;
5228+ faultRuleId ?: unknown ;
5229+ } ;
5230+ expect ( artifacts . accountId ) . toBe ( "cli-encryption-failure" ) ;
5231+ expect ( artifacts . bootstrapSuccess ) . toBe ( false ) ;
5232+ expect ( artifacts . cliDeviceId ) . toBe ( "CLIFAILUREDEVICE" ) ;
5233+ expect ( artifacts . faultedEndpoint ) . toBe ( "/_matrix/client/v3/room_keys/version" ) ;
5234+ expect ( artifacts . faultHitCount ) . toBe ( 1 ) ;
5235+ expect ( artifacts . faultRuleId ) . toBe ( "room-key-backup-version-unavailable" ) ;
52335236
52345237 const proxyArgs = startMatrixQaFaultProxy . mock . calls [ 0 ] ?. [ 0 ] ;
52355238 if ( ! proxyArgs ) {
@@ -5263,18 +5266,12 @@ describe("matrix live qa scenarios", () => {
52635266 expect ( output ) . toHaveBeenCalledTimes ( 1 ) ;
52645267 expect ( wait ) . toHaveBeenCalledTimes ( 1 ) ;
52655268 expect ( kill ) . toHaveBeenCalledTimes ( 1 ) ;
5266- expect ( registerWithToken ) . toHaveBeenCalledWith (
5267- expect . objectContaining ( {
5268- deviceName : "OpenClaw Matrix QA CLI Encryption Failure Owner" ,
5269- registrationToken : "registration-token" ,
5270- } ) ,
5271- ) ;
5272- expect ( loginWithPassword ) . toHaveBeenCalledWith (
5273- expect . objectContaining ( {
5274- password : "cli-failure-password" ,
5275- userId : "@cli-failure:matrix-qa.test" ,
5276- } ) ,
5269+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. deviceName ) . toBe (
5270+ "OpenClaw Matrix QA CLI Encryption Failure Owner" ,
52775271 ) ;
5272+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. registrationToken ) . toBe ( "registration-token" ) ;
5273+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. password ) . toBe ( "cli-failure-password" ) ;
5274+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. userId ) . toBe ( "@cli-failure:matrix-qa.test" ) ;
52785275 expect ( proxyStop ) . toHaveBeenCalledTimes ( 1 ) ;
52795276 const [ cliRunDir ] = await readdir (
52805277 path . join ( outputDir , "cli-encryption-setup-bootstrap-failure" ) ,
@@ -5382,40 +5379,47 @@ describe("matrix live qa scenarios", () => {
53825379
53835380 const scenario = requireMatrixQaScenario ( "matrix-e2ee-cli-recovery-key-setup" ) ;
53845381
5385- await expect (
5386- runMatrixQaScenario ( scenario , {
5387- ...matrixQaScenarioContext ( ) ,
5388- driverDeviceId : "DRIVERDEVICE" ,
5389- driverPassword : "driver-password" ,
5390- gatewayRuntimeEnv : {
5391- OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5392- OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5393- PATH : process . env . PATH ,
5394- } ,
5395- outputDir,
5396- } ) ,
5397- ) . resolves . toMatchObject ( {
5398- artifacts : {
5399- accountId : "cli-recovery-key-setup" ,
5400- backupVersion : "backup-v1" ,
5401- cliDeviceId : "CLIRECOVERYDEVICE" ,
5402- encryptionChanged : true ,
5403- recoveryKeyId : "SSSS" ,
5404- recoveryKeyStored : true ,
5405- setupSuccess : true ,
5406- verificationBootstrapSuccess : true ,
5382+ const result = await runMatrixQaScenario ( scenario , {
5383+ ...matrixQaScenarioContext ( ) ,
5384+ driverDeviceId : "DRIVERDEVICE" ,
5385+ driverPassword : "driver-password" ,
5386+ gatewayRuntimeEnv : {
5387+ OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5388+ OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5389+ PATH : process . env . PATH ,
54075390 } ,
5391+ outputDir,
54085392 } ) ;
5393+ const artifacts = result . artifacts as {
5394+ accountId ?: unknown ;
5395+ backupVersion ?: unknown ;
5396+ cliDeviceId ?: unknown ;
5397+ encryptionChanged ?: unknown ;
5398+ recoveryKeyId ?: unknown ;
5399+ recoveryKeyStored ?: unknown ;
5400+ setupSuccess ?: unknown ;
5401+ verificationBootstrapSuccess ?: unknown ;
5402+ } ;
5403+ expect ( artifacts . accountId ) . toBe ( "cli-recovery-key-setup" ) ;
5404+ expect ( artifacts . backupVersion ) . toBe ( "backup-v1" ) ;
5405+ expect ( artifacts . cliDeviceId ) . toBe ( "CLIRECOVERYDEVICE" ) ;
5406+ expect ( artifacts . encryptionChanged ) . toBe ( true ) ;
5407+ expect ( artifacts . recoveryKeyId ) . toBe ( "SSSS" ) ;
5408+ expect ( artifacts . recoveryKeyStored ) . toBe ( true ) ;
5409+ expect ( artifacts . setupSuccess ) . toBe ( true ) ;
5410+ expect ( artifacts . verificationBootstrapSuccess ) . toBe ( true ) ;
54095411
5410- expect ( initialAccountConfig ) . toMatchObject ( {
5411- accessToken : "cli-recovery-token" ,
5412- deviceId : "CLIRECOVERYDEVICE" ,
5413- encryption : false ,
5414- homeserver : "http://127.0.0.1:28008/" ,
5415- password : "cli-recovery-password" ,
5416- startupVerification : "off" ,
5417- userId : "@cli-recovery:matrix-qa.test" ,
5418- } ) ;
5412+ if ( ! initialAccountConfig ) {
5413+ throw new Error ( "expected initial CLI recovery key account config" ) ;
5414+ }
5415+ const capturedInitialAccountConfig = initialAccountConfig as Record < string , unknown > ;
5416+ expect ( capturedInitialAccountConfig . accessToken ) . toBe ( "cli-recovery-token" ) ;
5417+ expect ( capturedInitialAccountConfig . deviceId ) . toBe ( "CLIRECOVERYDEVICE" ) ;
5418+ expect ( capturedInitialAccountConfig . encryption ) . toBe ( false ) ;
5419+ expect ( capturedInitialAccountConfig . homeserver ) . toBe ( "http://127.0.0.1:28008/" ) ;
5420+ expect ( capturedInitialAccountConfig . password ) . toBe ( "cli-recovery-password" ) ;
5421+ expect ( capturedInitialAccountConfig . startupVerification ) . toBe ( "off" ) ;
5422+ expect ( capturedInitialAccountConfig . userId ) . toBe ( "@cli-recovery:matrix-qa.test" ) ;
54195423 expect ( bootstrapOwnDeviceVerification ) . toHaveBeenCalledWith ( {
54205424 allowAutomaticCrossSigningReset : false ,
54215425 } ) ;
@@ -5431,18 +5435,12 @@ describe("matrix live qa scenarios", () => {
54315435 "--json" ,
54325436 ] ,
54335437 ] ) ;
5434- expect ( registerWithToken ) . toHaveBeenCalledWith (
5435- expect . objectContaining ( {
5436- deviceName : "OpenClaw Matrix QA CLI Recovery Key Owner" ,
5437- registrationToken : "registration-token" ,
5438- } ) ,
5439- ) ;
5440- expect ( loginWithPassword ) . toHaveBeenCalledWith (
5441- expect . objectContaining ( {
5442- password : "cli-recovery-password" ,
5443- userId : "@cli-recovery:matrix-qa.test" ,
5444- } ) ,
5438+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. deviceName ) . toBe (
5439+ "OpenClaw Matrix QA CLI Recovery Key Owner" ,
54455440 ) ;
5441+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. registrationToken ) . toBe ( "registration-token" ) ;
5442+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. password ) . toBe ( "cli-recovery-password" ) ;
5443+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. userId ) . toBe ( "@cli-recovery:matrix-qa.test" ) ;
54465444 expect ( deleteOwnDevices ) . toHaveBeenCalledWith ( [ "CLIRECOVERYDEVICE" ] ) ;
54475445 expect ( stop ) . toHaveBeenCalledTimes ( 1 ) ;
54485446 const [ cliRunDir ] = await readdir ( path . join ( outputDir , "cli-recovery-key-setup" ) ) ;
@@ -5523,29 +5521,33 @@ describe("matrix live qa scenarios", () => {
55235521
55245522 const scenario = requireMatrixQaScenario ( "matrix-e2ee-cli-recovery-key-invalid" ) ;
55255523
5526- await expect (
5527- runMatrixQaScenario ( scenario , {
5528- ...matrixQaScenarioContext ( ) ,
5529- driverDeviceId : "DRIVERDEVICE" ,
5530- driverPassword : "driver-password" ,
5531- gatewayRuntimeEnv : {
5532- OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5533- OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5534- PATH : process . env . PATH ,
5535- } ,
5536- outputDir,
5537- } ) ,
5538- ) . resolves . toMatchObject ( {
5539- artifacts : {
5540- accountId : "cli-invalid-recovery-key" ,
5541- bootstrapSuccess : false ,
5542- cliDeviceId : "CLIINVALIDDEVICE" ,
5543- encryptionChanged : true ,
5544- recoveryKeyAccepted : false ,
5545- recoveryKeyRejected : true ,
5546- setupSuccess : false ,
5524+ const result = await runMatrixQaScenario ( scenario , {
5525+ ...matrixQaScenarioContext ( ) ,
5526+ driverDeviceId : "DRIVERDEVICE" ,
5527+ driverPassword : "driver-password" ,
5528+ gatewayRuntimeEnv : {
5529+ OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5530+ OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5531+ PATH : process . env . PATH ,
55475532 } ,
5533+ outputDir,
55485534 } ) ;
5535+ const artifacts = result . artifacts as {
5536+ accountId ?: unknown ;
5537+ bootstrapSuccess ?: unknown ;
5538+ cliDeviceId ?: unknown ;
5539+ encryptionChanged ?: unknown ;
5540+ recoveryKeyAccepted ?: unknown ;
5541+ recoveryKeyRejected ?: unknown ;
5542+ setupSuccess ?: unknown ;
5543+ } ;
5544+ expect ( artifacts . accountId ) . toBe ( "cli-invalid-recovery-key" ) ;
5545+ expect ( artifacts . bootstrapSuccess ) . toBe ( false ) ;
5546+ expect ( artifacts . cliDeviceId ) . toBe ( "CLIINVALIDDEVICE" ) ;
5547+ expect ( artifacts . encryptionChanged ) . toBe ( true ) ;
5548+ expect ( artifacts . recoveryKeyAccepted ) . toBe ( false ) ;
5549+ expect ( artifacts . recoveryKeyRejected ) . toBe ( true ) ;
5550+ expect ( artifacts . setupSuccess ) . toBe ( false ) ;
55495551
55505552 expect ( startMatrixQaOpenClawCli . mock . calls [ 0 ] ?. [ 0 ] . args ) . toEqual ( [
55515553 "matrix" ,
@@ -5560,18 +5562,12 @@ describe("matrix live qa scenarios", () => {
55605562 expect ( output ) . toHaveBeenCalledTimes ( 1 ) ;
55615563 expect ( wait ) . toHaveBeenCalledTimes ( 1 ) ;
55625564 expect ( kill ) . toHaveBeenCalledTimes ( 1 ) ;
5563- expect ( registerWithToken ) . toHaveBeenCalledWith (
5564- expect . objectContaining ( {
5565- deviceName : "OpenClaw Matrix QA CLI Invalid Recovery Key Owner" ,
5566- registrationToken : "registration-token" ,
5567- } ) ,
5568- ) ;
5569- expect ( loginWithPassword ) . toHaveBeenCalledWith (
5570- expect . objectContaining ( {
5571- password : "cli-invalid-password" ,
5572- userId : "@cli-invalid:matrix-qa.test" ,
5573- } ) ,
5565+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. deviceName ) . toBe (
5566+ "OpenClaw Matrix QA CLI Invalid Recovery Key Owner" ,
55745567 ) ;
5568+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. registrationToken ) . toBe ( "registration-token" ) ;
5569+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. password ) . toBe ( "cli-invalid-password" ) ;
5570+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. userId ) . toBe ( "@cli-invalid:matrix-qa.test" ) ;
55755571 expect ( deleteOwnDevices ) . toHaveBeenCalledWith ( [ "CLIINVALIDDEVICE" ] ) ;
55765572 expect ( stop ) . toHaveBeenCalledTimes ( 1 ) ;
55775573 const [ cliRunDir ] = await readdir ( path . join ( outputDir , "cli-recovery-key-invalid" ) ) ;
@@ -5646,45 +5642,43 @@ describe("matrix live qa scenarios", () => {
56465642
56475643 const scenario = requireMatrixQaScenario ( "matrix-e2ee-cli-encryption-setup-multi-account" ) ;
56485644
5649- await expect (
5650- runMatrixQaScenario ( scenario , {
5651- ...matrixQaScenarioContext ( ) ,
5652- driverDeviceId : "DRIVERDEVICE" ,
5653- driverPassword : "driver-password" ,
5654- gatewayRuntimeEnv : {
5655- OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5656- OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5657- PATH : process . env . PATH ,
5658- } ,
5659- outputDir,
5660- } ) ,
5661- ) . resolves . toMatchObject ( {
5662- artifacts : {
5663- accountId : "cli-multi-target" ,
5664- cliDeviceId : "CLIMULTIDEVICE" ,
5665- decoyAccountPreserved : true ,
5666- defaultAccountPreserved : true ,
5667- encryptionChanged : true ,
5668- setupSuccess : true ,
5669- verificationBootstrapSuccess : true ,
5645+ const result = await runMatrixQaScenario ( scenario , {
5646+ ...matrixQaScenarioContext ( ) ,
5647+ driverDeviceId : "DRIVERDEVICE" ,
5648+ driverPassword : "driver-password" ,
5649+ gatewayRuntimeEnv : {
5650+ OPENCLAW_CONFIG_PATH : "/tmp/gateway-config.json" ,
5651+ OPENCLAW_STATE_DIR : "/tmp/gateway-state" ,
5652+ PATH : process . env . PATH ,
56705653 } ,
5654+ outputDir,
56715655 } ) ;
5656+ const artifacts = result . artifacts as {
5657+ accountId ?: unknown ;
5658+ cliDeviceId ?: unknown ;
5659+ decoyAccountPreserved ?: unknown ;
5660+ defaultAccountPreserved ?: unknown ;
5661+ encryptionChanged ?: unknown ;
5662+ setupSuccess ?: unknown ;
5663+ verificationBootstrapSuccess ?: unknown ;
5664+ } ;
5665+ expect ( artifacts . accountId ) . toBe ( "cli-multi-target" ) ;
5666+ expect ( artifacts . cliDeviceId ) . toBe ( "CLIMULTIDEVICE" ) ;
5667+ expect ( artifacts . decoyAccountPreserved ) . toBe ( true ) ;
5668+ expect ( artifacts . defaultAccountPreserved ) . toBe ( true ) ;
5669+ expect ( artifacts . encryptionChanged ) . toBe ( true ) ;
5670+ expect ( artifacts . setupSuccess ) . toBe ( true ) ;
5671+ expect ( artifacts . verificationBootstrapSuccess ) . toBe ( true ) ;
56725672
56735673 expect ( runMatrixQaOpenClawCli . mock . calls . map ( ( [ params ] ) => params . args ) ) . toEqual ( [
56745674 [ "matrix" , "encryption" , "setup" , "--account" , "cli-multi-target" , "--json" ] ,
56755675 ] ) ;
5676- expect ( registerWithToken ) . toHaveBeenCalledWith (
5677- expect . objectContaining ( {
5678- deviceName : "OpenClaw Matrix QA CLI Multi Account Owner" ,
5679- registrationToken : "registration-token" ,
5680- } ) ,
5681- ) ;
5682- expect ( loginWithPassword ) . toHaveBeenCalledWith (
5683- expect . objectContaining ( {
5684- password : "cli-multi-password" ,
5685- userId : "@cli-multi:matrix-qa.test" ,
5686- } ) ,
5676+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. deviceName ) . toBe (
5677+ "OpenClaw Matrix QA CLI Multi Account Owner" ,
56875678 ) ;
5679+ expect ( registerWithToken . mock . calls [ 0 ] ?. [ 0 ] ?. registrationToken ) . toBe ( "registration-token" ) ;
5680+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. password ) . toBe ( "cli-multi-password" ) ;
5681+ expect ( loginWithPassword . mock . calls [ 0 ] ?. [ 0 ] ?. userId ) . toBe ( "@cli-multi:matrix-qa.test" ) ;
56885682 const [ cliRunDir ] = await readdir ( path . join ( outputDir , "cli-encryption-setup-multi-account" ) ) ;
56895683 const cliArtifactDir = path . join (
56905684 outputDir ,
0 commit comments