mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
121 lines
3.1 KiB
JavaScript
121 lines
3.1 KiB
JavaScript
import { gql } from '../../../helpers/jest'
|
|
import Factory, { cleanDatabase } from '../../../db/factories'
|
|
import { getNeode, getDriver } from '../../../db/neo4j'
|
|
import { createTestClient } from 'apollo-server-testing'
|
|
import createServer from '../../../server'
|
|
|
|
const neode = getNeode()
|
|
const driver = getDriver()
|
|
let authenticatedUser, mutate, variables
|
|
|
|
const updateUserMutation = gql`
|
|
mutation($id: ID!, $name: String!, $locationName: String) {
|
|
UpdateUser(id: $id, name: $name, locationName: $locationName) {
|
|
locationName
|
|
}
|
|
}
|
|
`
|
|
|
|
const newlyCreatedNodesWithLocales = [
|
|
{
|
|
city: {
|
|
id: expect.stringContaining('place'),
|
|
type: 'place',
|
|
name: 'Hamburg',
|
|
nameEN: 'Hamburg',
|
|
nameDE: 'Hamburg',
|
|
namePT: 'Hamburg',
|
|
nameES: 'Hamburg',
|
|
nameFR: 'Hamburg',
|
|
nameIT: 'Hamburg',
|
|
nameRU: 'Хамбург',
|
|
nameNL: 'Hamburg',
|
|
namePL: 'Hamburg',
|
|
lng: -74.5763,
|
|
lat: 41.1534,
|
|
},
|
|
state: {
|
|
id: expect.stringContaining('region'),
|
|
type: 'region',
|
|
name: 'New Jersey',
|
|
nameEN: 'New Jersey',
|
|
nameDE: 'New Jersey',
|
|
namePT: 'Nova Jérsia',
|
|
nameES: 'Nueva Jersey',
|
|
nameFR: 'New Jersey',
|
|
nameIT: 'New Jersey',
|
|
nameRU: 'Нью-Джерси',
|
|
nameNL: 'New Jersey',
|
|
namePL: 'New Jersey',
|
|
},
|
|
country: {
|
|
id: expect.stringContaining('country'),
|
|
type: 'country',
|
|
name: 'United States of America',
|
|
nameEN: 'United States of America',
|
|
nameDE: 'Vereinigte Staaten',
|
|
namePT: 'Estados Unidos',
|
|
nameES: 'Estados Unidos',
|
|
nameFR: 'États-Unis',
|
|
nameIT: "Stati Uniti d'America",
|
|
nameRU: 'Соединённые Штаты Америки',
|
|
nameNL: 'Verenigde Staten van Amerika',
|
|
namePL: 'Stany Zjednoczone',
|
|
},
|
|
},
|
|
]
|
|
|
|
beforeAll(() => {
|
|
const { server } = createServer({
|
|
context: () => {
|
|
return {
|
|
user: authenticatedUser,
|
|
neode,
|
|
driver,
|
|
}
|
|
},
|
|
})
|
|
mutate = createTestClient(server).mutate
|
|
})
|
|
|
|
beforeEach(() => {
|
|
variables = {}
|
|
authenticatedUser = null
|
|
})
|
|
|
|
afterEach(cleanDatabase)
|
|
|
|
describe('userMiddleware', () => {
|
|
describe('UpdateUser', () => {
|
|
let user
|
|
beforeEach(async () => {
|
|
user = await Factory.build('user', {
|
|
id: 'updating-user',
|
|
})
|
|
authenticatedUser = await user.toJson()
|
|
})
|
|
|
|
it('creates a Location node with localised city/state/country names', async () => {
|
|
variables = {
|
|
...variables,
|
|
id: 'updating-user',
|
|
name: 'Updating user',
|
|
locationName: 'Hamburg, New Jersey, United States of America',
|
|
}
|
|
await mutate({ mutation: updateUserMutation, variables })
|
|
const locations = await neode.cypher(
|
|
`MATCH (city:Location)-[:IS_IN]->(state:Location)-[:IS_IN]->(country:Location) return city {.*}, state {.*}, country {.*}`,
|
|
)
|
|
expect(
|
|
locations.records.map((record) => {
|
|
return {
|
|
city: record.get('city'),
|
|
state: record.get('state'),
|
|
country: record.get('country'),
|
|
}
|
|
}),
|
|
).toEqual(newlyCreatedNodesWithLocales)
|
|
})
|
|
})
|
|
})
|