diff --git a/backend/src/db/seed.js b/backend/src/db/seed.js
index ba7ace90b..75671d098 100644
--- a/backend/src/db/seed.js
+++ b/backend/src/db/seed.js
@@ -147,55 +147,90 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
louie,
dagobert,
] = await Promise.all([
- factory.create('User', {
- id: 'u1',
- name: 'Peter Lustig',
- slug: 'peter-lustig',
- role: 'admin',
- email: 'admin@example.org',
- }),
- factory.create('User', {
- id: 'u2',
- name: 'Bob der Baumeister',
- slug: 'bob-der-baumeister',
- role: 'moderator',
- email: 'moderator@example.org',
- }),
- factory.create('User', {
- id: 'u3',
- name: 'Jenny Rostock',
- slug: 'jenny-rostock',
- role: 'user',
- email: 'user@example.org',
- }),
- factory.create('User', {
- id: 'u4',
- name: 'Huey',
- slug: 'huey',
- role: 'user',
- email: 'huey@example.org',
- }),
- factory.create('User', {
- id: 'u5',
- name: 'Dewey',
- slug: 'dewey',
- role: 'user',
- email: 'dewey@example.org',
- }),
- factory.create('User', {
- id: 'u6',
- name: 'Louie',
- slug: 'louie',
- role: 'user',
- email: 'louie@example.org',
- }),
- factory.create('User', {
- id: 'u7',
- name: 'Dagobert',
- slug: 'dagobert',
- role: 'user',
- email: 'dagobert@example.org',
- }),
+ factory.create(
+ 'User',
+ {
+ id: 'u1',
+ name: 'Peter Lustig',
+ slug: 'peter-lustig',
+ role: 'admin',
+ },
+ {
+ email: 'admin@example.org',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ id: 'u2',
+ name: 'Bob der Baumeister',
+ slug: 'bob-der-baumeister',
+ role: 'moderator',
+ },
+ {
+ email: 'moderator@example.org',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ id: 'u3',
+ name: 'Jenny Rostock',
+ slug: 'jenny-rostock',
+ role: 'user',
+ },
+ {
+ email: 'user@example.org',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ id: 'u4',
+ name: 'Huey',
+ slug: 'huey',
+ role: 'user',
+ },
+ {
+ email: 'huey@example.org',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ id: 'u5',
+ name: 'Dewey',
+ slug: 'dewey',
+ role: 'user',
+ },
+ {
+ email: 'dewey@example.org',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ id: 'u6',
+ name: 'Louie',
+ slug: 'louie',
+ role: 'user',
+ },
+ {
+ email: 'louie@example.org',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ id: 'u7',
+ name: 'Dagobert',
+ slug: 'dagobert',
+ role: 'user',
+ },
+ {
+ email: 'dagobert@example.org',
+ },
+ ),
])
await Promise.all([
diff --git a/backend/src/factories/index.js b/backend/src/factories/index.js
index c3ab14f64..983aaae26 100644
--- a/backend/src/factories/index.js
+++ b/backend/src/factories/index.js
@@ -40,10 +40,11 @@ export default function Factory(options = {}) {
factories,
lastResponse: null,
neodeInstance,
- async create(node, args = {}) {
+ async create(node, args = {}, options = {}) {
const { factory } = this.factories[node](args)
this.lastResponse = await factory({
args,
+ options,
neodeInstance,
factoryInstance: this,
})
diff --git a/backend/src/factories/socialMedia.js b/backend/src/factories/socialMedia.js
index 164a49529..2baf058a0 100644
--- a/backend/src/factories/socialMedia.js
+++ b/backend/src/factories/socialMedia.js
@@ -13,7 +13,7 @@ Factory.define('socialMedia')
export default function create() {
return {
- factory: async ({ args, neodeInstance }) => {
+ factory: async ({ args }) => {
return Factory.build('socialMedia', args)
},
}
diff --git a/backend/src/factories/users.js b/backend/src/factories/users.js
index 57f69b76b..9ed701441 100644
--- a/backend/src/factories/users.js
+++ b/backend/src/factories/users.js
@@ -1,44 +1,54 @@
import faker from 'faker'
import uuid from 'uuid/v4'
-import encryptPassword from '../helpers/encryptPassword'
import slugify from 'slug'
+import { Factory } from 'rosie'
+import { getNeode } from '../db/neo4j'
+import { hashSync } from 'bcryptjs'
+
+const neode = getNeode()
+
+Factory.define('userWithoutEmailAddress')
+ .option('password', '1234')
+ .attrs({
+ id: uuid,
+ name: faker.name.findName,
+ email: faker.internet.email,
+ password: '1234',
+ role: 'user',
+ avatar: faker.internet.avatar,
+ about: faker.lorem.paragraph,
+ termsAndConditionsAgreedVersion: '0.0.1',
+ termsAndConditionsAgreedAt: '2019-08-01T10:47:19.212Z',
+ allowEmbedIframes: false,
+ showShoutsPublicly: false,
+ locale: 'en',
+ })
+ .attr('slug', ['slug', 'name'], (slug, name) => {
+ return slug || slugify(name, { lower: true })
+ })
+ .attr('encryptedPassword', ['password'], password => {
+ return hashSync(password, 10)
+ })
+ .after(async (buildObject, options) => {
+ return neode.create('User', buildObject)
+ })
+
+Factory.define('user')
+ .option('email', faker.internet.exampleEmail)
+ .extend('userWithoutEmailAddress')
+ .after(async (buildObject, options) => {
+ const [user, email] = await Promise.all([
+ buildObject,
+ neode.create('EmailAddress', { email: options.email }),
+ ])
+ await Promise.all([user.relateTo(email, 'primaryEmail'), email.relateTo(user, 'belongsTo')])
+ return user
+ })
export default function create() {
return {
- factory: async ({ args, neodeInstance, factoryInstance }) => {
- const defaults = {
- id: uuid(),
- name: faker.name.findName(),
- email: faker.internet.email(),
- password: '1234',
- role: 'user',
- avatar: faker.internet.avatar(),
- about: faker.lorem.paragraph(),
- termsAndConditionsAgreedVersion: '0.0.1',
- termsAndConditionsAgreedAt: '2019-08-01T10:47:19.212Z',
- allowEmbedIframes: false,
- showShoutsPublicly: false,
- locale: 'en',
- }
- defaults.slug = slugify(defaults.name, { lower: true })
- args = {
- ...defaults,
- ...args,
- }
- args = await encryptPassword(args)
- const user = await neodeInstance.create('User', args)
-
- let email
- if (typeof args.email === 'object') {
- // probably a neode node
- email = args.email
- } else {
- email = await factoryInstance.create('EmailAddress', { email: args.email })
- }
-
- await user.relateTo(email, 'primaryEmail')
- await email.relateTo(user, 'belongsTo')
- return user
+ factory: async ({ args, options }) => {
+ return Factory.build('user', args, options)
},
}
}
diff --git a/backend/src/jwt/decode.spec.js b/backend/src/jwt/decode.spec.js
index 71444a3e5..d0bf2005d 100644
--- a/backend/src/jwt/decode.spec.js
+++ b/backend/src/jwt/decode.spec.js
@@ -65,14 +65,19 @@ describe('decode', () => {
describe('and corresponding user in the database', () => {
let user
beforeEach(async () => {
- user = await factory.create('User', {
- role: 'user',
- name: 'Jenny Rostock',
- avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/128.jpg',
- id: 'u3',
- email: 'user@example.org',
- slug: 'jenny-rostock',
- })
+ user = await factory.create(
+ 'User',
+ {
+ role: 'user',
+ name: 'Jenny Rostock',
+ avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/128.jpg',
+ id: 'u3',
+ slug: 'jenny-rostock',
+ },
+ {
+ email: 'user@example.org',
+ },
+ )
})
it('returns user object except email', async () => {
diff --git a/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js b/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js
index 2247e692d..4967978a5 100644
--- a/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js
+++ b/backend/src/middleware/hashtags/hashtagsMiddleware.spec.js
@@ -48,13 +48,18 @@ beforeAll(() => {
})
beforeEach(async () => {
- hashtagingUser = await neode.create('User', {
- id: 'you',
- name: 'Al Capone',
- slug: 'al-capone',
- email: 'test@example.org',
- password: '1234',
- })
+ hashtagingUser = await neode.create(
+ 'User',
+ {
+ id: 'you',
+ name: 'Al Capone',
+ slug: 'al-capone',
+ },
+ {
+ password: '1234',
+ email: 'test@example.org',
+ },
+ )
await neode.create('Category', {
id: 'cat9',
name: 'Democracy & Politics',
diff --git a/backend/src/middleware/notifications/notificationsMiddleware.spec.js b/backend/src/middleware/notifications/notificationsMiddleware.spec.js
index 136388b88..0d0714289 100644
--- a/backend/src/middleware/notifications/notificationsMiddleware.spec.js
+++ b/backend/src/middleware/notifications/notificationsMiddleware.spec.js
@@ -53,13 +53,18 @@ beforeAll(async () => {
})
beforeEach(async () => {
- notifiedUser = await neode.create('User', {
- id: 'you',
- name: 'Al Capone',
- slug: 'al-capone',
- email: 'test@example.org',
- password: '1234',
- })
+ notifiedUser = await neode.create(
+ 'User',
+ {
+ id: 'you',
+ name: 'Al Capone',
+ slug: 'al-capone',
+ },
+ {
+ email: 'test@example.org',
+ password: '1234',
+ },
+ )
await neode.create('Category', {
id: 'cat9',
name: 'Democracy & Politics',
@@ -143,13 +148,18 @@ describe('notifications', () => {
describe('commenter is not me', () => {
beforeEach(async () => {
commentContent = 'Commenters comment.'
- commentAuthor = await neode.create('User', {
- id: 'commentAuthor',
- name: 'Mrs Comment',
- slug: 'mrs-comment',
- email: 'commentauthor@example.org',
- password: '1234',
- })
+ commentAuthor = await neode.create(
+ 'User',
+ {
+ id: 'commentAuthor',
+ name: 'Mrs Comment',
+ slug: 'mrs-comment',
+ },
+ {
+ email: 'commentauthor@example.org',
+ password: '1234',
+ },
+ )
})
it('sends me a notification', async () => {
@@ -224,13 +234,18 @@ describe('notifications', () => {
})
beforeEach(async () => {
- postAuthor = await neode.create('User', {
- id: 'postAuthor',
- name: 'Mrs Post',
- slug: 'mrs-post',
- email: 'post-author@example.org',
- password: '1234',
- })
+ postAuthor = await neode.create(
+ 'User',
+ {
+ id: 'postAuthor',
+ name: 'Mrs Post',
+ slug: 'mrs-post',
+ },
+ {
+ email: 'post-author@example.org',
+ password: '1234',
+ },
+ )
})
describe('mentions me in a post', () => {
@@ -428,23 +443,33 @@ describe('notifications', () => {
beforeEach(async () => {
commentContent =
'One mention about me with @al-capone.'
- commentAuthor = await neode.create('User', {
- id: 'commentAuthor',
- name: 'Mrs Comment',
- slug: 'mrs-comment',
- email: 'comment-author@example.org',
- password: '1234',
- })
+ commentAuthor = await neode.create(
+ 'User',
+ {
+ id: 'commentAuthor',
+ name: 'Mrs Comment',
+ slug: 'mrs-comment',
+ },
+ {
+ email: 'comment-author@example.org',
+ password: '1234',
+ },
+ )
})
it('sends only one notification with reason mentioned_in_comment', async () => {
- postAuthor = await neode.create('User', {
- id: 'MrPostAuthor',
- name: 'Mr Author',
- slug: 'mr-author',
- email: 'post-author@example.org',
- password: '1234',
- })
+ postAuthor = await neode.create(
+ 'User',
+ {
+ id: 'MrPostAuthor',
+ name: 'Mr Author',
+ slug: 'mr-author',
+ },
+ {
+ email: 'post-author@example.org',
+ password: '1234',
+ },
+ )
await createCommentOnPostAction()
const expected = expect.objectContaining({
@@ -514,13 +539,18 @@ describe('notifications', () => {
await postAuthor.relateTo(notifiedUser, 'blocked')
commentContent =
'One mention about me with @al-capone.'
- commentAuthor = await neode.create('User', {
- id: 'commentAuthor',
- name: 'Mrs Comment',
- slug: 'mrs-comment',
- email: 'comment-author@example.org',
- password: '1234',
- })
+ commentAuthor = await neode.create(
+ 'User',
+ {
+ id: 'commentAuthor',
+ name: 'Mrs Comment',
+ slug: 'mrs-comment',
+ },
+ {
+ email: 'comment-author@example.org',
+ password: '1234',
+ },
+ )
})
it('sends no notification', async () => {
diff --git a/backend/src/middleware/permissionsMiddleware.spec.js b/backend/src/middleware/permissionsMiddleware.spec.js
index a4f13ea0c..7c62cfcc0 100644
--- a/backend/src/middleware/permissionsMiddleware.spec.js
+++ b/backend/src/middleware/permissionsMiddleware.spec.js
@@ -34,28 +34,48 @@ describe('authorization', () => {
describe('given two existing users', () => {
beforeEach(async () => {
;[owner, anotherRegularUser, administrator, moderator] = await Promise.all([
- factory.create('User', {
- email: 'owner@example.org',
- name: 'Owner',
- password: 'iamtheowner',
- }),
- factory.create('User', {
- email: 'another.regular.user@example.org',
- name: 'Another Regular User',
- password: 'else',
- }),
- factory.create('User', {
- email: 'admin@example.org',
- name: 'Admin',
- password: 'admin',
- role: 'admin',
- }),
- factory.create('User', {
- email: 'moderator@example.org',
- name: 'Moderator',
- password: 'moderator',
- role: 'moderator',
- }),
+ factory.create(
+ 'User',
+ {
+ name: 'Owner',
+ },
+ {
+ email: 'owner@example.org',
+ password: 'iamtheowner',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ name: 'Another Regular User',
+ },
+ {
+ email: 'another.regular.user@example.org',
+ password: 'else',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ name: 'Admin',
+ role: 'admin',
+ },
+ {
+ email: 'admin@example.org',
+ password: 'admin',
+ },
+ ),
+ factory.create(
+ 'User',
+ {
+ name: 'Moderator',
+ role: 'moderator',
+ },
+ {
+ email: 'moderator@example.org',
+ password: 'moderator',
+ },
+ ),
])
variables = {}
})
diff --git a/backend/src/middleware/slugifyMiddleware.spec.js b/backend/src/middleware/slugifyMiddleware.spec.js
index cf9f0941c..5400d2c92 100644
--- a/backend/src/middleware/slugifyMiddleware.spec.js
+++ b/backend/src/middleware/slugifyMiddleware.spec.js
@@ -31,10 +31,14 @@ beforeEach(async () => {
const admin = await factory.create('User', {
role: 'admin',
})
- await factory.create('User', {
- email: 'someone@example.org',
- password: '1234',
- })
+ await factory.create(
+ 'User',
+ {},
+ {
+ email: 'someone@example.org',
+ password: '1234',
+ },
+ )
await factory.create('Category', {
id: 'cat9',
name: 'Democracy & Politics',
diff --git a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js
index 6e1735af2..334564582 100644
--- a/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js
+++ b/backend/src/middleware/softDelete/softDeleteMiddleware.spec.js
@@ -19,11 +19,16 @@ beforeAll(async () => {
// For performance reasons we do this only once
const users = await Promise.all([
factory.create('User', { id: 'u1', role: 'user' }),
- factory.create('User', {
- id: 'm1',
- role: 'moderator',
- password: '1234',
- }),
+ factory.create(
+ 'User',
+ {
+ id: 'm1',
+ role: 'moderator',
+ },
+ {
+ password: '1234',
+ },
+ ),
factory.create('User', {
id: 'u2',
role: 'user',
diff --git a/backend/src/schema/resolvers/emails.spec.js b/backend/src/schema/resolvers/emails.spec.js
index 97a1f0c29..470eb7635 100644
--- a/backend/src/schema/resolvers/emails.spec.js
+++ b/backend/src/schema/resolvers/emails.spec.js
@@ -63,7 +63,7 @@ describe('AddEmailAddress', () => {
describe('authenticated', () => {
beforeEach(async () => {
- user = await factory.create('User', { id: '567', email: 'user@example.org' })
+ user = await factory.create('User', { id: '567' }, { email: 'user@example.org' })
authenticatedUser = await user.toJson()
})
@@ -128,7 +128,7 @@ describe('AddEmailAddress', () => {
describe('but if another user owns an `EmailAddress` already with that email', () => {
it('throws UserInputError because of unique constraints', async () => {
- await factory.create('User', { email: 'new-email@example.org' })
+ await factory.create('User', {}, { email: 'new-email@example.org' })
await expect(mutate({ mutation, variables })).resolves.toMatchObject({
data: { AddEmailAddress: null },
errors: [{ message: 'A user account with this email already exists.' }],
@@ -169,7 +169,7 @@ describe('VerifyEmailAddress', () => {
describe('authenticated', () => {
beforeEach(async () => {
- user = await factory.create('User', { id: '567', email: 'user@example.org' })
+ user = await factory.create('User', { id: '567' }, { email: 'user@example.org' })
authenticatedUser = await user.toJson()
})
diff --git a/backend/src/schema/resolvers/follow.spec.js b/backend/src/schema/resolvers/follow.spec.js
index ad836a461..d7f5e3113 100644
--- a/backend/src/schema/resolvers/follow.spec.js
+++ b/backend/src/schema/resolvers/follow.spec.js
@@ -73,20 +73,30 @@ beforeAll(async () => {
beforeEach(async () => {
user1 = await factory
- .create('User', {
- id: 'u1',
- name: 'user1',
- email: 'test@example.org',
- password: '1234',
- })
+ .create(
+ 'User',
+ {
+ id: 'u1',
+ name: 'user1',
+ },
+ {
+ email: 'test@example.org',
+ password: '1234',
+ },
+ )
.then(user => user.toJson())
user2 = await factory
- .create('User', {
- id: 'u2',
- name: 'user2',
- email: 'test2@example.org',
- password: '1234',
- })
+ .create(
+ 'User',
+ {
+ id: 'u2',
+ name: 'user2',
+ },
+ {
+ email: 'test2@example.org',
+ password: '1234',
+ },
+ )
.then(user => user.toJson())
authenticatedUser = user1
diff --git a/backend/src/schema/resolvers/moderation.spec.js b/backend/src/schema/resolvers/moderation.spec.js
index cd502be75..856f094d1 100644
--- a/backend/src/schema/resolvers/moderation.spec.js
+++ b/backend/src/schema/resolvers/moderation.spec.js
@@ -80,19 +80,29 @@ describe('moderate resources', () => {
closed: false,
}
authenticatedUser = null
- moderator = await factory.create('User', {
- id: 'moderator-id',
- name: 'Moderator',
- email: 'moderator@example.org',
- password: '1234',
- role: 'moderator',
- })
- nonModerator = await factory.create('User', {
- id: 'non-moderator',
- name: 'Non Moderator',
- email: 'non.moderator@example.org',
- password: '1234',
- })
+ moderator = await factory.create(
+ 'User',
+ {
+ id: 'moderator-id',
+ name: 'Moderator',
+ role: 'moderator',
+ },
+ {
+ email: 'moderator@example.org',
+ password: '1234',
+ },
+ )
+ nonModerator = await factory.create(
+ 'User',
+ {
+ id: 'non-moderator',
+ name: 'Non Moderator',
+ },
+ {
+ email: 'non.moderator@example.org',
+ password: '1234',
+ },
+ )
})
afterEach(async () => {
diff --git a/backend/src/schema/resolvers/passwordReset.spec.js b/backend/src/schema/resolvers/passwordReset.spec.js
index d7b3a0157..97fba47f4 100644
--- a/backend/src/schema/resolvers/passwordReset.spec.js
+++ b/backend/src/schema/resolvers/passwordReset.spec.js
@@ -45,9 +45,13 @@ afterEach(async () => {
describe('passwordReset', () => {
describe('given a user', () => {
beforeEach(async () => {
- await factory.create('User', {
- email: 'user@example.org',
- })
+ await factory.create(
+ 'User',
+ {},
+ {
+ email: 'user@example.org',
+ },
+ )
})
describe('requestPasswordReset', () => {
@@ -123,11 +127,16 @@ describe('resetPassword', () => {
describe('given a user', () => {
beforeEach(async () => {
- await factory.create('User', {
- email: 'user@example.org',
- role: 'user',
- password: '1234',
- })
+ await factory.create(
+ 'User',
+ {
+ role: 'user',
+ },
+ {
+ email: 'user@example.org',
+ password: '1234',
+ },
+ )
})
describe('invalid email', () => {
diff --git a/backend/src/schema/resolvers/posts.spec.js b/backend/src/schema/resolvers/posts.spec.js
index 56a47afa7..d7195be97 100644
--- a/backend/src/schema/resolvers/posts.spec.js
+++ b/backend/src/schema/resolvers/posts.spec.js
@@ -56,12 +56,17 @@ beforeAll(async () => {
beforeEach(async () => {
variables = {}
- user = await factory.create('User', {
- id: 'current-user',
- name: 'TestUser',
- email: 'test@example.org',
- password: '1234',
- })
+ user = await factory.create(
+ 'User',
+ {
+ id: 'current-user',
+ name: 'TestUser',
+ },
+ {
+ email: 'test@example.org',
+ password: '1234',
+ },
+ )
await Promise.all([
neode.create('Category', {
id: 'cat9',
@@ -96,12 +101,17 @@ describe('Post', () => {
let followedUser, happyPost, cryPost
beforeEach(async () => {
;[followedUser] = await Promise.all([
- factory.create('User', {
- id: 'followed-by-me',
- email: 'followed@example.org',
- name: 'Followed User',
- password: '1234',
- }),
+ factory.create(
+ 'User',
+ {
+ id: 'followed-by-me',
+ name: 'Followed User',
+ },
+ {
+ email: 'followed@example.org',
+ password: '1234',
+ },
+ ),
])
;[happyPost, cryPost] = await Promise.all([
factory.create('Post', { id: 'happy-post', categoryIds: ['cat4'] }),
diff --git a/backend/src/schema/resolvers/registration.spec.js b/backend/src/schema/resolvers/registration.spec.js
index 23b1f9d2a..36514bf4d 100644
--- a/backend/src/schema/resolvers/registration.spec.js
+++ b/backend/src/schema/resolvers/registration.spec.js
@@ -1,4 +1,5 @@
import Factory from '../../factories'
+import { Factory as RosieFactory } from 'rosie'
import { gql } from '../../helpers/jest'
import { getDriver, getNeode } from '../../db/neo4j'
import createServer from '../../server'
@@ -58,11 +59,16 @@ describe('Signup', () => {
describe('as admin', () => {
beforeEach(async () => {
- const admin = await factory.create('User', {
- role: 'admin',
- email: 'admin@example.org',
- password: '1234',
- })
+ const admin = await factory.create(
+ 'User',
+ {
+ role: 'admin',
+ },
+ {
+ email: 'admin@example.org',
+ password: '1234',
+ },
+ )
authenticatedUser = await admin.toJson()
})
@@ -90,9 +96,9 @@ describe('Signup', () => {
})
describe('if the email already exists', () => {
- let email
+ let emailAddress
beforeEach(async () => {
- email = await factory.create('EmailAddress', {
+ emailAddress = await factory.create('EmailAddress', {
email: 'someuser@example.org',
verifiedAt: null,
})
@@ -100,7 +106,8 @@ describe('Signup', () => {
describe('and the user has registered already', () => {
beforeEach(async () => {
- await factory.create('User', { email })
+ const user = await RosieFactory.build('userWithoutEmailAddress')
+ await emailAddress.relateTo(user, 'belongsTo')
})
it('throws UserInputError error because of unique constraint violation', async () => {
diff --git a/backend/src/schema/resolvers/reports.spec.js b/backend/src/schema/resolvers/reports.spec.js
index 7f827b111..9992da200 100644
--- a/backend/src/schema/resolvers/reports.spec.js
+++ b/backend/src/schema/resolvers/reports.spec.js
@@ -84,24 +84,39 @@ describe('file a report on a resource', () => {
describe('authenticated', () => {
beforeEach(async () => {
- currentUser = await factory.create('User', {
- id: 'current-user-id',
- role: 'user',
- email: 'test@example.org',
- password: '1234',
- })
- otherReportingUser = await factory.create('User', {
- id: 'other-reporting-user-id',
- role: 'user',
- email: 'reporting@example.org',
- password: '1234',
- })
- await factory.create('User', {
- id: 'abusive-user-id',
- role: 'user',
- name: 'abusive-user',
- email: 'abusive-user@example.org',
- })
+ currentUser = await factory.create(
+ 'User',
+ {
+ id: 'current-user-id',
+ role: 'user',
+ },
+ {
+ email: 'test@example.org',
+ password: '1234',
+ },
+ )
+ otherReportingUser = await factory.create(
+ 'User',
+ {
+ id: 'other-reporting-user-id',
+ role: 'user',
+ },
+ {
+ email: 'reporting@example.org',
+ password: '1234',
+ },
+ )
+ await factory.create(
+ 'User',
+ {
+ id: 'abusive-user-id',
+ role: 'user',
+ name: 'abusive-user',
+ },
+ {
+ email: 'abusive-user@example.org',
+ },
+ )
await instance.create('Category', {
id: 'cat9',
name: 'Democracy & Politics',
@@ -515,24 +530,39 @@ describe('file a report on a resource', () => {
beforeEach(async () => {
authenticatedUser = null
- moderator = await factory.create('User', {
- id: 'moderator-1',
- role: 'moderator',
- email: 'moderator@example.org',
- password: '1234',
- })
- currentUser = await factory.create('User', {
- id: 'current-user-id',
- role: 'user',
- email: 'current.user@example.org',
- password: '1234',
- })
- abusiveUser = await factory.create('User', {
- id: 'abusive-user-1',
- role: 'user',
- name: 'abusive-user',
- email: 'abusive-user@example.org',
- })
+ moderator = await factory.create(
+ 'User',
+ {
+ id: 'moderator-1',
+ role: 'moderator',
+ },
+ {
+ email: 'moderator@example.org',
+ password: '1234',
+ },
+ )
+ currentUser = await factory.create(
+ 'User',
+ {
+ id: 'current-user-id',
+ role: 'user',
+ },
+ {
+ email: 'current.user@example.org',
+ password: '1234',
+ },
+ )
+ abusiveUser = await factory.create(
+ 'User',
+ {
+ id: 'abusive-user-1',
+ role: 'user',
+ name: 'abusive-user',
+ },
+ {
+ email: 'abusive-user@example.org',
+ },
+ )
await instance.create('Category', {
id: 'cat9',
name: 'Democracy & Politics',
diff --git a/backend/src/schema/resolvers/rewards.spec.js b/backend/src/schema/resolvers/rewards.spec.js
index fe2807f25..ba5c2dc42 100644
--- a/backend/src/schema/resolvers/rewards.spec.js
+++ b/backend/src/schema/resolvers/rewards.spec.js
@@ -31,22 +31,37 @@ describe('rewards', () => {
})
beforeEach(async () => {
- regularUser = await factory.create('User', {
- id: 'regular-user-id',
- role: 'user',
- email: 'user@example.org',
- password: '1234',
- })
- moderator = await factory.create('User', {
- id: 'moderator-id',
- role: 'moderator',
- email: 'moderator@example.org',
- })
- administrator = await factory.create('User', {
- id: 'admin-id',
- role: 'admin',
- email: 'admin@example.org',
- })
+ regularUser = await factory.create(
+ 'User',
+ {
+ id: 'regular-user-id',
+ role: 'user',
+ },
+ {
+ email: 'user@example.org',
+ password: '1234',
+ },
+ )
+ moderator = await factory.create(
+ 'User',
+ {
+ id: 'moderator-id',
+ role: 'moderator',
+ },
+ {
+ email: 'moderator@example.org',
+ },
+ )
+ administrator = await factory.create(
+ 'User',
+ {
+ id: 'admin-id',
+ role: 'admin',
+ },
+ {
+ email: 'admin@example.org',
+ },
+ )
badge = await factory.create('Badge', {
id: 'indiegogo_en_rhino',
type: 'crowdfunding',
@@ -172,10 +187,15 @@ describe('rewards', () => {
},
errors: undefined,
}
- await factory.create('User', {
- id: 'regular-user-2-id',
- email: 'regular2@email.com',
- })
+ await factory.create(
+ 'User',
+ {
+ id: 'regular-user-2-id',
+ },
+ {
+ email: 'regular2@email.com',
+ },
+ )
await mutate({
mutation: rewardMutation,
variables,
diff --git a/backend/src/schema/resolvers/shout.spec.js b/backend/src/schema/resolvers/shout.spec.js
index 104a28399..50ff23687 100644
--- a/backend/src/schema/resolvers/shout.spec.js
+++ b/backend/src/schema/resolvers/shout.spec.js
@@ -47,19 +47,29 @@ describe('shout and unshout posts', () => {
query = createTestClient(server).query
})
beforeEach(async () => {
- currentUser = await factory.create('User', {
- id: 'current-user-id',
- name: 'Current User',
- email: 'current.user@example.org',
- password: '1234',
- })
+ currentUser = await factory.create(
+ 'User',
+ {
+ id: 'current-user-id',
+ name: 'Current User',
+ },
+ {
+ email: 'current.user@example.org',
+ password: '1234',
+ },
+ )
- postAuthor = await factory.create('User', {
- id: 'id-of-another-user',
- name: 'Another User',
- email: 'another.user@example.org',
- password: '1234',
- })
+ postAuthor = await factory.create(
+ 'User',
+ {
+ id: 'id-of-another-user',
+ name: 'Another User',
+ },
+ {
+ email: 'another.user@example.org',
+ password: '1234',
+ },
+ )
})
afterEach(async () => {
await factory.cleanDatabase()
diff --git a/backend/src/schema/resolvers/socialMedia.spec.js b/backend/src/schema/resolvers/socialMedia.spec.js
index f292b58a0..05bb13eb4 100644
--- a/backend/src/schema/resolvers/socialMedia.spec.js
+++ b/backend/src/schema/resolvers/socialMedia.spec.js
@@ -2,40 +2,46 @@ import { createTestClient } from 'apollo-server-testing'
import createServer from '../../server'
import Factory from '../../factories'
import { gql } from '../../helpers/jest'
-import { getNeode, getDriver } from '../../db/neo4j'
+import { getDriver } from '../../db/neo4j'
const driver = getDriver()
const factory = Factory()
-const neode = getNeode()
describe('SocialMedia', () => {
let socialMediaAction, someUser, ownerNode, owner
- const ownerParams = {
- email: 'pippi@example.com',
- password: '1234',
- name: 'Pippi Langstrumpf',
- }
-
- const userParams = {
- email: 'kalle@example.com',
- password: 'abcd',
- name: 'Kalle Blomqvist',
- }
-
const url = 'https://twitter.com/pippi-langstrumpf'
const newUrl = 'https://twitter.com/bullerby'
const setUpSocialMedia = async () => {
- const socialMediaNode = await neode.create('SocialMedia', { url })
+ const socialMediaNode = await factory.create('SocialMedia', { url })
await socialMediaNode.relateTo(ownerNode, 'ownedBy')
return socialMediaNode.toJson()
}
beforeEach(async () => {
- const someUserNode = await neode.create('User', userParams)
+ const someUserNode = await factory.create(
+ 'User',
+ {
+ name: 'Kalle Blomqvist',
+ },
+ {
+ email: 'kalle@example.com',
+ password: 'abcd',
+ },
+ )
+
someUser = await someUserNode.toJson()
- ownerNode = await neode.create('User', ownerParams)
+ ownerNode = await factory.create(
+ 'User',
+ {
+ name: 'Pippi Langstrumpf',
+ },
+ {
+ email: 'pippi@example.com',
+ password: '1234',
+ },
+ )
owner = await ownerNode.toJson()
socialMediaAction = async (user, mutation, variables) => {
diff --git a/backend/src/schema/resolvers/user_management.spec.js b/backend/src/schema/resolvers/user_management.spec.js
index 5e7043e74..27bc84b10 100644
--- a/backend/src/schema/resolvers/user_management.spec.js
+++ b/backend/src/schema/resolvers/user_management.spec.js
@@ -127,15 +127,20 @@ describe('currentUser', () => {
describe('authenticated', () => {
describe('and corresponding user in the database', () => {
beforeEach(async () => {
- await factory.create('User', {
- id: 'u3',
- // the `id` is the only thing that has to match the decoded JWT bearer token
- avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/jimmuirhead/128.jpg',
- email: 'test@example.org',
- name: 'Matilde Hermiston',
- slug: 'matilde-hermiston',
- role: 'user',
- })
+ await factory.create(
+ 'User',
+ {
+ id: 'u3',
+ // the `id` is the only thing that has to match the decoded JWT bearer token
+ avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/jimmuirhead/128.jpg',
+ name: 'Matilde Hermiston',
+ slug: 'matilde-hermiston',
+ role: 'user',
+ },
+ {
+ email: 'test@example.org',
+ },
+ )
const userBearerToken = encode({ id: 'u3' })
req = { headers: { authorization: `Bearer ${userBearerToken}` } }
})
@@ -172,10 +177,13 @@ describe('login', () => {
beforeEach(async () => {
variables = { email: 'test@example.org', password: '1234' }
- user = await factory.create('User', {
- ...variables,
- id: 'acb2d923-f3af-479e-9f00-61b12e864666',
- })
+ user = await factory.create(
+ 'User',
+ {
+ id: 'acb2d923-f3af-479e-9f00-61b12e864666',
+ },
+ variables,
+ )
})
describe('ask for a `token`', () => {
diff --git a/backend/src/schema/resolvers/users.spec.js b/backend/src/schema/resolvers/users.spec.js
index cfd84fcf7..9ead48a2b 100644
--- a/backend/src/schema/resolvers/users.spec.js
+++ b/backend/src/schema/resolvers/users.spec.js
@@ -37,7 +37,7 @@ afterEach(async () => {
describe('User', () => {
describe('query by email address', () => {
beforeEach(async () => {
- await factory.create('User', { name: 'Johnny', email: 'any-email-address@example.org' })
+ await factory.create('User', { name: 'Johnny' }, { email: 'any-email-address@example.org' })
})
const userQuery = gql`
@@ -57,11 +57,16 @@ describe('User', () => {
describe('as admin', () => {
beforeEach(async () => {
- const admin = await factory.create('User', {
- role: 'admin',
- email: 'admin@example.org',
- password: '1234',
- })
+ const admin = await factory.create(
+ 'User',
+ {
+ role: 'admin',
+ },
+ {
+ email: 'admin@example.org',
+ password: '1234',
+ },
+ )
authenticatedUser = await admin.toJson()
})
@@ -91,19 +96,9 @@ describe('User', () => {
})
describe('UpdateUser', () => {
- let userParams, variables
+ let variables
beforeEach(async () => {
- userParams = {
- email: 'user@example.org',
- password: '1234',
- id: 'u47',
- name: 'John Doe',
- termsAndConditionsAgreedVersion: null,
- termsAndConditionsAgreedAt: null,
- allowEmbedIframes: false,
- }
-
variables = {
id: 'u47',
name: 'John Doughnut',
@@ -133,18 +128,33 @@ describe('UpdateUser', () => {
`
beforeEach(async () => {
- user = await factory.create('User', userParams)
+ user = await factory.create(
+ 'User',
+ {
+ id: 'u47',
+ name: 'John Doe',
+ termsAndConditionsAgreedVersion: null,
+ termsAndConditionsAgreedAt: null,
+ allowEmbedIframes: false,
+ },
+ {
+ email: 'user@example.org',
+ },
+ )
})
describe('as another user', () => {
beforeEach(async () => {
- const someoneElseParams = {
- email: 'someone-else@example.org',
- password: '1234',
- name: 'James Doe',
- }
+ const someoneElse = await factory.create(
+ 'User',
+ {
+ name: 'James Doe',
+ },
+ {
+ email: 'someone-else@example.org',
+ },
+ )
- const someoneElse = await factory.create('User', someoneElseParams)
authenticatedUser = await someoneElse.toJson()
})
@@ -272,11 +282,15 @@ describe('DeleteUser', () => {
about: 'along with my about',
id: 'u343',
})
- await factory.create('User', {
- email: 'friends-account@example.org',
- password: '1234',
- id: 'not-my-account',
- })
+ await factory.create(
+ 'User',
+ {
+ id: 'not-my-account',
+ },
+ {
+ email: 'friends-account@example.org',
+ },
+ )
})
describe('unauthenticated', () => {
diff --git a/backend/src/schema/resolvers/users/location.spec.js b/backend/src/schema/resolvers/users/location.spec.js
index f7315174c..85c0f091f 100644
--- a/backend/src/schema/resolvers/users/location.spec.js
+++ b/backend/src/schema/resolvers/users/location.spec.js
@@ -146,7 +146,7 @@ describe('userMiddleware', () => {
})
describe('UpdateUser', () => {
- let user, userParams
+ let user
beforeEach(async () => {
newlyCreatedNodesWithLocales = [
{
@@ -182,10 +182,9 @@ describe('userMiddleware', () => {
},
},
]
- userParams = {
+ user = await factory.create('User', {
id: 'updating-user',
- }
- user = await factory.create('User', userParams)
+ })
authenticatedUser = await user.toJson()
})
diff --git a/backend/test/features/support/steps.js b/backend/test/features/support/steps.js
index 70802f4e2..ff9d45b27 100644
--- a/backend/test/features/support/steps.js
+++ b/backend/test/features/support/steps.js
@@ -13,8 +13,9 @@ function createUser (slug) {
debug(`creating user ${slug}`)
return factory.create('User', {
name: slug,
- email: 'example@test.org',
+ }, {
password: '1234'
+ email: 'example@test.org',
})
// await login({ email: 'example@test.org', password: '1234' })
}