mirror of
https://github.com/vector-im/element-web.git
synced 2026-07-08 08:20:15 +00:00
210421ac47
* fix: use configured brand name in JSON and PlainText chat export filenames The JSON and PlainText chat export functions were using the hardcoded default 'matrix' as the brand name in filenames, while the HTML/ZIP export correctly used the configured brand (e.g., 'Element'). This made the filenames inconsistent: - ZIP: Element - Room - Chat Export - timestamp.zip - JSON: matrix - Room - Chat Export - timestamp.json Now both JSON and PlainText exports pass SdkConfig.get().brand to makeFileNameNoExtension(), matching the behavior of the base Exporter class used by HTML exports. Fixes #32853 Signed-off-by: RoySerbi <roy676564@gmail.com> * refactor: read brand from SdkConfig inside makeFileNameNoExtension Address review feedback from @t3chguy: the brand parameter on makeFileNameNoExtension was effectively dead (all three call sites passed SdkConfig.get().brand and the 'matrix' default was unreachable). - Exporter.makeFileNameNoExtension now reads SdkConfig.get().brand directly - All call sites (Exporter, JSONExport, PlainTextExport) simplified to no-arg - Drop now-unused SdkConfig imports in JSONExport and PlainTextExport Tests are unchanged: they already mock SdkConfig to return 'Element', so the existing 'Element-branded destination file name' snapshots remain valid. --------- Signed-off-by: RoySerbi <roy676564@gmail.com>
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
/*
|
|
Copyright 2024 New Vector Ltd.
|
|
Copyright 2022 The Matrix.org Foundation C.I.C.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
|
|
Please see LICENSE files in the repository root for full details.
|
|
*/
|
|
|
|
import JSONExporter from "../../../../src/utils/exportUtils/JSONExport";
|
|
import { createTestClient, mkStubRoom, REPEATABLE_DATE } from "../../../test-utils";
|
|
import { ExportType, type IExportOptions } from "../../../../src/utils/exportUtils/exportUtils";
|
|
|
|
describe("JSONExport", () => {
|
|
beforeEach(() => {
|
|
jest.useFakeTimers();
|
|
jest.setSystemTime(REPEATABLE_DATE);
|
|
});
|
|
|
|
it("should have an Element-branded destination file name", () => {
|
|
const roomName = "My / Test / Room: Welcome";
|
|
const client = createTestClient();
|
|
const stubOptions: IExportOptions = {
|
|
attachmentsIncluded: false,
|
|
maxSize: 50000000,
|
|
};
|
|
const stubRoom = mkStubRoom("!myroom:example.org", roomName, client);
|
|
const exporter = new JSONExporter(stubRoom, ExportType.Timeline, stubOptions, () => {});
|
|
|
|
expect(exporter.destinationFileName).toMatchSnapshot();
|
|
});
|
|
});
|