mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Make filters object nullable and writing resolver tests
This commit is contained in:
parent
cde9b171af
commit
3ba19359a3
@ -12,13 +12,6 @@ export default class SearchUsersArgs {
|
||||
@Field(() => Int, { nullable: true })
|
||||
pageSize?: number
|
||||
|
||||
// Wolle: @Field(() => Boolean, { nullable: true })
|
||||
// filterByActivated?: boolean | null
|
||||
|
||||
// Wolle: @Field(() => Boolean, { nullable: true })
|
||||
// filterByDeleted?: boolean | null
|
||||
|
||||
// Wolle: shall this be nullable?
|
||||
@Field()
|
||||
@Field(() => SearchUsersFilters, { nullable: true })
|
||||
filters: SearchUsersFilters
|
||||
}
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
// Wolle: import { ArgsType, Field, InputType } from 'type-graphql'
|
||||
import { Field, InputType, ObjectType } from 'type-graphql'
|
||||
|
||||
@ObjectType()
|
||||
@InputType('SearchUsersFiltersInput')
|
||||
// Wolle: @ArgsType()
|
||||
export default class SearchUsersFilters {
|
||||
@Field(() => Boolean, { nullable: true, defaultValue: null })
|
||||
filterByActivated?: boolean | null
|
||||
|
||||
@ -268,10 +268,7 @@ describe('AdminResolver', () => {
|
||||
searchText: '',
|
||||
currentPage: 1,
|
||||
pageSize: 25,
|
||||
filters: {
|
||||
filterByActivated: null,
|
||||
filterByDeleted: null,
|
||||
},
|
||||
filters: null,
|
||||
}
|
||||
|
||||
describe('unauthenticated', () => {
|
||||
@ -333,8 +330,6 @@ describe('AdminResolver', () => {
|
||||
await userFactory(testEnv, bibiBloxberg)
|
||||
await userFactory(testEnv, stephenHawking)
|
||||
await userFactory(testEnv, garrickOllivander)
|
||||
// Wolle await userFactory(testEnv, XXX)
|
||||
// await userFactory(testEnv, XXX)
|
||||
})
|
||||
|
||||
afterAll(async () => {
|
||||
@ -358,7 +353,7 @@ describe('AdminResolver', () => {
|
||||
}),
|
||||
}
|
||||
|
||||
it('all users', async () => {
|
||||
it('all users by "filters === null"', async () => {
|
||||
await expect(
|
||||
query({
|
||||
query: searchUsers,
|
||||
@ -378,6 +373,30 @@ describe('AdminResolver', () => {
|
||||
)
|
||||
})
|
||||
|
||||
it('all users by "filterByActivated === null && filterByDeleted === null"', async () => {
|
||||
await expect(
|
||||
query({
|
||||
query: searchUsers,
|
||||
variables: {
|
||||
...variablesWithoutTextAndFilters,
|
||||
filters: {
|
||||
filterByActivated: null,
|
||||
filterByDeleted: null,
|
||||
},
|
||||
},
|
||||
}),
|
||||
).resolves.toEqual(
|
||||
expect.objectContaining({
|
||||
data: {
|
||||
searchUsers: {
|
||||
userCount: 4,
|
||||
userList: expect.arrayContaining(convertObjValuesToArray(allUsers)),
|
||||
},
|
||||
},
|
||||
}),
|
||||
)
|
||||
})
|
||||
|
||||
it('users with unchecked email', async () => {
|
||||
await expect(
|
||||
query({
|
||||
@ -425,6 +444,30 @@ describe('AdminResolver', () => {
|
||||
}),
|
||||
)
|
||||
})
|
||||
|
||||
it('no users with deleted account and unchecked email', async () => {
|
||||
await expect(
|
||||
query({
|
||||
query: searchUsers,
|
||||
variables: {
|
||||
...variablesWithoutTextAndFilters,
|
||||
filters: {
|
||||
filterByActivated: false,
|
||||
filterByDeleted: true,
|
||||
},
|
||||
},
|
||||
}),
|
||||
).resolves.toEqual(
|
||||
expect.objectContaining({
|
||||
data: {
|
||||
searchUsers: {
|
||||
userCount: 0,
|
||||
userList: [],
|
||||
},
|
||||
},
|
||||
}),
|
||||
)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@ -52,30 +52,16 @@ export class AdminResolver {
|
||||
@Query(() => SearchUsersResult)
|
||||
async searchUsers(
|
||||
@Args()
|
||||
{
|
||||
searchText,
|
||||
currentPage = 1,
|
||||
pageSize = 25,
|
||||
// Wolle: filters = {
|
||||
// filterByActivated: null,
|
||||
// filterByDeleted: null,
|
||||
// },
|
||||
filters = {
|
||||
filterByActivated: null,
|
||||
filterByDeleted: null,
|
||||
},
|
||||
}: SearchUsersArgs,
|
||||
{ searchText, currentPage = 1, pageSize = 25, filters }: SearchUsersArgs,
|
||||
): Promise<SearchUsersResult> {
|
||||
// Wolle
|
||||
console.log('filters: ', filters)
|
||||
const userRepository = getCustomRepository(UserRepository)
|
||||
|
||||
const filterCriteria: ObjectLiteral[] = []
|
||||
if (filters.filterByActivated !== null) {
|
||||
if (filters && filters.filterByActivated !== null) {
|
||||
filterCriteria.push({ emailChecked: filters.filterByActivated })
|
||||
}
|
||||
|
||||
if (filters.filterByDeleted !== null) {
|
||||
if (filters && filters.filterByDeleted !== null) {
|
||||
filterCriteria.push({ deletedAt: filters.filterByDeleted ? Not(IsNull()) : IsNull() })
|
||||
}
|
||||
|
||||
|
||||
@ -112,16 +112,12 @@ export const searchUsers = gql`
|
||||
$searchText: String!
|
||||
$currentPage: Int
|
||||
$pageSize: Int
|
||||
# Wolle $filterByActivated: Boolean
|
||||
# $filterByDeleted: Boolean
|
||||
$filters: SearchUsersFiltersInput!
|
||||
$filters: SearchUsersFiltersInput
|
||||
) {
|
||||
searchUsers(
|
||||
searchText: $searchText
|
||||
currentPage: $currentPage
|
||||
pageSize: $pageSize
|
||||
# Wolle filterByActivated: $filterByActivated # Wolle: put in 'filters' object?
|
||||
# filterByDeleted: $filterByDeleted
|
||||
filters: $filters
|
||||
) {
|
||||
userCount
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user