From 6d55ce0217915d85633a27671c73d54ac33cfca9 Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Wed, 21 Feb 2024 12:23:07 +0100 Subject: [PATCH] Use browser's font size instead of hardcoded `16px` as root font size (#12246) * WIP Use browser font size instead of hardcoded 16px * Add font migration to v3 * Remove custom font size input * Use a dropdown instead of a slider * Add margin to the font size dropdown * Fix `UpdateFontSizeDelta` action typo * Fix `fontScale`in `Call.ts` * Rename `baseFontSizeV3` to `fontSizeDelta` * Update playwright test * Add `default` next to the browser font size * Remove remaining `TODO` * Remove falsy `private` * Improve doc * Update snapshots after develop merge * Remove commented import --- .../appearance-user-settings-tab.spec.ts | 44 +--- .../appearance-tab-linux.png | Bin 47488 -> 46716 bytes .../window-12px-linux.png | Bin 0 -> 70576 bytes res/css/views/settings/_FontScalingPanel.pcss | 26 +-- .../views/settings/FontScalingPanel.tsx | 116 ++++------- src/dispatcher/actions.ts | 6 +- ...yload.ts => UpdateFontSizeDeltaPayload.ts} | 9 +- src/i18n/strings/en_EN.json | 4 +- src/models/Call.ts | 5 +- src/settings/Settings.tsx | 17 +- .../controllers/FontSizeController.ts | 8 +- src/settings/watchers/FontWatcher.ts | 160 +++++++++++---- .../views/settings/FontScalingPanel-test.tsx | 18 +- .../FontScalingPanel-test.tsx.snap | 188 +++++++++++------- .../AppearanceUserSettingsTab-test.tsx.snap | 188 +++++++++++------- test/models/Call-test.ts | 7 +- test/settings/watchers/FontWatcher-test.tsx | 29 ++- 17 files changed, 456 insertions(+), 369 deletions(-) create mode 100644 playwright/snapshots/settings/appearance-user-settings-tab.spec.ts/window-12px-linux.png rename src/dispatcher/payloads/{UpdateFontSizePayload.ts => UpdateFontSizeDeltaPayload.ts} (70%) diff --git a/playwright/e2e/settings/appearance-user-settings-tab.spec.ts b/playwright/e2e/settings/appearance-user-settings-tab.spec.ts index 3f220acc076..df091f45a8c 100644 --- a/playwright/e2e/settings/appearance-user-settings-tab.spec.ts +++ b/playwright/e2e/settings/appearance-user-settings-tab.spec.ts @@ -73,48 +73,18 @@ test.describe("Appearance user settings tab", () => { await expect(page.locator(".mx_RoomView_body[data-layout='bubble']")).toBeVisible(); }); - test("should support changing font size by clicking the font slider", async ({ page, app, user }) => { + test("should support changing font size by using the font size dropdown", async ({ page, app, user }) => { await app.settings.openUserSettings("Appearance"); const tab = page.getByTestId("mx_AppearanceUserSettingsTab"); - const fontSliderSection = tab.locator(".mx_FontScalingPanel_fontSlider"); + const fontDropdown = tab.locator(".mx_FontScalingPanel_Dropdown"); + await expect(fontDropdown.getByLabel("Font size")).toBeVisible(); - await expect(fontSliderSection.getByLabel("Font size")).toBeVisible(); + // Default browser font size is 16px and the select value is 0 + // -4 value is 12px + await fontDropdown.getByLabel("Font size").selectOption({ value: "-4" }); - const slider = fontSliderSection.getByRole("slider"); - // Click the left position of the slider - await slider.click({ position: { x: 0, y: 10 } }); - - const MIN_FONT_SIZE = 11; - // Assert that the smallest font size is selected - await expect(fontSliderSection.locator(`input[value='${MIN_FONT_SIZE}']`)).toBeVisible(); - await expect( - fontSliderSection.locator("output .mx_Slider_selection_label", { hasText: String(MIN_FONT_SIZE) }), - ).toBeVisible(); - - await expect(fontSliderSection).toMatchScreenshot(`font-slider-${MIN_FONT_SIZE}.png`); - - // Click the right position of the slider - await slider.click({ position: { x: 572, y: 10 } }); - - const MAX_FONT_SIZE = 21; - // Assert that the largest font size is selected - await expect(fontSliderSection.locator(`input[value='${MAX_FONT_SIZE}']`)).toBeVisible(); - await expect( - fontSliderSection.locator("output .mx_Slider_selection_label", { hasText: String(MAX_FONT_SIZE) }), - ).toBeVisible(); - - await expect(fontSliderSection).toMatchScreenshot(`font-slider-${MAX_FONT_SIZE}.png`); - }); - - test("should disable font size slider when custom font size is used", async ({ page, app, user }) => { - await app.settings.openUserSettings("Appearance"); - - const panel = page.getByTestId("mx_FontScalingPanel"); - await panel.locator("label", { hasText: "Use custom size" }).click(); - - // Assert that the font slider is disabled - await expect(panel.locator(".mx_FontScalingPanel_fontSlider input[disabled]")).toBeVisible(); + await expect(page).toMatchScreenshot("window-12px.png"); }); test("should support enabling compact group (modern) layout", async ({ page, app, user }) => { diff --git a/playwright/snapshots/settings/appearance-user-settings-tab.spec.ts/appearance-tab-linux.png b/playwright/snapshots/settings/appearance-user-settings-tab.spec.ts/appearance-tab-linux.png index 0d13a72c6e69fa6de13c302836e1ee790a4bdab6..bb2672fa028513ca998a8228ffd30ad76b7eea2f 100644 GIT binary patch literal 46716 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 G=)VDKp(Hc_ literal 47488 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

