Skip to content

Commit

Permalink
fix: Fix keys of v1.preferences.fetch
Browse files Browse the repository at this point in the history
  • Loading branch information
neet committed Apr 8, 2023
1 parent 8320a52 commit 436b72e
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 1 deletion.
17 changes: 17 additions & 0 deletions src/serializers/transform-keys.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,21 @@ describe('transformKeys', () => {
keyOne: [{ valueOne: 'value' }],
});
});

it('does not transform special characters', () => {
expect(
transformKeys(
{
key: 'value',
'key:key': 'value',
_key: 3,
},
camelCase,
),
).toEqual({
key: 'value',
'key:key': 'value',
_key: 3,
});
});
});
19 changes: 18 additions & 1 deletion src/serializers/transform-keys.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { isObject } from './is-object';

export const transformKeys = <T>(
const _transformKeys = <T>(
data: unknown,
transform: (key: string) => string,
): T => {
Expand All @@ -19,3 +19,20 @@ export const transformKeys = <T>(

return data as T;
};

export const transformKeys = <T>(
data: unknown,
transform: (key: string) => string,
): T => {
const f = (key: string) => {
// `PATCH /v1/preferences` uses `:` as a delimiter
if (key.includes(':')) return key;

// `PATCH /v2/filters` uses _destroy as a special key
if (key.startsWith('_')) return key;

return transform(key);
};

return _transformKeys(data, f);
};
8 changes: 8 additions & 0 deletions tests/v1/preferences.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
it('shows preferences', () => {
return clients.use(async (client) => {
const preferences = await client.v1.preferences.fetch();

expect(preferences['posting:default:language']).toBeDefined();
expect(preferences['posting:default:sensitive']).toBeDefined();
});
});

0 comments on commit 436b72e

Please sign in to comment.