Merge branch 'master' into remove-activity-pub

This commit is contained in:
Ulf Gebhardt 2023-06-21 16:26:24 +02:00 committed by GitHub
commit 0e1dea6002
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 69 additions and 35 deletions

View File

@ -21,11 +21,13 @@ export const messageQuery = () => {
return gql`
query($roomId: ID!) {
Message(roomId: $roomId) {
_id
id
content
author {
id
}
senderId
username
avatar
date
}
}
`

View File

@ -184,20 +184,23 @@ describe('Message', () => {
describe('room exists with authenticated user chatting', () => {
it('returns the messages', async () => {
await expect(query({
const result = await query({
query: messageQuery(),
variables: {
roomId,
},
})).resolves.toMatchObject({
})
expect(result).toMatchObject({
errors: undefined,
data: {
Message: [{
id: expect.any(String),
_id: result.data.Message[0].id,
content: 'Some nice message to other chatting user',
author: {
id: 'chatting-user',
},
senderId: 'chatting-user',
username: 'Chatting User',
avatar: expect.any(String),
date: expect.any(String),
}],
},
})
@ -235,29 +238,32 @@ describe('Message', () => {
{
id: expect.any(String),
content: 'Some nice message to other chatting user',
author: {
id: 'chatting-user',
},
senderId: 'chatting-user',
username: 'Chatting User',
avatar: expect.any(String),
date: expect.any(String),
},
{
id: expect.any(String),
content: 'A nice response message to chatting user',
author: {
id: 'other-chatting-user',
},
senderId: 'other-chatting-user',
username: 'Other Chatting User',
avatar: expect.any(String),
date: expect.any(String),
},
{
id: expect.any(String),
content: 'And another nice message to other chatting user',
author: {
id: 'chatting-user',
},
}
senderId: 'chatting-user',
username: 'Chatting User',
avatar: expect.any(String),
date: expect.any(String),
},
],
},
})
})
})
})
})
describe('room exists, authenticated user not in room', () => {

View File

@ -13,7 +13,13 @@ export default {
id: context.user.id,
},
}
return neo4jgraphql(object, params, context, resolveInfo)
const resolved = await neo4jgraphql(object, params, context, resolveInfo)
if (resolved) {
resolved.forEach((message) => {
message._id = message.id
})
}
return resolved
},
},
Mutation: {

View File

@ -11,6 +11,11 @@ type Message {
author: User! @relation(name: "CREATED", direction: "IN")
room: Room! @relation(name: "INSIDE", direction: "OUT")
senderId: String! @cypher(statement: "MATCH (this)<-[:CREATED]-(user:User) RETURN user.id")
username: String! @cypher(statement: "MATCH (this)<-[:CREATED]-(user:User) RETURN user.name")
avatar: String @cypher(statement: "MATCH (this)<-[:CREATED]-(:User)-[:AVATAR_IMAGE]->(image:Image) RETURN image.url")
date: String! @cypher(statement: "RETURN this.createdAt")
}
type Mutation {

View File

@ -89,13 +89,13 @@
<label for="checkbox0">
{{ $t('components.registration.create-user-account.termsAndCondsEtcConfirmed') }}
<br />
<a :href="'/terms-and-conditions'" target="_blank">
<page-params-link :pageParams="links.TERMS_AND_CONDITIONS" forceTargetBlank>
{{ $t('site.termsAndConditions') }}
</a>
</page-params-link>
<br />
<a :href="'/data-privacy'" target="_blank">
<page-params-link :pageParams="links.DATA_PRIVACY" forceTargetBlank>
{{ $t('site.data-privacy') }}
</a>
</page-params-link>
</label>
</ds-text>
<ds-text>
@ -123,20 +123,22 @@
import { VERSION } from '~/constants/terms-and-conditions-version.js'
import links from '~/constants/links'
import emails from '~/constants/emails'
import { SignupVerificationMutation } from '~/graphql/Registration.js'
import { SweetalertIcon } from 'vue-sweetalert-icons'
import PasswordStrength from '~/components/Password/Strength'
import EmailDisplayAndVerify from './EmailDisplayAndVerify'
import { SweetalertIcon } from 'vue-sweetalert-icons'
import PageParamsLink from '~/components/_new/features/PageParamsLink/PageParamsLink'
import PasswordForm from '~/components/utils/PasswordFormHelper'
import { SignupVerificationMutation } from '~/graphql/Registration.js'
import ShowPassword from '../ShowPassword/ShowPassword.vue'
export default {
name: 'RegistrationSlideCreate',
components: {
PasswordStrength,
EmailDisplayAndVerify,
SweetalertIcon,
PageParamsLink,
PasswordStrength,
ShowPassword,
SweetalertIcon,
},
props: {
sliderData: { type: Object, required: true },

View File

@ -1,17 +1,12 @@
<template>
<nuxt-link
v-if="pageParams.isInternalPage"
v-if="isInternalLink"
:to="pageParams.internalPage.pageRoute"
:data-test="pageParams.name + '-nuxt-link'"
>
<slot />
</nuxt-link>
<a
v-else
:href="pageParams.externalLink.url"
:target="pageParams.externalLink.target"
:data-test="pageParams.name + '-link'"
>
<a v-else :href="href" :target="target" :data-test="pageParams.name + '-link'">
<slot />
</a>
</template>
@ -21,6 +16,24 @@ export default {
name: 'PageParamsLink',
props: {
pageParams: { type: Object, required: true },
forceTargetBlank: { type: Boolean, default: false },
},
computed: {
href() {
return this.pageParams.isInternalPage
? this.pageParams.internalPage.pageRoute
: this.pageParams.externalLink.url
},
target() {
return this.forceTargetBlank
? '_blank'
: !this.pageParams.isInternalPage
? this.pageParams.externalLink.target
: ''
},
isInternalLink() {
return !this.forceTargetBlank && this.pageParams.isInternalPage
},
},
}
</script>