






















@@ -3465,64 +3465,65 @@ describe("matrix live qa scenarios", () => {
3465346534663466const scenario = requireMatrixQaScenario("matrix-media-type-coverage");
346734673468-await expect(
3469-runMatrixQaScenario(scenario, {
3470-baseUrl: "http://127.0.0.1:28008/",
3471-canary: undefined,
3472-driverAccessToken: "driver-token",
3473-driverUserId: "@driver:matrix-qa.test",
3474-observedEvents: [],
3475-observerAccessToken: "observer-token",
3476-observerUserId: "@observer:matrix-qa.test",
3477-roomId: "!main:matrix-qa.test",
3478-restartGateway: undefined,
3479-syncState: {},
3480-sutAccessToken: "sut-token",
3481-sutUserId: "@sut:matrix-qa.test",
3482-timeoutMs: 8_000,
3483-topology: {
3484-defaultRoomId: "!main:matrix-qa.test",
3485-defaultRoomKey: "main",
3486-rooms: [
3487-{
3488-key: scenarioTesting.MATRIX_QA_MEDIA_ROOM_KEY,
3489-kind: "group",
3490-memberRoles: ["driver", "observer", "sut"],
3491-memberUserIds: [
3492-"@driver:matrix-qa.test",
3493-"@observer:matrix-qa.test",
3494-"@sut:matrix-qa.test",
3495-],
3496-name: "Media",
3497-requireMention: true,
3498-roomId: "!media:matrix-qa.test",
3499-},
3500-],
3501-},
3502-}),
3503-).resolves.toMatchObject({
3504-artifacts: {
3505-attachments: mediaCases.map((mediaCase) => ({
3506-eventId: mediaCase.eventId,
3507-filename: mediaCase.fileName,
3508-kind: mediaCase.expectedAttachmentKind,
3509-msgtype: mediaCase.expectedMsgtype,
3510-})),
3511-roomId: "!media:matrix-qa.test",
3468+const result = await runMatrixQaScenario(scenario, {
3469+baseUrl: "http://127.0.0.1:28008/",
3470+canary: undefined,
3471+driverAccessToken: "driver-token",
3472+driverUserId: "@driver:matrix-qa.test",
3473+observedEvents: [],
3474+observerAccessToken: "observer-token",
3475+observerUserId: "@observer:matrix-qa.test",
3476+roomId: "!main:matrix-qa.test",
3477+restartGateway: undefined,
3478+syncState: {},
3479+sutAccessToken: "sut-token",
3480+sutUserId: "@sut:matrix-qa.test",
3481+timeoutMs: 8_000,
3482+topology: {
3483+defaultRoomId: "!main:matrix-qa.test",
3484+defaultRoomKey: "main",
3485+rooms: [
3486+{
3487+key: scenarioTesting.MATRIX_QA_MEDIA_ROOM_KEY,
3488+kind: "group",
3489+memberRoles: ["driver", "observer", "sut"],
3490+memberUserIds: [
3491+"@driver:matrix-qa.test",
3492+"@observer:matrix-qa.test",
3493+"@sut:matrix-qa.test",
3494+],
3495+name: "Media",
3496+requireMention: true,
3497+roomId: "!media:matrix-qa.test",
3498+},
3499+],
35123500},
35133501});
3502+const artifacts = result.artifacts as {
3503+attachments?: Array<{
3504+eventId?: unknown;
3505+filename?: unknown;
3506+kind?: unknown;
3507+msgtype?: unknown;
3508+}>;
3509+roomId?: unknown;
3510+};
3511+expect(artifacts.attachments).toHaveLength(mediaCases.length);
3512+for (const [index, mediaCase] of mediaCases.entries()) {
3513+expect(artifacts.attachments?.[index]?.eventId).toBe(mediaCase.eventId);
3514+expect(artifacts.attachments?.[index]?.filename).toBe(mediaCase.fileName);
3515+expect(artifacts.attachments?.[index]?.kind).toBe(mediaCase.expectedAttachmentKind);
3516+expect(artifacts.attachments?.[index]?.msgtype).toBe(mediaCase.expectedMsgtype);
3517+}
3518+expect(artifacts.roomId).toBe("!media:matrix-qa.test");
3514351935153520expect(sendMediaMessage).toHaveBeenCalledTimes(mediaCases.length);
35163521for (const [index, mediaCase] of MATRIX_QA_MEDIA_TYPE_COVERAGE_CASES.entries()) {
3517-expect(sendMediaMessage).toHaveBeenNthCalledWith(
3518-index + 1,
3519-expect.objectContaining({
3520-contentType: mediaCase.contentType,
3521-fileName: mediaCase.fileName,
3522-kind: mediaCase.kind,
3523-mentionUserIds: ["@sut:matrix-qa.test"],
3524-}),
3525-);
3522+const mediaMessage = sendMediaMessage.mock.calls[index]?.[0];
3523+expect(mediaMessage?.contentType).toBe(mediaCase.contentType);
3524+expect(mediaMessage?.fileName).toBe(mediaCase.fileName);
3525+expect(mediaMessage?.kind).toBe(mediaCase.kind);
3526+expect(mediaMessage?.mentionUserIds).toEqual(["@sut:matrix-qa.test"]);
35263527}
35273528const firstReplyWait = waitForRoomEvent.mock.calls[1]?.[0];
35283529const firstToken =
@@ -3583,48 +3584,48 @@ describe("matrix live qa scenarios", () => {
3583358435843585const scenario = requireMatrixQaScenario("matrix-dm-thread-reply-override");
358535863586-await expect(
3587-runMatrixQaScenario(scenario, {
3588-baseUrl: "http://127.0.0.1:28008/",
3589-canary: undefined,
3590-driverAccessToken: "driver-token",
3591-driverUserId: "@driver:matrix-qa.test",
3592-observedEvents: [],
3593-observerAccessToken: "observer-token",
3594-observerUserId: "@observer:matrix-qa.test",
3595-roomId: "!main:matrix-qa.test",
3596-restartGateway: undefined,
3597-syncState: {},
3598-sutAccessToken: "sut-token",
3599-sutUserId: "@sut:matrix-qa.test",
3600-timeoutMs: 8_000,
3601-topology: {
3602-defaultRoomId: "!main:matrix-qa.test",
3603-defaultRoomKey: "main",
3604-rooms: [
3605-{
3606-key: scenarioTesting.MATRIX_QA_DRIVER_DM_ROOM_KEY,
3607-kind: "dm",
3608-memberRoles: ["driver", "sut"],
3609-memberUserIds: ["@driver:matrix-qa.test", "@sut:matrix-qa.test"],
3610-name: "DM",
3611-requireMention: false,
3612-roomId: "!dm:matrix-qa.test",
3613-},
3614-],
3615-},
3616-}),
3617-).resolves.toMatchObject({
3618-artifacts: {
3619-driverEventId: "$dm-thread-trigger",
3620-reply: {
3621-relatesTo: {
3622-relType: "m.thread",
3623-eventId: "$dm-thread-trigger",
3587+const result = await runMatrixQaScenario(scenario, {
3588+baseUrl: "http://127.0.0.1:28008/",
3589+canary: undefined,
3590+driverAccessToken: "driver-token",
3591+driverUserId: "@driver:matrix-qa.test",
3592+observedEvents: [],
3593+observerAccessToken: "observer-token",
3594+observerUserId: "@observer:matrix-qa.test",
3595+roomId: "!main:matrix-qa.test",
3596+restartGateway: undefined,
3597+syncState: {},
3598+sutAccessToken: "sut-token",
3599+sutUserId: "@sut:matrix-qa.test",
3600+timeoutMs: 8_000,
3601+topology: {
3602+defaultRoomId: "!main:matrix-qa.test",
3603+defaultRoomKey: "main",
3604+rooms: [
3605+{
3606+key: scenarioTesting.MATRIX_QA_DRIVER_DM_ROOM_KEY,
3607+kind: "dm",
3608+memberRoles: ["driver", "sut"],
3609+memberUserIds: ["@driver:matrix-qa.test", "@sut:matrix-qa.test"],
3610+name: "DM",
3611+requireMention: false,
3612+roomId: "!dm:matrix-qa.test",
36243613},
3625-},
3614+],
36263615},
36273616});
3617+const artifacts = result.artifacts as {
3618+driverEventId?: unknown;
3619+reply?: {
3620+relatesTo?: {
3621+eventId?: unknown;
3622+relType?: unknown;
3623+};
3624+};
3625+};
3626+expect(artifacts.driverEventId).toBe("$dm-thread-trigger");
3627+expect(artifacts.reply?.relatesTo?.relType).toBe("m.thread");
3628+expect(artifacts.reply?.relatesTo?.eventId).toBe("$dm-thread-trigger");
36283629});
3629363036303631it("surfaces the shared DM session notice in the secondary DM room", async () => {
@@ -3694,52 +3695,51 @@ describe("matrix live qa scenarios", () => {
3694369536953696const scenario = requireMatrixQaScenario("matrix-dm-shared-session-notice");
369636973697-await expect(
3698-runMatrixQaScenario(scenario, {
3699-baseUrl: "http://127.0.0.1:28008/",
3700-canary: undefined,
3701-driverAccessToken: "driver-token",
3702-driverUserId: "@driver:matrix-qa.test",
3703-observedEvents: [],
3704-observerAccessToken: "observer-token",
3705-observerUserId: "@observer:matrix-qa.test",
3706-roomId: "!main:matrix-qa.test",
3707-restartGateway: undefined,
3708-syncState: {},
3709-sutAccessToken: "sut-token",
3710-sutUserId: "@sut:matrix-qa.test",
3711-timeoutMs: 8_000,
3712-topology: {
3713-defaultRoomId: "!main:matrix-qa.test",
3714-defaultRoomKey: "main",
3715-rooms: [
3716-{
3717-key: scenarioTesting.MATRIX_QA_DRIVER_DM_ROOM_KEY,
3718-kind: "dm",
3719-memberRoles: ["driver", "sut"],
3720-memberUserIds: ["@driver:matrix-qa.test", "@sut:matrix-qa.test"],
3721-name: "DM",
3722-requireMention: false,
3723-roomId: "!dm:matrix-qa.test",
3724-},
3725-{
3726-key: scenarioTesting.MATRIX_QA_DRIVER_DM_SHARED_ROOM_KEY,
3727-kind: "dm",
3728-memberRoles: ["driver", "sut"],
3729-memberUserIds: ["@driver:matrix-qa.test", "@sut:matrix-qa.test"],
3730-name: "Shared DM",
3731-requireMention: false,
3732-roomId: "!dm-shared:matrix-qa.test",
3733-},
3734-],
3735-},
3736-}),
3737-).resolves.toMatchObject({
3738-artifacts: {
3739-noticeEventId: "$shared-notice",
3740-roomKey: scenarioTesting.MATRIX_QA_DRIVER_DM_SHARED_ROOM_KEY,
3698+const result = await runMatrixQaScenario(scenario, {
3699+baseUrl: "http://127.0.0.1:28008/",
3700+canary: undefined,
3701+driverAccessToken: "driver-token",
3702+driverUserId: "@driver:matrix-qa.test",
3703+observedEvents: [],
3704+observerAccessToken: "observer-token",
3705+observerUserId: "@observer:matrix-qa.test",
3706+roomId: "!main:matrix-qa.test",
3707+restartGateway: undefined,
3708+syncState: {},
3709+sutAccessToken: "sut-token",
3710+sutUserId: "@sut:matrix-qa.test",
3711+timeoutMs: 8_000,
3712+topology: {
3713+defaultRoomId: "!main:matrix-qa.test",
3714+defaultRoomKey: "main",
3715+rooms: [
3716+{
3717+key: scenarioTesting.MATRIX_QA_DRIVER_DM_ROOM_KEY,
3718+kind: "dm",
3719+memberRoles: ["driver", "sut"],
3720+memberUserIds: ["@driver:matrix-qa.test", "@sut:matrix-qa.test"],
3721+name: "DM",
3722+requireMention: false,
3723+roomId: "!dm:matrix-qa.test",
3724+},
3725+{
3726+key: scenarioTesting.MATRIX_QA_DRIVER_DM_SHARED_ROOM_KEY,
3727+kind: "dm",
3728+memberRoles: ["driver", "sut"],
3729+memberUserIds: ["@driver:matrix-qa.test", "@sut:matrix-qa.test"],
3730+name: "Shared DM",
3731+requireMention: false,
3732+roomId: "!dm-shared:matrix-qa.test",
3733+},
3734+],
37413735},
37423736});
3737+const artifacts = result.artifacts as {
3738+noticeEventId?: unknown;
3739+roomKey?: unknown;
3740+};
3741+expect(artifacts.noticeEventId).toBe("$shared-notice");
3742+expect(artifacts.roomKey).toBe(scenarioTesting.MATRIX_QA_DRIVER_DM_SHARED_ROOM_KEY);
3743374337443744expect(sendPrimaryTextMessage).toHaveBeenCalledWith({
37453745body: expect.stringContaining("reply with only this exact marker:"),
@@ -3749,11 +3749,7 @@ describe("matrix live qa scenarios", () => {
37493749body: expect.stringContaining("reply with only this exact marker:"),
37503750roomId: "!dm-shared:matrix-qa.test",
37513751});
3752-expect(waitSecondaryNotice).toHaveBeenCalledWith(
3753-expect.objectContaining({
3754-roomId: "!dm-shared:matrix-qa.test",
3755-}),
3756-);
3752+expect(waitSecondaryNotice.mock.calls[0]?.[0]?.roomId).toBe("!dm-shared:matrix-qa.test");
37573753});
3758375437593755it("suppresses the shared DM notice when sessionScope is per-room", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。