Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved Code Coverage in src/screens/Users/Users.tsx #3298

Merged
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
370 changes: 370 additions & 0 deletions src/screens/Users/Organization.mocks.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,370 @@
interface InterfaceAddress {
city: string;
countryCode: string;
dependentLocality: string;
line1: string;
line2: string;
postalCode: string;
sortingCode: string;
state: string;
}

interface InterfaceCreator {
_id: string;
firstName: string;
lastName: string;
image: string | null;
email: string;
createdAt: string;
}

interface InterfaceOrganization {
_id: string;
name: string;
image: string | null;
address: InterfaceAddress;
createdAt: string;
creator: InterfaceCreator;
}

interface InterfaceUser {
_id: string;
firstName: string;
lastName: string;
image: string | null;
email: string;
createdAt: string;
registeredEvents: [];
membershipRequests: [];
organizationsBlockedBy: InterfaceOrganization[];
joinedOrganizations: InterfaceOrganization[];
}

interface InterfaceAppUserProfile {
_id: string;
adminFor: { _id: string }[];
isSuperAdmin: boolean;
createdOrganizations: [];
createdEvents: [];
eventAdmin: [];
}

interface InterfaceMockUser {
user: InterfaceUser;
appUserProfile: InterfaceAppUserProfile;
}

export const createAddress = {

Check warning on line 57 in src/screens/Users/Organization.mocks.ts

Codecov / codecov/patch

src/screens/Users/Organization.mocks.ts#L57

Added line #L57 was not covered by tests
city: 'Kingston',
countryCode: 'JM',
dependentLocality: 'Sample Dependent Locality',
line1: '123 Jamaica Street',
line2: 'Apartment 456',
postalCode: 'JM12345',
sortingCode: 'ABC-123',
state: 'Kingston Parish',
};

export const createCreator = {

Check warning on line 68 in src/screens/Users/Organization.mocks.ts

Codecov / codecov/patch

src/screens/Users/Organization.mocks.ts#L68

Added line #L68 was not covered by tests
_id: '123',
firstName: 'Jack',
lastName: 'Smith',
image: null,
email: '[email protected]',
createdAt: '19/06/2022',
};

export const MOCK_USERS = [

Check warning on line 77 in src/screens/Users/Organization.mocks.ts

Codecov / codecov/patch

src/screens/Users/Organization.mocks.ts#L77

Added line #L77 was not covered by tests
{
user: {
_id: 'user1',
firstName: 'John',
lastName: 'Doe',
image: null,
email: '[email protected]',
createdAt: '2023-04-13T04:53:17.742+00:00',
registeredEvents: [],
membershipRequests: [],
organizationsBlockedBy: [
{
_id: 'xyz',
name: 'ABC',
image: null,
address: createAddress,
createdAt: '20/06/2022',
creator: {
_id: '123',
firstName: 'John',
lastName: 'Doe',
image: null,
email: '[email protected]',
createdAt: '20/06/2022',
},
},
],
joinedOrganizations: [
{
_id: 'abc',
name: 'Joined Organization 1',
image: null,
address: createAddress,
createdAt: '20/06/2022',
creator: {
_id: '123',
firstName: 'John',
lastName: 'Doe',
image: null,
email: '[email protected]',
createdAt: '20/06/2022',
},
},
],
},
appUserProfile: {
_id: 'user1',
adminFor: [
{
_id: '123',
},
],
isSuperAdmin: true,
createdOrganizations: [],
createdEvents: [],
eventAdmin: [],
},
},
{
user: {
_id: 'user2',
firstName: 'Jane',
lastName: 'Doe',
image: null,
email: '[email protected]',
createdAt: '2023-04-17T04:53:17.742+00:00',
registeredEvents: [],
membershipRequests: [],
organizationsBlockedBy: [
{
_id: '456',
name: 'ABC',
image: null,
address: createAddress,
createdAt: '21/06/2022',
creator: {
_id: '123',
firstName: 'John',
lastName: 'Doe',
image: null,
email: '[email protected]',
createdAt: '21/06/2022',
},
},
],
joinedOrganizations: [
{
_id: '123',
name: 'Palisadoes',
image: null,
address: createAddress,
createdAt: '21/06/2022',
creator: {
_id: '123',
firstName: 'John',
lastName: 'Doe',
image: null,
email: '[email protected]',
createdAt: '21/06/2022',
},
},
],
},
appUserProfile: {
_id: 'user2',
adminFor: [
{
_id: '123',
},
],
isSuperAdmin: false,
createdOrganizations: [],
createdEvents: [],
eventAdmin: [],
},
},
{
user: {
_id: 'user3',
firstName: 'Jack',
lastName: 'Smith',
image: null,
email: '[email protected]',
createdAt: '2023-04-09T04:53:17.742+00:00',
registeredEvents: [],
membershipRequests: [],
organizationsBlockedBy: [
{
_id: 'xyz',
name: 'ABC',
image: null,
address: createAddress,
createdAt: '19/06/2022',
creator: createCreator,
},
],
joinedOrganizations: [
{
_id: 'abc',
name: 'Joined Organization 1',
image: null,
address: createAddress,
createdAt: '19/06/2022',
creator: createCreator,
},
],
},
appUserProfile: {
_id: 'user3',
adminFor: [],
isSuperAdmin: false,
createdOrganizations: [],
createdEvents: [],
eventAdmin: [],
},
},
];

