Skip to content

Commit 337148a

Browse files
committed
test: tighten qa matrix recovery cli assertions
1 parent cb60a06 commit 337148a

1 file changed

Lines changed: 131 additions & 137 deletions

File tree

extensions/qa-matrix/src/runners/contract/scenarios.test.ts

Lines changed: 131 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)