mirror of
https://github.com/vector-im/element-web.git
synced 2026-03-07 06:22:30 +01:00
Keep custom theme active after reload (#32506)
* fix: keep custom theme active after reload * test: add e2e test * test: fix matrix chat test
This commit is contained in:
parent
04ef3a2d5d
commit
67fcbd1678
@ -36,6 +36,9 @@ class Helpers {
|
||||
name: "Custom theme",
|
||||
isDark: false,
|
||||
colors: {},
|
||||
compound: {
|
||||
"--cpd-color-bg-canvas-default": "tomato",
|
||||
},
|
||||
};
|
||||
|
||||
constructor(
|
||||
@ -50,6 +53,13 @@ class Helpers {
|
||||
return this.app.settings.openUserSettings("Appearance");
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the appearance tab
|
||||
*/
|
||||
closeAppearanceTab() {
|
||||
return this.app.settings.closeDialog();
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare screenshot and hide the matrix chat
|
||||
* @param locator
|
||||
|
||||
@ -88,6 +88,27 @@ test.describe("Appearance user settings tab", () => {
|
||||
await expect(util.getThemePanel()).toMatchScreenshot("theme-panel-custom-theme-removed.png");
|
||||
},
|
||||
);
|
||||
|
||||
test(
|
||||
"should keep custom theme when reloading the page",
|
||||
{ tag: "@screenshot" },
|
||||
async ({ page, app, user, util }) => {
|
||||
await util.addCustomTheme();
|
||||
await util.getCustomTheme().click();
|
||||
await util.closeAppearanceTab();
|
||||
|
||||
await expect(page).toMatchScreenshot("window-custom-theme.png");
|
||||
|
||||
await page.reload();
|
||||
|
||||
await util.openAppearanceTab();
|
||||
// Assert that the custom theme is still selected after reloading the page
|
||||
await expect(util.getCustomTheme()).toBeChecked();
|
||||
|
||||
await util.closeAppearanceTab();
|
||||
await expect(page).toMatchScreenshot("window-custom-theme.png");
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
@ -1648,6 +1648,9 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
||||
return;
|
||||
}
|
||||
|
||||
// Re-apply theme now that account data (including custom_themes) is loaded, otherwise we might end up with the wrong theme applied if the user has custom themes enabled
|
||||
setTheme();
|
||||
|
||||
this.firstSyncComplete = true;
|
||||
this.firstSyncPromise.resolve();
|
||||
|
||||
|
||||
@ -78,6 +78,7 @@ jest.mock("matrix-js-sdk/src/oidc/authorize", () => ({
|
||||
// Stub out ThemeWatcher as the necessary bits for themes are done in element-web's index.html and thus are lacking here,
|
||||
// plus JSDOM's implementation of CSSStyleDeclaration has a bunch of differences to real browsers which cause issues.
|
||||
jest.mock("../../../../src/settings/watchers/ThemeWatcher");
|
||||
jest.mock("../../../../src/theme");
|
||||
|
||||
/** The matrix versions our mock server claims to support */
|
||||
const SERVER_SUPPORTED_MATRIX_VERSIONS = ["v1.1", "v1.5", "v1.6", "v1.8", "v1.9"];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user