export const generateMockUser = (

Check warning on line 236 in src/screens/Users/Organization.mocks.ts

Codecov / codecov/patch

src/screens/Users/Organization.mocks.ts#L236

Added line #L236 was not covered by tests
id: string,
firstName: string,
lastName: string,
email: string,
createdAt: string,
isSuperAdmin = false,
): InterfaceMockUser => ({

Check warning on line 243 in src/screens/Users/Organization.mocks.ts

Codecov / codecov/patch

src/screens/Users/Organization.mocks.ts#L243

Added line #L243 was not covered by tests
user: {
_id: id,
firstName,
lastName,
image: null,
email,
createdAt,
registeredEvents: [],
membershipRequests: [],
organizationsBlockedBy: [
{
_id: 'xyz',
name: 'ABC',
image: null,
address: createAddress,
createdAt: '19/06/2022',
creator: createCreator,
},
],
joinedOrganizations: [
{
_id: 'abc',
name: 'Joined Organization 1',
image: null,
address: createAddress,
createdAt: '19/06/2022',
creator: createCreator,
},
],
},
appUserProfile: {
_id: id,
adminFor: isSuperAdmin ? [{ _id: '123' }] : [],
isSuperAdmin,
createdOrganizations: [],
createdEvents: [],
eventAdmin: [],
},
});

