Skip to content
Snippets Groups Projects
Commit cced62ab authored by Yannis Barlas's avatar Yannis Barlas
Browse files

fix(server): remove loaders from user identities for now

parent 74aa952d
No related branches found
No related tags found
2 merge requests!52Docx,!17Graphql api
const createTestServer = require('./helpers/createTestServer')
const { User, Identity } = require('..')
const clearDb = require('./_clearDb')
describe('Team API', () => {
beforeEach(() => clearDb())
afterAll(() => {
const knex = User.knex()
knex.destroy()
})
it('gets user identities', async () => {
const user = await User.insert({})
const identities = await Identity.insert([
{
userId: user.id,
email: 'test1@example.com',
isVerified: false,
},
{
userId: user.id,
email: 'test2@example.com',
isVerified: false,
},
])
const GET_USER_IDENTITIES = `
query GetUserIdentities {
user (id: "${user.id}") {
id
identities {
id
email
isVerified
}
}
}
`
const testServer = await createTestServer()
const response = await testServer.executeOperation({
query: GET_USER_IDENTITIES,
})
const responseIdentities = response.data.user.identities
expect(responseIdentities[0].id).toBe(identities[0].id)
expect(responseIdentities[1].id).toBe(identities[1].id)
// make sure server does not cache responses even if they've been changed
expect(responseIdentities[0].isVerified).toBe(false)
const verifiedIdentity = await Identity.patchAndFetchById(
identities[0].id,
{ isVerified: true },
)
const newResponse = await testServer.executeOperation({
query: GET_USER_IDENTITIES,
})
const newResponseIdentities = newResponse.data.user.identities
const changedIdentity = newResponseIdentities.find(
i => i.id === verifiedIdentity.id,
)
expect(changedIdentity.isVerified).toBe(true)
})
it('gets user default identity', async () => {
const user = await User.insert({})
const identities = await Identity.insert([
{
userId: user.id,
email: 'test1@example.com',
isDefault: true,
},
{
userId: user.id,
email: 'test2@example.com',
isVerified: false,
},
])
const GET_USER_IDENTITIES = `
query GetDefaultIdentity {
user (id: "${user.id}") {
id
defaultIdentity {
id
email
isVerified
}
}
}
`
const testServer = await createTestServer()
const response = await testServer.executeOperation({
query: GET_USER_IDENTITIES,
})
const { defaultIdentity } = response.data.user
expect(defaultIdentity.id).toBe(identities[0].id)
})
})
const Identity = require('./identity.model')
const getUserIdentities = async userId => {
try {
return Identity.find({ userId })
} catch (e) {
throw new Error(e)
}
}
const getDefaultIdentity = async userId => {
try {
return Identity.findOne({
userId,
isDefault: true,
})
} catch (e) {
throw new Error(e)
}
}
module.exports = { getUserIdentities, getDefaultIdentity }
......@@ -28,6 +28,11 @@ const {
getUserTeams,
} = require('./user.controller')
const {
getUserIdentities,
getDefaultIdentity,
} = require('../identity/identity.controller')
const userResolver = async (_, { id }, ctx) => {
try {
logger.info(`${USER_RESOLVER} user`)
......@@ -240,13 +245,14 @@ const resetPasswordResolver = async (_, { token, password }, ctx) => {
}
const identitiesResolver = async (user, _, ctx) => {
const { id } = user
return ctx.loaders.Identity.identitiesBasedOnUserIdsLoader.load(id)
const identities = await getUserIdentities(user.id)
return identities.result
// return ctx.loaders.Identity.identitiesBasedOnUserIdsLoader.load(user.id)
}
const defaultIdentityResolver = async (user, _, ctx) => {
const { id } = user
return ctx.loaders.Identity.defaultIdentityBasedOnUserIdsLoader.load(id)
return getDefaultIdentity(user.id)
// return ctx.loaders.Identity.defaultIdentityBasedOnUserIdsLoader.load(user.id)
}
const displayNameResolver = async user => {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment