Skip to content

Commit ad32d2f

Browse files
committed
Fix color scheme when legacy 'system' option is stored
1 parent 1e85c50 commit ad32d2f

File tree

4 files changed

+51
-2
lines changed

4 files changed

+51
-2
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
55

66
## [Unreleased]
77

8+
## [1.4.1] - 2022-06-20
9+
### Fixed
10+
- Fix color scheme when legacy 'system' option is stored.
11+
812
## [1.4.0] - 2022-06-19
913
### Changed
1014
- Update Svelte Material UI to 6.0.0-beta.16.
@@ -58,7 +62,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
5862
### Added
5963
- Initial release.
6064

61-
[Unreleased]: https://github.com/msmolens/treetop/compare/v1.4.0...HEAD
65+
[Unreleased]: https://github.com/msmolens/treetop/compare/v1.4.1...HEAD
66+
[1.4.1]: https://github.com/msmolens/treetop/compare/v1.4.1...HEAD
6267
[1.4.0]: https://github.com/msmolens/treetop/releases/tag/v1.4.0
6368
[1.3.0]: https://github.com/msmolens/treetop/releases/tag/v1.3.0
6469
[1.2.0]: https://github.com/msmolens/treetop/releases/tag/v1.2.0

src/background_script/options.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import get from 'lodash-es/get';
12
import browser from 'webextension-polyfill';
23

34
import type * as Treetop from '@Treetop/treetop/types';
@@ -12,6 +13,11 @@ export const setDefaultOptions = async (
1213
// Get stored options
1314
const storedOptions = await browser.storage.local.get();
1415

16+
// Remove values that are no longer supported from stored options
17+
if (get(storedOptions, 'colorScheme') === 'system') {
18+
delete storedOptions.colorScheme;
19+
}
20+
1521
// Merge stored options into default options
1622
const updatedOptions = {
1723
...defaultOptions,

src/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"manifest_version": 2,
33
"name": "Treetop",
44
"description": "__MSG_extensionDescription__",
5-
"version": "1.4.0",
5+
"version": "1.4.1",
66
"author": "Max Smolens",
77
"homepage_url": "https://github.com/msmolens/treetop",
88
"default_locale": "en",

test/background_script/options.test.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,41 @@ it('sets default options and leaves existing options unchanged', async () => {
7777

7878
await setDefaultOptions(defaultOptions);
7979
});
80+
81+
describe('colorScheme option', () => {
82+
beforeEach(() => {
83+
defaultOptions = {
84+
colorScheme: 'light',
85+
};
86+
});
87+
88+
it("overwrites legacy 'system' colorScheme option", async () => {
89+
const storedOptions = {
90+
colorScheme: 'system',
91+
};
92+
93+
const updatedOptions = {
94+
...defaultOptions,
95+
};
96+
97+
mockBrowser.storage.local.get.expect.andResolve(storedOptions);
98+
mockBrowser.storage.local.set.expect(updatedOptions);
99+
100+
await setDefaultOptions(defaultOptions);
101+
});
102+
103+
it("doesn't overwrite non-legacy colorScheme option", async () => {
104+
const storedOptions = {
105+
colorScheme: 'dark',
106+
};
107+
108+
const updatedOptions = {
109+
...storedOptions,
110+
};
111+
112+
mockBrowser.storage.local.get.expect.andResolve(storedOptions);
113+
mockBrowser.storage.local.set.expect(updatedOptions);
114+
115+
await setDefaultOptions(defaultOptions);
116+
});
117+
});

0 commit comments

Comments
 (0)