mattermost-mobile/app/client/rest/custom_profile_attributes.test.ts
Guillermo Vayá 0addf49021
[MM-62701] [MM-62176]Edit custom profile attributes in user profile (#8557)
* feat: Add support for custom profile attributes in edit profile form

feat: Add support for custom profile attributes in edit profile

refactor: Normalize whitespace in CustomAttribute type definition

fix: Resolve type mismatch for customAttributes in UserInfo interface

test: Add test for udpateCustomProfileAttributeValues method

fix typing, submit changes to server

missing files

test: Add tests for CustomProfileField component

fix naming

fix imports

fix

feat: Add field_refs hook for managing field references

feat: Make `setRef` ref parameter optional with default no-op implementation

refactor: Replace CustomProfileField with useFieldRefs for profile form

refactor: Optimize edit profile screen imports and custom attributes handling

refactor: Move custom attributes logic to remote actions in user.ts

address PR reviews

test: Add tests for custom attributes in edit profile

test: Add tests for EditProfile component with custom attributes

fix: Add UserModel type assertion to currentUser in edit profile tests

test: Add tests for ProfileForm custom attributes functionality

test: Add comprehensive tests for useFieldRefs hook

test: Add tests for fetchCustomAttributes and updateCustomAttributes

add tests

remove unneeded files

review changes

remove counter from hook

remove package.resolved

create interface for reuse of record

* fix signature type
2025-02-19 15:51:59 +01:00

51 lines
1.5 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import TestHelper from '@test/test_helper';
import type ClientBase from './base';
import type {ClientCustomAttributesMix} from './custom_profile_attributes';
describe('CustomAttributes', () => {
let client: ClientCustomAttributesMix & ClientBase;
beforeAll(() => {
client = TestHelper.createClient();
client.doFetch = jest.fn();
});
test('getCustomProfileAttributeFields', async () => {
await client.getCustomProfileAttributeFields();
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getCustomProfileAttributesRoute()}/fields`,
{method: 'get'},
);
});
test('getCustomProfileAttributeValues', async () => {
const userId = 'user1';
await client.getCustomProfileAttributeValues(userId);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getUserRoute(userId)}/custom_profile_attributes`,
{method: 'get'},
);
});
test('updateCustomProfileAttributeValues', async () => {
const values = {
field_1: 'value1',
field_2: 'value2',
};
await client.updateCustomProfileAttributeValues(values);
expect(client.doFetch).toHaveBeenCalledWith(
`${client.getCustomProfileAttributesRoute()}/values`,
{
method: 'patch',
body: values,
},
);
});
});