pNOvA>DhH^ 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%0D~TZIw-lrWDy<$js;OfvDtE#d`S`-C?O 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 { private readonly MESSAGE_PREVIEW_TEXT = _t("common|preview_message"); + /** + * Font sizes available (in px) + */ + private readonly sizes = [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36]; private layoutWatcherRef?: string; private unmounted = false; @@ -54,7 +55,8 @@ export default class FontScalingPanel extends React.Component { super(props); this.state = { - fontSize: SettingsStore.getValue("baseFontSizeV2", null).toString(), + fontSizeDelta: SettingsStore.getValue("fontSizeDelta", null), + browserFontSize: FontWatcher.getBrowserDefaultFontSize(), useCustomFontSize: SettingsStore.getValue("useCustomFontSize"), layout: SettingsStore.getValue("layout"), }; @@ -90,30 +92,22 @@ export default class FontScalingPanel extends React.Component { } } - private onFontSizeChanged = (size: number): void => { - this.setState({ fontSize: size.toString() }); - SettingsStore.setValue("baseFontSizeV2", null, SettingLevel.DEVICE, size); + /** + * Save the new font size + * @param delta + */ + private onFontSizeChanged = async (delta: string): Promise => { + const parsedDelta = parseInt(delta, 10) || 0; + this.setState({ fontSizeDelta: parsedDelta }); + await SettingsStore.setValue("fontSizeDelta", null, SettingLevel.DEVICE, parsedDelta); }; - private onValidateFontSize = async ({ value }: Pick): Promise => { - const parsedSize = parseFloat(value!); - const min = FontWatcher.MIN_SIZE; - const max = FontWatcher.MAX_SIZE; - - if (isNaN(parsedSize)) { - return { valid: false, feedback: _t("settings|appearance|font_size_nan") }; - } - - if (!(min <= parsedSize && parsedSize <= max)) { - return { - valid: false, - feedback: _t("settings|appearance|font_size_limit", { min, max }), - }; - } - - SettingsStore.setValue("baseFontSizeV2", null, SettingLevel.DEVICE, parseInt(value!, 10)); - - return { valid: true, feedback: _t("settings|appearance|font_size_valid", { min, max }) }; + /** + * Compute the difference between the selected font size and the browser font size + * @param fontSize + */ + private computeDeltaFontSize = (fontSize: number): number => { + return fontSize - this.state.browserFontSize; }; public render(): React.ReactNode { @@ -123,6 +117,21 @@ export default class FontScalingPanel extends React.Component { stretchContent data-testid="mx_FontScalingPanel" > + this.onFontSizeChanged(e.target.value)} + > + {this.sizes.map((size) => ( + + ))} + { displayName={this.state.displayName} avatarUrl={this.state.avatarUrl} /> -

