




















@@ -5208,28 +5208,31 @@ describe("matrix live qa scenarios", () => {
52085208"matrix-e2ee-cli-encryption-setup-bootstrap-failure",
52095209);
521052105211-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");
5233523652345237const proxyArgs = startMatrixQaFaultProxy.mock.calls[0]?.[0];
52355238if (!proxyArgs) {
@@ -5263,18 +5266,12 @@ describe("matrix live qa scenarios", () => {
52635266expect(output).toHaveBeenCalledTimes(1);
52645267expect(wait).toHaveBeenCalledTimes(1);
52655268expect(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");
52785275expect(proxyStop).toHaveBeenCalledTimes(1);
52795276const [cliRunDir] = await readdir(
52805277path.join(outputDir, "cli-encryption-setup-bootstrap-failure"),
@@ -5382,40 +5379,47 @@ describe("matrix live qa scenarios", () => {
5382537953835380const scenario = requireMatrixQaScenario("matrix-e2ee-cli-recovery-key-setup");
538453815385-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);
540954115410-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");
54195423expect(bootstrapOwnDeviceVerification).toHaveBeenCalledWith({
54205424allowAutomaticCrossSigningReset: 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");
54465444expect(deleteOwnDevices).toHaveBeenCalledWith(["CLIRECOVERYDEVICE"]);
54475445expect(stop).toHaveBeenCalledTimes(1);
54485446const [cliRunDir] = await readdir(path.join(outputDir, "cli-recovery-key-setup"));
@@ -5523,29 +5521,33 @@ describe("matrix live qa scenarios", () => {
5523552155245522const scenario = requireMatrixQaScenario("matrix-e2ee-cli-recovery-key-invalid");
552555235526-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);
5549555155505552expect(startMatrixQaOpenClawCli.mock.calls[0]?.[0].args).toEqual([
55515553"matrix",
@@ -5560,18 +5562,12 @@ describe("matrix live qa scenarios", () => {
55605562expect(output).toHaveBeenCalledTimes(1);
55615563expect(wait).toHaveBeenCalledTimes(1);
55625564expect(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");
55755571expect(deleteOwnDevices).toHaveBeenCalledWith(["CLIINVALIDDEVICE"]);
55765572expect(stop).toHaveBeenCalledTimes(1);
55775573const [cliRunDir] = await readdir(path.join(outputDir, "cli-recovery-key-invalid"));
@@ -5646,45 +5642,43 @@ describe("matrix live qa scenarios", () => {
5646564256475643const scenario = requireMatrixQaScenario("matrix-e2ee-cli-encryption-setup-multi-account");
564856445649-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);
5672567256735673expect(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");
56885682const [cliRunDir] = await readdir(path.join(outputDir, "cli-encryption-setup-multi-account"));
56895683const cliArtifactDir = path.join(
56905684outputDir,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。