unit test with data

This commit is contained in:
Moriz Wahl 2023-12-07 13:13:52 +01:00
parent 6b27b89890
commit b936fe6a40
6 changed files with 59 additions and 13 deletions

View File

@ -11,4 +11,5 @@ module.exports = {
},
},
setupFiles: ['./test/testSetup.ts'],
setupFilesAfterEnv: ['./test/testSetupAfterEnv.ts'],
}

View File

@ -30,7 +30,7 @@
},
"prisma": {
"seed": "ts-node prisma/seed.ts"
},
},
"dependencies": {
"@apollo/server": "^4.9.5",
"@prisma/client": "^5.6.0",

View File

@ -1,5 +1,6 @@
import { ApolloServer } from '@apollo/server'
import { prisma } from '#src/prisma'
import { createServer } from '#src/server/server'
let testServer: ApolloServer
@ -9,19 +10,44 @@ beforeAll(async () => {
})
describe('HelloResolver', () => {
it('return "Hello World!"', async () => {
const response = await testServer.executeOperation({
query: '{ hello { hello } }',
})
expect(response.body).toMatchObject({
kind: 'single',
singleResult: {
data: {
hello: {
hello: 'Hello world!',
describe('with no data', () => {
it('returns "no data found"', async () => {
const response = await testServer.executeOperation({
query: '{ hello { hello } }',
})
expect(response.body).toMatchObject({
kind: 'single',
singleResult: {
data: {
hello: {
hello: 'no data found',
},
},
},
},
})
})
})
describe('with data', () => {
it('returns "Hello World!"', async () => {
await prisma.hello.create({
data: {
text: 'Hello World!',
},
})
const response = await testServer.executeOperation({
query: '{ hello { hello } }',
})
expect(response.body).toMatchObject({
kind: 'single',
singleResult: {
data: {
hello: {
hello: 'Hello World!',
},
},
},
})
})
})
})

View File

@ -8,6 +8,6 @@ export class HelloResolver {
@Query(() => Hello)
async hello(): Promise<Hello> {
const data = await prisma.hello.findFirst()
return new Hello(data?.text ?? 'Hello World!')
return new Hello(data?.text ?? 'no data found')
}
}

9
test/helpers.ts Normal file
View File

@ -0,0 +1,9 @@
import { prisma } from '#src/prisma'
export const deleteAll = async () => {
await prisma.hello.deleteMany()
}
export const disconnect = async () => {
prisma.$disconnect()
}

10
test/testSetupAfterEnv.ts Normal file
View File

@ -0,0 +1,10 @@
import { deleteAll, disconnect } from './helpers'
beforeAll(async () => {
await deleteAll()
})
afterAll(async () => {
await deleteAll()
await disconnect()
})