-
Aa
- ""} - disabled={this.state.useCustomFontSize} - label={_t("settings|appearance|font_size")} - /> -
Aa
-
- - { - this.setState({ useCustomFontSize: checked }); - if (!checked) { - const size = parseInt(this.state.fontSize, 10); - const clamped = clamp(size, FontWatcher.MIN_SIZE, FontWatcher.MAX_SIZE); - if (clamped !== size) { - this.onFontSizeChanged(clamped); - } - } - }} - useCheckbox={true} - /> - - ) => this.setState({ fontSize: value.target.value })} - disabled={!this.state.useCustomFontSize} - className="mx_AppearanceUserSettingsTab_checkboxControlledField" - /> ); } diff --git a/src/dispatcher/actions.ts b/src/dispatcher/actions.ts index 5783e783315..bbc32817ce9 100644 --- a/src/dispatcher/actions.ts +++ b/src/dispatcher/actions.ts @@ -107,9 +107,11 @@ export enum Action { MigrateBaseFontSize = "migrate_base_font_size", /** - * Sets the apps root font size. Should be used with UpdateFontSizePayload + * Sets the apps root font size delta. Should be used with UpdateFontSizeDeltaPayload + * It will add the delta to the current font size. + * The delta should be between {@link FontWatcher.MIN_DELTA} and {@link FontWatcher.MAX_DELTA}. */ - UpdateFontSize = "update_font_size", + UpdateFontSizeDelta = "update_font_size_delta", /** * Sets a system font. Should be used with UpdateSystemFontPayload diff --git a/src/dispatcher/payloads/UpdateFontSizePayload.ts b/src/dispatcher/payloads/UpdateFontSizeDeltaPayload.ts similarity index 70% rename from src/dispatcher/payloads/UpdateFontSizePayload.ts rename to src/dispatcher/payloads/UpdateFontSizeDeltaPayload.ts index 6577acd594f..63a36d736bc 100644 --- a/src/dispatcher/payloads/UpdateFontSizePayload.ts +++ b/src/dispatcher/payloads/UpdateFontSizeDeltaPayload.ts @@ -17,11 +17,12 @@ limitations under the License. import { ActionPayload } from "../payloads"; import { Action } from "../actions"; -export interface UpdateFontSizePayload extends ActionPayload { - action: Action.UpdateFontSize; +export interface UpdateFontSizeDeltaPayload extends ActionPayload { + action: Action.UpdateFontSizeDelta; /** - * The font size to set the root to + * The delta is added to the current font size. + * The delta should be between {@link FontWatcher.MIN_DELTA} and {@link FontWatcher.MAX_DELTA}. */ - size: number; + delta: number; } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 47d45fc2f01..c974dc5f8b1 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -2422,9 +2422,7 @@ "custom_theme_success": "Theme added!", "custom_theme_url": "Custom theme URL", "font_size": "Font size", - "font_size_limit": "Custom font size can only be between %(min)s pt and %(max)s pt", - "font_size_nan": "Size must be a number", - "font_size_valid": "Use between %(min)s pt and %(max)s pt", + "font_size_default": "%(fontSize)s (default)", "heading": "Customise your appearance", "image_size_default": "Default", "image_size_large": "Large", diff --git a/src/models/Call.ts b/src/models/Call.ts index 10af51ec54f..27565736154 100644 --- a/src/models/Call.ts +++ b/src/models/Call.ts @@ -52,11 +52,11 @@ import WidgetStore from "../stores/WidgetStore"; import { WidgetMessagingStore, WidgetMessagingStoreEvent } from "../stores/widgets/WidgetMessagingStore"; import ActiveWidgetStore, { ActiveWidgetStoreEvent } from "../stores/ActiveWidgetStore"; import { getCurrentLanguage } from "../languageHandler"; -import { FontWatcher } from "../settings/watchers/FontWatcher"; import { PosthogAnalytics } from "../PosthogAnalytics"; import { UPDATE_EVENT } from "../stores/AsyncStore"; import { getJoinedNonFunctionalMembers } from "../utils/room/getJoinedNonFunctionalMembers"; import { isVideoRoom } from "../utils/video-rooms"; +import { FontWatcher } from "../settings/watchers/FontWatcher"; const TIMEOUT_MS = 16000; @@ -687,7 +687,8 @@ export class ElementCall extends Call { roomId: roomId, baseUrl: client.baseUrl, lang: getCurrentLanguage().replace("_", "-"), - fontScale: `${(SettingsStore.getValue("baseFontSizeV2") ?? 16) / FontWatcher.DEFAULT_SIZE}`, + fontScale: (FontWatcher.getRootFontSize() / FontWatcher.getBrowserDefaultFontSize()).toString(), + analyticsID, }); diff --git a/src/settings/Settings.tsx b/src/settings/Settings.tsx index 2cdd93e68d7..3dc842945ef 100644 --- a/src/settings/Settings.tsx +++ b/src/settings/Settings.tsx @@ -511,6 +511,9 @@ export const SETTINGS: { [setting: string]: ISetting } = { supportedLevels: [SettingLevel.CONFIG], default: 0, }, + /** + * @deprecated in favor of {@link fontSizeDelta} + */ "baseFontSize": { displayName: _td("settings|appearance|font_size"), supportedLevels: LEVELS_ACCOUNT_SETTINGS, @@ -530,12 +533,22 @@ export const SETTINGS: { [setting: string]: ISetting } = { * With the transition to Compound we are moving to a base font size * of 16px. We're taking the opportunity to move away from the `baseFontSize` * setting that had a 5px offset. - * + * @deprecated in favor {@link fontSizeDelta} */ "baseFontSizeV2": { displayName: _td("settings|appearance|font_size"), supportedLevels: [SettingLevel.DEVICE], - default: FontWatcher.DEFAULT_SIZE, + default: "", + controller: new FontSizeController(), + }, + /** + * This delta is added to the browser default font size + * Moving from `baseFontSizeV2` to `fontSizeDelta` to replace the default 16px to --cpd-font-size-root (browser default font size) + fontSizeDelta + */ + "fontSizeDelta": { + displayName: _td("settings|appearance|font_size"), + supportedLevels: [SettingLevel.DEVICE], + default: FontWatcher.DEFAULT_DELTA, controller: new FontSizeController(), }, "useCustomFontSize": { diff --git a/src/settings/controllers/FontSizeController.ts b/src/settings/controllers/FontSizeController.ts index 849a2822fed..83a2db198f2 100644 --- a/src/settings/controllers/FontSizeController.ts +++ b/src/settings/controllers/FontSizeController.ts @@ -16,7 +16,7 @@ limitations under the License. import SettingController from "./SettingController"; import dis from "../../dispatcher/dispatcher"; -import { UpdateFontSizePayload } from "../../dispatcher/payloads/UpdateFontSizePayload"; +import { UpdateFontSizeDeltaPayload } from "../../dispatcher/payloads/UpdateFontSizeDeltaPayload"; import { Action } from "../../dispatcher/actions"; import { SettingLevel } from "../SettingLevel"; @@ -34,9 +34,9 @@ export default class FontSizeController extends SettingController { dis.fire(Action.MigrateBaseFontSize); } else if (newValue !== "") { // Dispatch font size change so that everything open responds to the change. - dis.dispatch({ - action: Action.UpdateFontSize, - size: newValue, + dis.dispatch({ + action: Action.UpdateFontSizeDelta, + delta: newValue, }); } } diff --git a/src/settings/watchers/FontWatcher.ts b/src/settings/watchers/FontWatcher.ts index bb538d1809f..df1a7ba4997 100644 --- a/src/settings/watchers/FontWatcher.ts +++ b/src/settings/watchers/FontWatcher.ts @@ -22,20 +22,19 @@ import { Action } from "../../dispatcher/actions"; import { SettingLevel } from "../SettingLevel"; import { UpdateSystemFontPayload } from "../../dispatcher/payloads/UpdateSystemFontPayload"; import { ActionPayload } from "../../dispatcher/payloads"; -import { clamp } from "../../utils/numbers"; export class FontWatcher implements IWatcher { /** - * Value indirectly defined by Compound. - * All `rem` calculations are made from a `16px` values in the - * @vector-im/compound-design-tokens package - * - * We might want to move to using `100%` instead so we can inherit the user - * preference set in the browser regarding font sizes. + * This Compound value is using `100%` of the default browser font size. + * It allows EW to use the browser's default font size instead of a fixed value. + * All the Compound font size are using `rem`, they are relative to the root font size + * and therefore of the browser font size. */ - public static readonly DEFAULT_SIZE = 16; - public static readonly MIN_SIZE = FontWatcher.DEFAULT_SIZE - 5; - public static readonly MAX_SIZE = FontWatcher.DEFAULT_SIZE + 5; + private static readonly DEFAULT_SIZE = "var(--cpd-font-size-root)"; + /** + * Default delta added to the ${@link DEFAULT_SIZE} + */ + public static readonly DEFAULT_DELTA = 0; private dispatcherRef: string | null; @@ -54,28 +53,106 @@ export class FontWatcher implements IWatcher { } /** - * Migrating the old `baseFontSize` for Compound. - * Everything will becomes slightly larger, and getting rid of the `SIZE_DIFF` - * weirdness for locally persisted values + * Migrate the base font size from the V1 and V2 version to the V3 version + * @private */ private async migrateBaseFontSize(): Promise { - const legacyBaseFontSize = SettingsStore.getValue("baseFontSize"); - if (legacyBaseFontSize) { - console.log("Migrating base font size for Compound, current value", legacyBaseFontSize); - - // For some odd reason, the persisted value in user storage has an offset - // of 5 pixels for all values stored under `baseFontSize` - const LEGACY_SIZE_DIFF = 5; - // Compound uses a base font size of `16px`, whereas the old Element - // styles based their calculations off a `15px` root font size. - const ROOT_FONT_SIZE_INCREASE = 1; - - const baseFontSize = legacyBaseFontSize + ROOT_FONT_SIZE_INCREASE + LEGACY_SIZE_DIFF; - - await SettingsStore.setValue("baseFontSizeV2", null, SettingLevel.DEVICE, baseFontSize); - await SettingsStore.setValue("baseFontSize", null, SettingLevel.DEVICE, ""); - console.log("Migration complete, deleting legacy `baseFontSize`"); - } + await this.migrateBaseFontV1toFontSizeDelta(); + await this.migrateBaseFontV2toFontSizeDelta(); + } + + /** + * Migrating from the V1 version of the base font size to the new delta system. + * The delta system is using the default browser font size as a base + * Everything will become slightly larger, and getting rid of the `SIZE_DIFF` + * weirdness for locally persisted values + * @private + */ + private async migrateBaseFontV1toFontSizeDelta(): Promise { + const legacyBaseFontSize = SettingsStore.getValue("baseFontSize"); + // No baseFontV1 found, nothing to migrate + if (!legacyBaseFontSize) return; + + console.log( + "Migrating base font size -> base font size V2 -> font size delta for Compound, current value", + legacyBaseFontSize, + ); + + // Compute the V1 to V2 version before migrating to fontSizeDelta + const baseFontSizeV2 = this.computeBaseFontSizeV1toV2(legacyBaseFontSize); + + // Compute the difference between the V2 and the fontSizeDelta + const delta = this.computeFontSizeDeltaFromV2BaseFontSize(baseFontSizeV2); + + await SettingsStore.setValue("fontSizeDelta", null, SettingLevel.DEVICE, delta); + await SettingsStore.setValue("baseFontSize", null, SettingLevel.DEVICE, 0); + console.log("Migration complete, deleting legacy `baseFontSize`"); + } + + /** + * Migrating from the V2 version of the base font size to the new delta system + * @private + */ + private async migrateBaseFontV2toFontSizeDelta(): Promise { + const legacyBaseFontV2Size = SettingsStore.getValue("baseFontSizeV2"); + // No baseFontV2 found, nothing to migrate + if (!legacyBaseFontV2Size) return; + + console.log("Migrating base font size V2 for Compound, current value", legacyBaseFontV2Size); + + // Compute the difference between the V2 and the fontSizeDelta + const delta = this.computeFontSizeDeltaFromV2BaseFontSize(legacyBaseFontV2Size); + + await SettingsStore.setValue("fontSizeDelta", null, SettingLevel.DEVICE, delta); + await SettingsStore.setValue("baseFontSizeV2", null, SettingLevel.DEVICE, 0); + console.log("Migration complete, deleting legacy `baseFontSizeV2`"); + } + + /** + * Compute the V2 font size from the V1 font size + * @param legacyBaseFontSize + * @private + */ + private computeBaseFontSizeV1toV2(legacyBaseFontSize: number): number { + // For some odd reason, the persisted value in user storage has an offset + // of 5 pixels for all values stored under `baseFontSize` + const LEGACY_SIZE_DIFF = 5; + + // Compound uses a base font size of `16px`, whereas the old Element + // styles based their calculations off a `15px` root font size. + const ROOT_FONT_SIZE_INCREASE = 1; + + // Compute the font size of the V2 version before migrating to V3 + return legacyBaseFontSize + ROOT_FONT_SIZE_INCREASE + LEGACY_SIZE_DIFF; + } + + /** + * Compute the difference between the V2 font size and the default browser font size + * @param legacyBaseFontV2Size + * @private + */ + private computeFontSizeDeltaFromV2BaseFontSize(legacyBaseFontV2Size: number): number { + const browserDefaultFontSize = FontWatcher.getRootFontSize(); + + // Compute the difference between the V2 font size and the default browser font size + return legacyBaseFontV2Size - browserDefaultFontSize; + } + + /** + * Get the root font size of the document + * Fallback to 16px if the value is not found + * @returns {number} + */ + public static getRootFontSize(): number { + return parseInt(window.getComputedStyle(document.documentElement).getPropertyValue("font-size"), 10) || 16; + } + + /** + * Get the browser default font size + * @returns {number} the default font size of the browser + */ + public static getBrowserDefaultFontSize(): number { + return this.getRootFontSize() - SettingsStore.getValue("fontSizeDelta"); } public stop(): void { @@ -84,7 +161,7 @@ export class FontWatcher implements IWatcher { } private updateFont(): void { - this.setRootFontSize(SettingsStore.getValue("baseFontSizeV2")); + this.setRootFontSize(SettingsStore.getValue("fontSizeDelta")); this.setSystemFont({ useBundledEmojiFont: SettingsStore.getValue("useBundledEmojiFont"), useSystemFont: SettingsStore.getValue("useSystemFont"), @@ -95,13 +172,13 @@ export class FontWatcher implements IWatcher { private onAction = (payload: ActionPayload): void => { if (payload.action === Action.MigrateBaseFontSize) { this.migrateBaseFontSize(); - } else if (payload.action === Action.UpdateFontSize) { - this.setRootFontSize(payload.size); + } else if (payload.action === Action.UpdateFontSizeDelta) { + this.setRootFontSize(payload.delta); } else if (payload.action === Action.UpdateSystemFont) { this.setSystemFont(payload as UpdateSystemFontPayload); } else if (payload.action === Action.OnLoggedOut) { // Clear font overrides when logging out - this.setRootFontSize(FontWatcher.DEFAULT_SIZE); + this.setRootFontSize(FontWatcher.DEFAULT_DELTA); this.setSystemFont({ useBundledEmojiFont: false, useSystemFont: false, @@ -113,13 +190,14 @@ export class FontWatcher implements IWatcher { } }; - private setRootFontSize = async (size: number): Promise => { - const fontSize = clamp(size, FontWatcher.MIN_SIZE, FontWatcher.MAX_SIZE); - - if (fontSize !== size) { - await SettingsStore.setValue("baseFontSizeV2", null, SettingLevel.DEVICE, fontSize); - } - document.querySelector(":root")!.style.fontSize = toPx(fontSize); + /** + * Set the root font size of the document + * @param delta {number} the delta to add to the default font size + */ + private setRootFontSize = async (delta: number): Promise => { + // Add the delta to the browser default font size + document.querySelector(":root")!.style.fontSize = + `calc(${FontWatcher.DEFAULT_SIZE} + ${toPx(delta)})`; }; public static readonly FONT_FAMILY_CUSTOM_PROPERTY = "--cpd-font-family-sans"; diff --git a/test/components/views/settings/FontScalingPanel-test.tsx b/test/components/views/settings/FontScalingPanel-test.tsx index deb8df3c509..f2e0710b41c 100644 --- a/test/components/views/settings/FontScalingPanel-test.tsx +++ b/test/components/views/settings/FontScalingPanel-test.tsx @@ -15,11 +15,10 @@ limitations under the License. */ import React from "react"; -import { fireEvent, render, waitFor } from "@testing-library/react"; +import { render } from "@testing-library/react"; import * as TestUtils from "../../../test-utils"; import FontScalingPanel from "../../../../src/components/views/settings/FontScalingPanel"; -import SettingsStore from "../../../../src/settings/SettingsStore"; describe("FontScalingPanel", () => { it("renders the font scaling UI", () => { @@ -27,19 +26,4 @@ describe("FontScalingPanel", () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); - - it("should clamp custom font size when disabling it", async () => { - jest.spyOn(SettingsStore, "setValue").mockResolvedValue(undefined); - TestUtils.stubClient(); - const { container, getByText } = render(); - fireEvent.click(getByText("Use custom size")); - await waitFor(() => { - expect(container.querySelector("input[checked]")).toBeDefined(); - }); - fireEvent.change(container.querySelector("#font_size_field")!, { target: { value: "25" } }); - fireEvent.click(getByText("Use custom size")); - await waitFor(() => { - expect(container.querySelector("#font_size_field")).toHaveValue(21); - }); - }); }); diff --git a/test/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap b/test/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap index d7ac3186080..a118c328236 100644 --- a/test/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap +++ b/test/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap @@ -18,6 +18,117 @@ exports[`FontScalingPanel renders the font scaling UI 1`] = `
+
+ + +
@@ -33,83 +144,6 @@ exports[`FontScalingPanel renders the font scaling UI 1`] = ` />
-
-
- Aa -
-
- - - - 16 - - -
-
- Aa -
-
- - -