This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
2022-03-01 23:00:49 +01:00

62 lines
2.2 KiB
TypeScript

import { application } from '../../../../application.js'
import { authenticateUserTest } from '../../../../__test__/utils/authenticateUserTest.js'
import { prismaMock } from '../../../../__test__/setup.js'
import { memberExample } from '../../../../models/Member.js'
import { guildExample } from '../../../../models/Guild.js'
import { userExample } from '../../../../models/User.js'
import { channelExample } from '../../../../models/Channel.js'
describe('GET /guilds/[guildId]', () => {
it('succeeds', async () => {
const defaultChannelId = 5
prismaMock.member.findFirst.mockResolvedValue({
...memberExample,
guild: guildExample,
user: userExample
} as any)
prismaMock.channel.findFirst.mockResolvedValue({
...channelExample,
id: defaultChannelId
})
const { accessToken, user } = await authenticateUserTest()
const response = await application.inject({
method: 'GET',
url: `/guilds/${guildExample.id}`,
headers: {
authorization: `Bearer ${accessToken}`
}
})
const responseJson = response.json()
expect(response.statusCode).toEqual(200)
expect(responseJson.member.isOwner).toEqual(memberExample.isOwner)
expect(responseJson.member.user.name).toEqual(user.name)
expect(responseJson.member.user.email).toBeNull()
expect(responseJson.guild.id).toEqual(guildExample.id)
expect(responseJson.guild.name).toEqual(guildExample.name)
expect(responseJson.guild.defaultChannelId).toEqual(defaultChannelId)
})
it('fails with not found guild', async () => {
const { accessToken } = await authenticateUserTest()
prismaMock.member.findFirst.mockResolvedValue(null)
const response = await application.inject({
method: 'GET',
url: '/guilds/1',
headers: {
authorization: `Bearer ${accessToken}`
}
})
const responseJson = response.json()
expect(response.statusCode).toEqual(404)
expect(responseJson.message).toEqual('Member not found')
})
it('fails with unauthenticated user', async () => {
const response = await application.inject({
method: 'GET',
url: '/guilds/1'
})
expect(response.statusCode).toEqual(401)
})
})