feat: create a guild (#1)

This commit is contained in:
Divlo
2021-10-26 16:38:55 +02:00
committed by GitHub
parent a0fa66e8f5
commit d8fab08585
45 changed files with 530 additions and 315 deletions

View File

@ -0,0 +1,9 @@
import { guild } from '../guilds/guild'
export const channel = {
id: 1,
name: 'general',
guildId: guild.id,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString()
}

View File

@ -0,0 +1,8 @@
export const guild = {
id: 1,
name: 'GuildExample',
description: 'guild example.',
icon: null,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString()
}

View File

@ -0,0 +1,20 @@
import { Handler } from '../handler'
import { guild } from './guild'
import { channel } from '../channels/channel'
import { memberComplete } from '../members/member'
export const postGuildsHandler: Handler = {
method: 'POST',
url: '/guilds',
response: {
statusCode: 201,
body: {
guild: {
...guild,
channels: [channel],
members: [memberComplete]
}
}
}
}

View File

@ -0,0 +1,16 @@
import { guild } from '../guilds/guild'
import { user } from '../users/user'
export const member = {
id: 1,
isOwner: true,
userId: user.id,
guildId: guild.id,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString()
}
export const memberComplete = {
...member,
user
}

View File

@ -1,15 +1,18 @@
import { UserSettings } from '../../../models/UserSettings'
import { UserPublic } from '../../../models/User'
import { User } from '../../../models/User'
export const user: UserPublic = {
export const user: User = {
id: 1,
name: 'Divlo',
email: 'contact@divlo.fr',
logo: undefined,
status: undefined,
biography: undefined,
password: 'somepassword',
logo: null,
status: null,
biography: null,
website: 'https://divlo.fr',
isConfirmed: true,
temporaryToken: 'temporaryUUIDtoken',
temporaryExpirationToken: '2021-10-20T20:59:08.485Z',
createdAt: '2021-10-20T20:30:51.595Z',
updatedAt: '2021-10-20T20:59:08.485Z'
}

View File

@ -0,0 +1,37 @@
import { channel } from '../../../../fixtures/channels/channel'
import { guild } from '../../../../fixtures/guilds/guild'
import { postGuildsHandler } from '../../../../fixtures/guilds/post'
import { authenticationHandlers } from '../../../../fixtures/handler'
describe('Pages > /application/guilds/create', () => {
beforeEach(() => {
cy.task('stopMockServer')
})
it('should succeeds and create the guild', () => {
cy.task('startMockServer', [
...authenticationHandlers,
postGuildsHandler
]).setCookie('refreshToken', 'refresh-token')
cy.visit('/application/guilds/create')
cy.get('#error-name').should('not.exist')
cy.get('[data-cy=input-name]').type(guild.name)
cy.get('[data-cy=submit]').click()
cy.location('pathname').should(
'eq',
`/application/${guild.id}/${channel.id}`
)
})
it('should fails with internal api server error', () => {
cy.task('startMockServer', [...authenticationHandlers]).setCookie(
'refreshToken',
'refresh-token'
)
cy.visit('/application/guilds/create')
cy.get('#error-name').should('not.exist')
cy.get('[data-cy=input-name]').type(guild.name)
cy.get('[data-cy=submit]').click()
cy.get('#message').should('have.text', 'Error: Internal Server Error.')
})
})

View File

@ -40,6 +40,9 @@ describe('Pages > /authentication/reset-password', () => {
cy.visit('/authentication/reset-password')
cy.get('#message').should('not.exist')
cy.get('[data-cy=submit]').click()
cy.get('#message').should('have.text', 'Error: Invalid value.')
cy.get('#message').should(
'have.text',
'Error: Oops, this field is required 🙈.'
)
})
})