




















@@ -1040,37 +1040,45 @@ describe("google-meet plugin", () => {
10401040it("lists Meet artifact metadata for the latest conference record by default", async () => {
10411041const fetchMock = stubMeetArtifactsApi();
104210421043-await expect(
1044-fetchGoogleMeetArtifacts({
1045-accessToken: "token",
1046-meeting: "abc-defg-hij",
1047-pageSize: 2,
1048-}),
1049-).resolves.toMatchObject({
1050-input: "abc-defg-hij",
1051-space: { name: "spaces/abc-defg-hij" },
1052-conferenceRecords: [{ name: "conferenceRecords/rec-1" }],
1053-artifacts: [
1054-{
1055-conferenceRecord: { name: "conferenceRecords/rec-1" },
1056-participants: [{ name: "conferenceRecords/rec-1/participants/p1" }],
1057-recordings: [{ name: "conferenceRecords/rec-1/recordings/r1" }],
1058-transcripts: [{ name: "conferenceRecords/rec-1/transcripts/t1" }],
1059-transcriptEntries: [
1060-{
1061-transcript: "conferenceRecords/rec-1/transcripts/t1",
1062-entries: [
1063-{
1064-name: "conferenceRecords/rec-1/transcripts/t1/entries/e1",
1065-text: "Hello from the transcript.",
1066-},
1067-],
1068-},
1069-],
1070-smartNotes: [{ name: "conferenceRecords/rec-1/smartNotes/sn1" }],
1071-},
1072-],
1043+const result = await fetchGoogleMeetArtifacts({
1044+accessToken: "token",
1045+meeting: "abc-defg-hij",
1046+pageSize: 2,
10731047});
1048+expect(result.input).toBe("abc-defg-hij");
1049+expect(result.space?.name).toBe("spaces/abc-defg-hij");
1050+expect(result.conferenceRecords.map((record) => record.name)).toEqual([
1051+"conferenceRecords/rec-1",
1052+]);
1053+expect(result.artifacts).toHaveLength(1);
1054+const artifact = result.artifacts[0];
1055+expect(artifact?.conferenceRecord.name).toBe("conferenceRecords/rec-1");
1056+expect(artifact?.participants.map((participant) => participant.name)).toEqual([
1057+"conferenceRecords/rec-1/participants/p1",
1058+]);
1059+expect(artifact?.recordings.map((recording) => recording.name)).toEqual([
1060+"conferenceRecords/rec-1/recordings/r1",
1061+]);
1062+expect(artifact?.transcripts.map((transcript) => transcript.name)).toEqual([
1063+"conferenceRecords/rec-1/transcripts/t1",
1064+]);
1065+expect(artifact?.transcriptEntries).toHaveLength(1);
1066+expect(artifact?.transcriptEntries[0]?.transcript).toBe(
1067+"conferenceRecords/rec-1/transcripts/t1",
1068+);
1069+expect(artifact?.transcriptEntries[0]?.entries).toEqual([
1070+{
1071+name: "conferenceRecords/rec-1/transcripts/t1/entries/e1",
1072+participant: "conferenceRecords/rec-1/participants/p1",
1073+text: "Hello from the transcript.",
1074+languageCode: "en-US",
1075+startTime: "2026-04-25T10:01:00Z",
1076+endTime: "2026-04-25T10:01:05Z",
1077+},
1078+]);
1079+expect(artifact?.smartNotes.map((smartNote) => smartNote.name)).toEqual([
1080+"conferenceRecords/rec-1/smartNotes/sn1",
1081+]);
1074108210751083const listCall = fetchMock.mock.calls.find(([input]) => {
10761084const url = requestUrl(input);
@@ -1082,17 +1090,13 @@ describe("google-meet plugin", () => {
10821090const listUrl = requestUrl(listCall[0]);
10831091expect(listUrl.searchParams.get("filter")).toBe('space.name = "spaces/abc-defg-hij"');
10841092expect(listUrl.searchParams.get("pageSize")).toBe("1");
1085-expect(fetchGuardMocks.fetchWithSsrFGuard).toHaveBeenCalledWith(
1086-expect.objectContaining({
1087-url: "https://meet.googleapis.com/v2/conferenceRecords/rec-1/smartNotes?pageSize=2",
1088-auditContext: "google-meet.conferenceRecords.smartNotes.list",
1089-}),
1093+expect(requireFetchGuardCall("google-meet.conferenceRecords.smartNotes.list").url).toBe(
1094+"https://meet.googleapis.com/v2/conferenceRecords/rec-1/smartNotes?pageSize=2",
10901095);
1091-expect(fetchGuardMocks.fetchWithSsrFGuard).toHaveBeenCalledWith(
1092-expect.objectContaining({
1093-url: "https://meet.googleapis.com/v2/conferenceRecords/rec-1/transcripts/t1/entries?pageSize=2",
1094-auditContext: "google-meet.conferenceRecords.transcripts.entries.list",
1095-}),
1096+expect(
1097+requireFetchGuardCall("google-meet.conferenceRecords.transcripts.entries.list").url,
1098+).toBe(
1099+"https://meet.googleapis.com/v2/conferenceRecords/rec-1/transcripts/t1/entries?pageSize=2",
10961100);
10971101});
10981102@@ -1121,20 +1125,18 @@ describe("google-meet plugin", () => {
11211125it("exports linked Google Docs bodies when requested", async () => {
11221126const fetchMock = stubMeetArtifactsApi();
112311271124-await expect(
1125-fetchGoogleMeetArtifacts({
1126-accessToken: "token",
1127-conferenceRecord: "rec-1",
1128-includeDocumentBodies: true,
1129-}),
1130-).resolves.toMatchObject({
1131-artifacts: [
1132-{
1133-transcripts: [{ documentText: "Transcript document body." }],
1134-smartNotes: [{ documentText: "Smart note document body." }],
1135-},
1136-],
1128+const result = await fetchGoogleMeetArtifacts({
1129+accessToken: "token",
1130+conferenceRecord: "rec-1",
1131+includeDocumentBodies: true,
11371132});
1133+expect(result.artifacts).toHaveLength(1);
1134+expect(result.artifacts[0]?.transcripts.map((transcript) => transcript.documentText)).toEqual([
1135+"Transcript document body.",
1136+]);
1137+expect(result.artifacts[0]?.smartNotes.map((smartNote) => smartNote.documentText)).toEqual([
1138+"Smart note document body.",
1139+]);
11381140const driveCalls = fetchMock.mock.calls
11391141.map(([input]) => requestUrl(input))
11401142.filter((url) => url.pathname.startsWith("/drive/v3/files/"));
@@ -1151,16 +1153,13 @@ describe("google-meet plugin", () => {
11511153it("fetches only the latest Meet conference record for a meeting", async () => {
11521154const fetchMock = stubMeetArtifactsApi();
115311551154-await expect(
1155-fetchLatestGoogleMeetConferenceRecord({
1156-accessToken: "token",
1157-meeting: "abc-defg-hij",
1158-}),
1159-).resolves.toMatchObject({
1160-input: "abc-defg-hij",
1161-space: { name: "spaces/abc-defg-hij" },
1162-conferenceRecord: { name: "conferenceRecords/rec-1" },
1156+const result = await fetchLatestGoogleMeetConferenceRecord({
1157+accessToken: "token",
1158+meeting: "abc-defg-hij",
11631159});
1160+expect(result.input).toBe("abc-defg-hij");
1161+expect(result.space.name).toBe("spaces/abc-defg-hij");
1162+expect(result.conferenceRecord?.name).toBe("conferenceRecords/rec-1");
1164116311651164const listCall = fetchMock.mock.calls.find(([input]) => {
11661165const url = requestUrl(input);
@@ -1177,34 +1176,31 @@ describe("google-meet plugin", () => {
11771176it("lists Meet attendance rows with participant sessions", async () => {
11781177const fetchMock = stubMeetArtifactsApi();
117911781180-await expect(
1181-fetchGoogleMeetAttendance({
1182-accessToken: "token",
1183-conferenceRecord: "rec-1",
1184-pageSize: 3,
1185-}),
1186-).resolves.toMatchObject({
1187-input: "rec-1",
1188-conferenceRecords: [{ name: "conferenceRecords/rec-1" }],
1189-attendance: [
1190-{
1191-conferenceRecord: "conferenceRecords/rec-1",
1192-participant: "conferenceRecords/rec-1/participants/p1",
1193-displayName: "Alice",
1194-user: "users/alice",
1195-sessions: [
1196-{
1197-name: "conferenceRecords/rec-1/participants/p1/participantSessions/s1",
1198-},
1199-],
1200-},
1201-],
1179+const result = await fetchGoogleMeetAttendance({
1180+accessToken: "token",
1181+conferenceRecord: "rec-1",
1182+pageSize: 3,
12021183});
1184+expect(result.input).toBe("rec-1");
1185+expect(result.conferenceRecords.map((record) => record.name)).toEqual([
1186+"conferenceRecords/rec-1",
1187+]);
1188+expect(result.attendance).toHaveLength(1);
1189+expect(result.attendance[0]?.conferenceRecord).toBe("conferenceRecords/rec-1");
1190+expect(result.attendance[0]?.participant).toBe("conferenceRecords/rec-1/participants/p1");
1191+expect(result.attendance[0]?.displayName).toBe("Alice");
1192+expect(result.attendance[0]?.user).toBe("users/alice");
1193+expect(result.attendance[0]?.sessions.map((session) => session.name)).toEqual([
1194+"conferenceRecords/rec-1/participants/p1/participantSessions/s1",
1195+]);
12031196expect(fetchMock).toHaveBeenCalledWith(
12041197"https://meet.googleapis.com/v2/conferenceRecords/rec-1",
1205-expect.objectContaining({
1206-headers: expect.objectContaining({ Authorization: "Bearer token" }),
1207-}),
1198+{
1199+headers: {
1200+Authorization: "Bearer token",
1201+Accept: "application/json",
1202+},
1203+},
12081204);
12091205});
12101206此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。