export const MOCK_USERS2 = [

Check warning on line 284 in src/screens/Users/Organization.mocks.ts

Codecov / codecov/patch

src/screens/Users/Organization.mocks.ts#L284

Added line #L284 was not covered by tests
...MOCK_USERS,
generateMockUser(
'user4',
'Emma',
'Johnson',
'[email protected]',
'2023-04-22T04:53:17.742+00:00',
),
generateMockUser(
'user5',
'Liam',
'Smith',
'[email protected]',
'2023-04-23T04:53:17.742+00:00',
),
generateMockUser(
'user6',
'Olivia',
'Brown',
'[email protected]',
'2023-04-24T04:53:17.742+00:00',
),
generateMockUser(
'user7',
'Noah',
'Williams',
'[email protected]',
'2023-04-25T04:53:17.742+00:00',
),
generateMockUser(
'user8',
'Ava',
'Jones',
'[email protected]',
'2023-04-26T04:53:17.742+00:00',
),
generateMockUser(
'user9',
'Ethan',
'Garcia',
'[email protected]',
'2023-04-27T04:53:17.742+00:00',
),
generateMockUser(
'user10',
'Sophia',
'Martinez',
'[email protected]',
'2023-04-28T04:53:17.742+00:00',
),
generateMockUser(
'user11',
'Mason',
'Davis',
'[email protected]',
'2023-04-29T04:53:17.742+00:00',
),
generateMockUser(
'user12',
'Isabella',
'Rodriguez',
'[email protected]',
'2023-04-30T04:53:17.742+00:00',
),
generateMockUser(
'user13',
'Logan',
'Wilson',
'[email protected]',
'2023-04-08T04:53:17.742+00:00',
),
generateMockUser(
'user14',
'Mia',
'Anderson',
'[email protected]',
'2023-04-07T04:53:17.742+00:00',
),
generateMockUser(
'user15',
'Lucas',
'Thomas',
'[email protected]',
'2023-04-05T04:53:17.742+00:00',
),
];
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ export const MOCKS = [
lastName: 'Doe',
image: null,
email: 'john@example.com',
createdAt: '20/06/2022',
createdAt: '2022-06-20T00:00:00.000Z',
registeredEvents: [],
membershipRequests: [],
organizationsBlockedBy: [
@@ -116,7 +116,7 @@ export const MOCKS = [
firstName: 'Jane',
lastName: 'Doe',
image: null,
email: 'john@example.com',
email: 'jane@example.com',
createdAt: '20/06/2022',
registeredEvents: [],
membershipRequests: [],
@@ -351,7 +351,7 @@ export const MOCKS2 = [
firstName: 'Jane',
lastName: 'Doe',
image: null,
email: 'john@example.com',
email: 'jane@example.com',
createdAt: '20/06/2022',
registeredEvents: [],
membershipRequests: [],
@@ -473,32 +473,3 @@ export const MOCKS2 = [
},
},
];

export const EMPTY_MOCKS = [
{
request: {
query: USER_LIST,
variables: {
first: 12,
skip: 0,
firstName_contains: '',
lastName_contains: '',
},
},
result: {
data: {
users: [],
},
},
},
{
request: {
query: ORGANIZATION_CONNECTION_LIST,
},
result: {
data: {
organizationsConnection: [],
},
},
},
];
978 changes: 148 additions & 830 deletions src/screens/Users/Users.spec.tsx

Large diffs are not rendered by default.

7 changes: 1 addition & 6 deletions src/screens/Users/Users.tsx
Original file line number Diff line number Diff line change
@@ -211,7 +211,6 @@ const Users = (): JSX.Element => {
const inputValue = inputElement?.value || '';
handleSearch(inputValue);
};
/* istanbul ignore next */
const resetAndRefetch = (): void => {
refetchUsers({
first: perPageResult,
@@ -222,7 +221,6 @@ const Users = (): JSX.Element => {
});
setHasMore(true);
};
/* istanbul ignore next */
const loadMoreUsers = (skipValue: number, limitVal: number): void => {
setIsLoadingMore(true);
fetchMore({
@@ -430,10 +428,7 @@ const Users = (): JSX.Element => {
/>
)}
<InfiniteScroll
dataLength={
/* istanbul ignore next */
displayedUsers.length ?? 0
}
dataLength={displayedUsers.length ?? 0}
syedali237 marked this conversation as resolved.
Show resolved Hide resolved
next={() => {
loadMoreUsers(displayedUsers.length, perPageResult);
}}
234 changes: 234 additions & 0 deletions src/screens/Users/UsersMocks.mocks.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
import {
ORGANIZATION_CONNECTION_LIST,
USER_LIST,
} from 'GraphQl/Queries/Queries';

import { MOCK_USERS, MOCK_USERS2 } from './Organization.mocks';

export const EMPTY_MOCKS = [

Check warning on line 8 in src/screens/Users/UsersMocks.mocks.ts

Codecov / codecov/patch

src/screens/Users/UsersMocks.mocks.ts#L8

Added line #L8 was not covered by tests
{
request: {
query: USER_LIST,
variables: {
first: 12,
skip: 0,
firstName_contains: '',
lastName_contains: '',
},
},
result: {
data: {
users: [],
},
},
},
{
request: {
query: ORGANIZATION_CONNECTION_LIST,
},
result: {
data: {
organizationsConnection: [],
},
},
},
];

export const MOCKS_NEW_2 = [

Check warning on line 37 in src/screens/Users/UsersMocks.mocks.ts

Codecov / codecov/patch

src/screens/Users/UsersMocks.mocks.ts#L37

Added line #L37 was not covered by tests
{
request: {
query: USER_LIST,
variables: {
first: 12,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
},
},
result: {
data: {
users: MOCK_USERS.slice(0, 12),
},
},
},
{
request: {
query: USER_LIST,
variables: {
first: 24,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
},
},
result: {
data: {
users: MOCK_USERS.slice(12, 24),
},
},
},
];
syedali237 marked this conversation as resolved.
Show resolved Hide resolved

export const MOCKS_NEW = [

Check warning on line 74 in src/screens/Users/UsersMocks.mocks.ts

Codecov / codecov/patch

src/screens/Users/UsersMocks.mocks.ts#L74

Added line #L74 was not covered by tests
{
request: {
query: USER_LIST,
variables: {
first: 12,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
},
},
result: {
data: {
users: MOCK_USERS,
},
},
},
{
request: {
query: ORGANIZATION_CONNECTION_LIST,
},
result: {
data: {
organizationsConnection: [],
},
},
},
];

export const MOCKS_NEW2 = [

Check warning on line 104 in src/screens/Users/UsersMocks.mocks.ts

Codecov / codecov/patch

src/screens/Users/UsersMocks.mocks.ts#L104

Added line #L104 was not covered by tests
{
request: {
query: USER_LIST,
variables: {
first: 12,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
},
},
result: {
data: {
users: MOCK_USERS2.slice(0, 12),
},
},
},
{
request: {
query: ORGANIZATION_CONNECTION_LIST,
},
result: {
data: {
organizationsConnection: [],
},
},
},
{
request: {
query: USER_LIST,
variables: {
first: 24,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
filter: '',
},
},
result: {
data: {
users: MOCK_USERS2.slice(12, 15),
},
},
},
];

export const MOCKS_NEW3 = [

Check warning on line 152 in src/screens/Users/UsersMocks.mocks.ts

Codecov / codecov/patch

src/screens/Users/UsersMocks.mocks.ts#L152

Added line #L152 was not covered by tests
{
request: {
query: USER_LIST,
variables: {
first: 12,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
},
},
result: {
data: {
users: MOCK_USERS2.slice(0, 12),
},
},
},
{
request: {
query: ORGANIZATION_CONNECTION_LIST,
},
result: {
data: {
organizationsConnection: [],
},
},
},
{
request: {
query: USER_LIST,
variables: {
first: 24,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
filter: '',
},
},
result: {
data: {
users: MOCK_USERS2.slice(11, 15),
},
},
},
{
request: {
query: USER_LIST,
variables: {
first: 24,
skip: 0,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
filter: '',
},
},
result: {
data: {
users: MOCK_USERS2.slice(11, 15),
},
},
},
{
request: {
query: USER_LIST,
variables: {
first: 13,
skip: 3,
firstName_contains: '',
lastName_contains: '',
order: 'createdAt_DESC',
filter: '',
},
},
result: {
data: {
users: [],
},
},
},
];