Writing resolver tests

This commit is contained in:
Wolfgang Huß 2022-05-19 10:16:23 +02:00
parent c5ac4140a8
commit cde9b171af
3 changed files with 50 additions and 31 deletions

View File

@ -1,4 +1,4 @@
import { Args, ArgsType, Field, Int } from 'type-graphql'
import { ArgsType, Field, Int } from 'type-graphql'
import SearchUsersFilters from '@arg/SearchUsersFilters'
@ArgsType()

View File

@ -1,6 +1,7 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import { convertObjValuesToArray } from '@/util/utilities'
import { testEnvironment, resetToken, cleanDB } from '@test/helpers'
import { userFactory } from '@/seeds/factory/user'
import { creationFactory } from '@/seeds/factory/creation'
@ -342,6 +343,21 @@ describe('AdminResolver', () => {
})
describe('find', () => {
const allUsers = {
bibi: expect.objectContaining({
email: 'bibi@bloxberg.de',
}),
garrick: expect.objectContaining({
email: 'garrick@ollivander.com',
}),
peter: expect.objectContaining({
email: 'peter@lustig.de',
}),
stephen: expect.objectContaining({
email: 'stephen@hawking.uk',
}),
}
it('all users', async () => {
await expect(
query({
@ -355,27 +371,14 @@ describe('AdminResolver', () => {
data: {
searchUsers: {
userCount: 4,
userList: expect.arrayContaining([
expect.objectContaining({
email: 'bibi@bloxberg.de',
}),
expect.objectContaining({
email: 'garrick@ollivander.com',
}),
expect.objectContaining({
email: 'peter@lustig.de',
}),
expect.objectContaining({
email: 'stephen@hawking.uk',
}),
]),
userList: expect.arrayContaining(convertObjValuesToArray(allUsers)),
},
},
}),
)
})
it.only('users with unchecked email', async () => {
it('users with unchecked email', async () => {
await expect(
query({
query: searchUsers,
@ -391,21 +394,32 @@ describe('AdminResolver', () => {
expect.objectContaining({
data: {
searchUsers: {
userCount: 4,
userList: expect.arrayContaining([
expect.objectContaining({
email: 'bibi@bloxberg.de',
userCount: 1,
userList: expect.arrayContaining([allUsers.garrick]),
},
},
}),
expect.objectContaining({
email: 'garrick@ollivander.com',
)
})
it('users with deleted account', async () => {
await expect(
query({
query: searchUsers,
variables: {
...variablesWithoutTextAndFilters,
filters: {
filterByActivated: null,
filterByDeleted: true,
},
},
}),
).resolves.toEqual(
expect.objectContaining({
email: 'peter@lustig.de',
}),
expect.objectContaining({
email: 'stephen@hawking.uk',
}),
]),
data: {
searchUsers: {
userCount: 1,
userList: expect.arrayContaining([allUsers.stephen]),
},
},
}),

View File

@ -0,0 +1,5 @@
export const convertObjValuesToArray = (obj: { [x: string]: string }): Array<string> => {
return Object.keys(obj).map(function (key) {
return obj[key]
})
}