mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
This was already covered by `slugifyMiddleware.spec.js`. I do agree that this is a better place for it. Also we're not testing GraphQL requests here but the factories. As we're testing the existence of unique constraints, I think it won't matter if we use factories or actual GraphQL requests.
85 lines
2.1 KiB
JavaScript
85 lines
2.1 KiB
JavaScript
import Factory from '../seed/factories'
|
|
import { neode } from '../bootstrap/neo4j'
|
|
|
|
const factory = Factory()
|
|
const instance = neode()
|
|
|
|
afterEach(async () => {
|
|
await factory.cleanDatabase()
|
|
})
|
|
|
|
describe('role', () => {
|
|
it('defaults to `user`', async () => {
|
|
const user = await instance.create('User', { name: 'John' })
|
|
await expect(user.toJson()).resolves.toEqual(
|
|
expect.objectContaining({
|
|
role: 'user',
|
|
}),
|
|
)
|
|
})
|
|
})
|
|
|
|
describe('slug', () => {
|
|
it('normalizes to lowercase letters', async () => {
|
|
const user = await instance.create('User', { slug: 'Matt' })
|
|
await expect(user.toJson()).resolves.toEqual(
|
|
expect.objectContaining({
|
|
slug: 'matt',
|
|
}),
|
|
)
|
|
})
|
|
|
|
it('must be unique', async done => {
|
|
await instance.create('User', { slug: 'Matt' })
|
|
try {
|
|
await expect(instance.create('User', { slug: 'Matt' })).rejects.toThrow('already exists')
|
|
done()
|
|
} catch (error) {
|
|
throw new Error(`
|
|
${error}
|
|
|
|
Probably your database has no unique constraints!
|
|
|
|
To see all constraints go to http://localhost:7474/browser/ and
|
|
paste the following:
|
|
\`\`\`
|
|
CALL db.constraints();
|
|
\`\`\`
|
|
|
|
Learn how to setup the database here:
|
|
https://docs.human-connection.org/human-connection/neo4j
|
|
`)
|
|
}
|
|
})
|
|
|
|
describe('characters', () => {
|
|
const createUser = attrs => {
|
|
return instance.create('User', attrs).then(user => user.toJson())
|
|
}
|
|
|
|
it('-', async () => {
|
|
await expect(createUser({ slug: 'matt-rider' })).resolves.toMatchObject({
|
|
slug: 'matt-rider',
|
|
})
|
|
})
|
|
|
|
it('_', async () => {
|
|
await expect(createUser({ slug: 'matt_rider' })).resolves.toMatchObject({
|
|
slug: 'matt_rider',
|
|
})
|
|
})
|
|
|
|
it(' ', async () => {
|
|
await expect(createUser({ slug: 'matt rider' })).rejects.toThrow(
|
|
/fails to match the required pattern/,
|
|
)
|
|
})
|
|
|
|
it('ä', async () => {
|
|
await expect(createUser({ slug: 'mätt' })).rejects.toThrow(
|
|
/fails to match the required pattern/,
|
|
)
|
|
})
|
|
})
|
|
})
|