Writing tests, a start

This commit is contained in:
Wolfgang Huß 2022-05-18 14:45:59 +02:00
parent 0f8ffb5860
commit c5ac4140a8

View File

@ -11,6 +11,7 @@ import { garrickOllivander } from '@/seeds/users/garrick-ollivander'
import {
deleteUser,
unDeleteUser,
searchUsers,
createPendingCreation,
createPendingCreations,
updatePendingCreation,
@ -261,6 +262,160 @@ describe('AdminResolver', () => {
})
})
describe('search users', () => {
const variablesWithoutTextAndFilters = {
searchText: '',
currentPage: 1,
pageSize: 25,
filters: {
filterByActivated: null,
filterByDeleted: null,
},
}
describe('unauthenticated', () => {
it('returns an error', async () => {
await expect(
query({
query: searchUsers,
variables: {
...variablesWithoutTextAndFilters,
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [new GraphQLError('401 Unauthorized')],
}),
)
})
})
describe('authenticated', () => {
describe('without admin rights', () => {
beforeAll(async () => {
user = await userFactory(testEnv, bibiBloxberg)
await query({
query: login,
variables: { email: 'bibi@bloxberg.de', password: 'Aa12345_' },
})
})
afterAll(async () => {
await cleanDB()
resetToken()
})
it('returns an error', async () => {
await expect(
query({
query: searchUsers,
variables: {
...variablesWithoutTextAndFilters,
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [new GraphQLError('401 Unauthorized')],
}),
)
})
})
describe('with admin rights', () => {
beforeAll(async () => {
admin = await userFactory(testEnv, peterLustig)
await query({
query: login,
variables: { email: 'peter@lustig.de', password: 'Aa12345_' },
})
await userFactory(testEnv, bibiBloxberg)
await userFactory(testEnv, stephenHawking)
await userFactory(testEnv, garrickOllivander)
// Wolle await userFactory(testEnv, XXX)
// await userFactory(testEnv, XXX)
})
afterAll(async () => {
await cleanDB()
resetToken()
})
describe('find', () => {
it('all users', async () => {
await expect(
query({
query: searchUsers,
variables: {
...variablesWithoutTextAndFilters,
},
}),
).resolves.toEqual(
expect.objectContaining({
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',
}),
]),
},
},
}),
)
})
it.only('users with unchecked email', async () => {
await expect(
query({
query: searchUsers,
variables: {
...variablesWithoutTextAndFilters,
filters: {
filterByActivated: false,
filterByDeleted: null,
},
},
}),
).resolves.toEqual(
expect.objectContaining({
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',
}),
]),
},
},
}),
)
})
})
})
})
})
describe('creations', () => {
const variables = {
email: 'bibi@bloxberg.de',