Add composite fields to aggregation (#8518)
## Context This PR introduces a first aggregation for a composite field ## Test <img width="1074" alt="Screenshot 2024-11-15 at 15 37 05" src="https://github.com/user-attachments/assets/db2563f9-26b7-421f-9431-48fc13bce49e">
This commit is contained in:
@ -0,0 +1,18 @@
|
||||
import { formatColumnNameFromCompositeFieldAndSubfield } from 'src/engine/twenty-orm/utils/format-column-name-from-composite-field-and-subfield.util';
|
||||
|
||||
describe('formatColumnNameFromCompositeFieldAndSubfield', () => {
|
||||
it('should return fieldName when subFieldName is not defined', () => {
|
||||
const result = formatColumnNameFromCompositeFieldAndSubfield('firstName');
|
||||
|
||||
expect(result).toBe('firstName');
|
||||
});
|
||||
|
||||
it('should return concatenated fieldName and capitalized subFieldName when subFieldName is defined', () => {
|
||||
const result = formatColumnNameFromCompositeFieldAndSubfield(
|
||||
'user',
|
||||
'firstName',
|
||||
);
|
||||
|
||||
expect(result).toBe('userFirstName');
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,13 @@
|
||||
import { capitalize } from 'src/utils/capitalize';
|
||||
import { isDefined } from 'src/utils/is-defined';
|
||||
|
||||
export const formatColumnNameFromCompositeFieldAndSubfield = (
|
||||
fieldName: string,
|
||||
subFieldName?: string,
|
||||
): string => {
|
||||
if (isDefined(subFieldName)) {
|
||||
return `${fieldName}${capitalize(subFieldName)}`;
|
||||
}
|
||||
|
||||
return fieldName;
|
||||
};
|
||||
Reference in New Issue
Block a user