test: improve utils coverage (#4230)

* test: improve utils coverage

* refactor: review - rename isDefined to isNonNullable, update tests and return statement
This commit is contained in:
Thaïs
2024-02-29 13:03:52 -03:00
committed by GitHub
parent 6ec0e5e995
commit 30df6c10ea
85 changed files with 396 additions and 240 deletions

View File

@ -22,7 +22,7 @@ import {
} from '@/ui/input/components/Checkbox';
import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope';
import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
const StyledEditableTitleInput = styled.input<{
completed: boolean;
@ -166,7 +166,7 @@ export const ActivityTitle = ({ activityId }: ActivityTitleProps) => {
});
};
const completed = isDefined(activity.completedAt);
const completed = isNonNullable(activity.completedAt);
return (
<StyledContainer>

View File

@ -8,7 +8,7 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi
import { getEmptyPageInfo } from '@/object-record/cache/utils/getEmptyPageInfo';
import { useMapConnectionToRecords } from '@/object-record/hooks/useMapConnectionToRecords';
import { ObjectRecordConnection } from '@/object-record/types/ObjectRecordConnection';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
export const useActivityConnectionUtils = () => {
const mapConnectionToRecords = useMapConnectionToRecords();
@ -19,7 +19,7 @@ export const useActivityConnectionUtils = () => {
comments: ObjectRecordConnection<Comment>;
},
) => {
if (!isDefined(activityWithConnections)) {
if (!isNonNullable(activityWithConnections)) {
throw new Error('Activity with connections is not defined');
}

View File

@ -7,7 +7,7 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
import { Nullable } from '~/types/Nullable';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
export const useActivityTargetObjectRecords = ({
activityId,
@ -31,7 +31,7 @@ export const useActivityTargetObjectRecords = ({
.map<Nullable<ActivityTargetWithTargetRecord>>((activityTarget) => {
const correspondingObjectMetadataItem = objectMetadataItems.find(
(objectMetadataItem) =>
isDefined(activityTarget[objectMetadataItem.nameSingular]) &&
isNonNullable(activityTarget[objectMetadataItem.nameSingular]) &&
!objectMetadataItem.isSystem,
);
@ -47,7 +47,7 @@ export const useActivityTargetObjectRecords = ({
targetObjectNameSingular: correspondingObjectMetadataItem.nameSingular,
};
})
.filter(isDefined);
.filter(isNonNullable);
return {
activityTargetObjectRecords,

View File

@ -6,7 +6,7 @@ import { triggerAttachRelationOptimisticEffect } from '@/apollo/optimistic-effec
import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems';
import { getObjectMetadataItemByNameSingular } from '@/object-metadata/utils/getObjectMetadataItemBySingularName';
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
export const useAttachRelationInBothDirections = () => {
const { objectMetadataItems } = useObjectMetadataItems();
@ -46,7 +46,7 @@ export const useAttachRelationInBothDirections = () => {
(field) => field.name === fieldNameOnSourceRecord,
);
if (!isDefined(fieldMetadataItemOnSourceRecord)) {
if (!isNonNullable(fieldMetadataItemOnSourceRecord)) {
throw new Error(
`Field ${fieldNameOnSourceRecord} not found on object ${sourceObjectNameSingular}`,
);
@ -57,7 +57,7 @@ export const useAttachRelationInBothDirections = () => {
objectMetadataItems,
});
if (!isDefined(relationDefinition)) {
if (!isNonNullable(relationDefinition)) {
throw new Error(
`Relation metadata not found for field ${fieldNameOnSourceRecord} on object ${sourceObjectNameSingular}`,
);

View File

@ -14,7 +14,7 @@ import { useCreateOneRecordInCache } from '@/object-record/hooks/useCreateOneRec
import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
import { WorkspaceMember } from '@/workspace-member/types/WorkspaceMember';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
export const useCreateActivityInCache = () => {
const { createManyRecordsInCache: createManyActivityTargetsInCache } =
@ -71,7 +71,7 @@ export const useCreateActivityInCache = () => {
return targetObject;
})
.filter(isDefined);
.filter(isNonNullable);
const activityTargetsToCreate =
makeActivityTargetsToCreateFromTargetableObjects({

View File

@ -5,7 +5,7 @@ import { ActivityType } from '@/activities/types/Activity';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
import { useRecordTableStates } from '@/object-record/record-table/hooks/internal/useRecordTableStates';
import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
import { ActivityTargetableObject } from '../types/ActivityTargetableEntity';
@ -47,7 +47,7 @@ export const useOpenCreateActivityDrawerForSelectedRowIds = (
targetObjectRecord,
};
})
.filter(isDefined);
.filter(isNonNullable);
if (relatedEntities) {
activityTargetableObjectArray =

View File

@ -16,7 +16,7 @@ import { objectShowPageTargetableObjectState } from '@/activities/timeline/state
import { Activity } from '@/activities/types/Activity';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
// TODO: create a generic way to have records only in cache for create mode and delete them afterwards ?
export const useUpsertActivity = () => {
@ -85,7 +85,7 @@ export const useUpsertActivity = () => {
makeActivityWithConnection(activityToCreate);
if (weAreOnTaskPage) {
if (isDefined(activityWithConnection.completedAt)) {
if (isNonNullable(activityWithConnection.completedAt)) {
injectActivitiesQueries({
activitiesFilters: currentCompletedTaskQueryVariables?.filter,
activitiesOrderByVariables:
@ -125,7 +125,7 @@ export const useUpsertActivity = () => {
const injectOnlyInIdFilterForNotesQueries =
activityWithConnection.type !== 'Note';
if (isDefined(currentCompletedTaskQueryVariables)) {
if (isNonNullable(currentCompletedTaskQueryVariables)) {
injectActivitiesQueries({
activitiesFilters: currentCompletedTaskQueryVariables?.filter,
activitiesOrderByVariables:
@ -137,7 +137,7 @@ export const useUpsertActivity = () => {
});
}
if (isDefined(currentIncompleteTaskQueryVariables)) {
if (isNonNullable(currentIncompleteTaskQueryVariables)) {
injectActivitiesQueries({
activitiesFilters:
currentIncompleteTaskQueryVariables?.filter ?? {},
@ -150,7 +150,7 @@ export const useUpsertActivity = () => {
});
}
if (isDefined(currentNotesQueryVariables)) {
if (isNonNullable(currentNotesQueryVariables)) {
injectActivitiesQueries({
activitiesFilters: currentNotesQueryVariables?.filter,
activitiesOrderByVariables: currentNotesQueryVariables?.orderBy,

View File

@ -28,7 +28,7 @@ import { mapToRecordId } from '@/object-record/utils/mapToObjectId';
import { IconPlus, IconTrash } from '@/ui/display/icon';
import { IconButton } from '@/ui/input/button/components/IconButton';
import { isRightDrawerOpenState } from '@/ui/layout/right-drawer/states/isRightDrawerOpenState';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
const StyledButtonContainer = styled.div`
display: inline-flex;
@ -109,7 +109,10 @@ export const ActivityActionBar = () => {
setIsRightDrawerOpen(false);
if (viewableActivityId) {
if (isActivityInCreateMode && isDefined(temporaryActivityForEditor)) {
if (
isActivityInCreateMode &&
isNonNullable(temporaryActivityForEditor)
) {
deleteActivityFromCache(temporaryActivityForEditor);
setTemporaryActivityForEditor(null);
} else {
@ -136,7 +139,7 @@ export const ActivityActionBar = () => {
});
} else if (
weAreOnObjectShowPage &&
isDefined(objectShowPageTargetableObject)
isNonNullable(objectShowPageTargetableObject)
) {
removeFromActivitiesQueries({
activityIdToRemove: viewableActivityId,
@ -146,7 +149,7 @@ export const ActivityActionBar = () => {
FIND_MANY_TIMELINE_ACTIVITIES_ORDER_BY,
});
if (isDefined(currentCompletedTaskQueryVariables)) {
if (isNonNullable(currentCompletedTaskQueryVariables)) {
removeFromActivitiesQueries({
activityIdToRemove: viewableActivityId,
targetableObjects: [objectShowPageTargetableObject],
@ -157,7 +160,7 @@ export const ActivityActionBar = () => {
});
}
if (isDefined(currentIncompleteTaskQueryVariables)) {
if (isNonNullable(currentIncompleteTaskQueryVariables)) {
removeFromActivitiesQueries({
activityIdToRemove: viewableActivityId,
targetableObjects: [objectShowPageTargetableObject],
@ -168,7 +171,7 @@ export const ActivityActionBar = () => {
});
}
if (isDefined(currentNotesQueryVariables)) {
if (isNonNullable(currentNotesQueryVariables)) {
removeFromActivitiesQueries({
activityIdToRemove: viewableActivityId,
targetableObjects: [objectShowPageTargetableObject],

View File

@ -12,7 +12,7 @@ import { Activity } from '@/activities/types/Activity';
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
import { sortObjectRecordByDateField } from '@/object-record/utils/sortObjectRecordByDateField';
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
export const TimelineQueryEffect = ({
targetableObject,
@ -31,7 +31,7 @@ export const TimelineQueryEffect = ({
targetableObjects: [targetableObject],
activitiesFilters: {},
activitiesOrderByVariables: FIND_MANY_TIMELINE_ACTIVITIES_ORDER_BY,
skip: !isDefined(targetableObject),
skip: !isNonNullable(targetableObject),
});
const [timelineActivitiesNetworking, setTimelineActivitiesNetworking] =
@ -41,7 +41,7 @@ export const TimelineQueryEffect = ({
useRecoilState(timelineActivitiesForGroupState);
useEffect(() => {
if (!isDefined(targetableObject)) {
if (!isNonNullable(targetableObject)) {
return;
}

View File

@ -13,7 +13,7 @@ import { getRecordsFromRecordConnection } from '@/object-record/cache/utils/getR
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
import { sortByAscString } from '~/utils/array/sortByAscString';
import { isDefined } from '~/utils/isDefined';
import { isNonNullable } from '~/utils/isNonNullable';
export const useTimelineActivities = ({
targetableObject,
@ -27,7 +27,7 @@ export const useTimelineActivities = ({
);
useEffect(() => {
if (isDefined(targetableObject)) {
if (isNonNullable(targetableObject)) {
setObjectShowPageTargetableObject(targetableObject);
}
}, [targetableObject, setObjectShowPageTargetableObject]);
@ -100,7 +100,7 @@ export const useTimelineActivities = ({
const activities = activitiesWithConnection
?.map(makeActivityWithoutConnection as any)
.map(({ activity }: any) => activity as any)
.filter(isDefined);
.filter(isNonNullable);
return {
activities,