Skip to content

Commit

Permalink
🚧 progress: Start splitting settings#get into sync/async.
Browse files Browse the repository at this point in the history
  • Loading branch information
make-github-pseudonymous-again committed May 23, 2024
1 parent 3e4e4cd commit 1737b43
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 19 deletions.
24 changes: 12 additions & 12 deletions imports/api/endpoint/settings/reset.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ server(__filename, () => {
const key = 'currency';
const value = 123_819_832;

assert.strictEqual(get(userId, key), defaults[key]);
assert.strictEqual(await get(userId, key), defaults[key]);

await invoke(update, {userId}, [key, value]);

assert.strictEqual(get(userId, key), value);
assert.strictEqual(await get(userId, key), value);

await invoke(reset, {userId}, [key]);

assert.strictEqual(get(userId, key), defaults[key]);
assert.strictEqual(await get(userId, key), defaults[key]);
});

it('is idempotent', async () => {
Expand All @@ -32,23 +32,23 @@ server(__filename, () => {
const key = 'x';
const value = 123_819_832;

assert.strictEqual(get(userId, key), defaults[key]);
assert.strictEqual(await get(userId, key), defaults[key]);

await invoke(reset, {userId}, [key]);

assert.strictEqual(get(userId, key), defaults[key]);
assert.strictEqual(await get(userId, key), defaults[key]);

await invoke(update, {userId}, [key, value]);

assert.strictEqual(get(userId, key), value);
assert.strictEqual(await get(userId, key), value);

await invoke(reset, {userId}, [key]);

assert.strictEqual(get(userId, key), defaults[key]);
assert.strictEqual(await get(userId, key), defaults[key]);

await invoke(reset, {userId}, [key]);

assert.strictEqual(get(userId, key), defaults[key]);
assert.strictEqual(await get(userId, key), defaults[key]);
});

it('cannot reset a setting if not logged in', async () => {
Expand All @@ -70,13 +70,13 @@ server(__filename, () => {
await invoke(update, {userId}, [key, value]);
await invoke(update, {userId: `${userId}x`}, [key, valueX]);

assert.strictEqual(get(userId, key), value);
assert.strictEqual(get(`${userId}x`, key), valueX);
assert.strictEqual(await get(userId, key), value);
assert.strictEqual(await get(`${userId}x`, key), valueX);

await invoke(reset, {userId}, [key]);
assert.strictEqual(get(`${userId}x`, key), valueX);
assert.strictEqual(await get(`${userId}x`, key), valueX);

await invoke(reset, {userId}, [key]);
assert.strictEqual(get(`${userId}x`, key), valueX);
assert.strictEqual(await get(`${userId}x`, key), valueX);
});
});
10 changes: 5 additions & 5 deletions imports/api/endpoint/settings/update.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ server(__filename, () => {
const key = 'x';
const value = 123_819_832;

assert.strictEqual(get(userId, key), defaults[key]);
assert.strictEqual(await get(userId, key), defaults[key]);

await invoke(update, {userId}, [key, value]);

assert.strictEqual(get(userId, key), value);
assert.strictEqual(await get(userId, key), value);
});

it('can update a setting', async () => {
Expand All @@ -30,11 +30,11 @@ server(__filename, () => {

await invoke(update, {userId}, [key, value]);

assert.strictEqual(get(userId, key), value);
assert.strictEqual(await get(userId, key), value);

await invoke(update, {userId}, [key, updated]);

assert.strictEqual(get(userId, key), updated);
assert.strictEqual(await get(userId, key), updated);
});

it('cannot set a setting if not logged in', async () => {
Expand Down Expand Up @@ -70,6 +70,6 @@ server(__filename, () => {

await invoke(update, {userId}, [key, value]);

assert.strictEqual(get(`${userId}x`, key), defaults[key]);
assert.strictEqual(await get(`${userId}x`, key), defaults[key]);
});
});
11 changes: 10 additions & 1 deletion imports/api/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,20 @@ export const defaults: UserSettings = {
'displayed-week-days': [...ALL_WEEK_DAYS],
};

export function get(owner: string, key: string) {
export function getSync(owner: string, key: string) {
const item = findOneSync(Settings, {owner, key});
if (item === undefined) {
return defaults[key];
}

return item.value;
}

export async function get(owner: string, key: string) {
const item = await Settings.findOneAsync({owner, key});
if (item === undefined) {
return defaults[key];
}

return item.value;
}
2 changes: 1 addition & 1 deletion imports/i18n/datetime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import intervalToDuration from 'date-fns/intervalToDuration';

import startOfToday from 'date-fns/startOfToday';

import {get as getSetting} from '../api/settings';
import {getSync as getSetting} from '../api/settings';

import {useSettingCached} from '../ui/settings/hooks';
import {
Expand Down

0 comments on commit 1737b43

Please sign in to comment.