From a11352aaad21f9a352fdc77590ee47c4415cca20 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 24 Oct 2022 16:49:05 +0200 Subject: [PATCH] linkify messages as component in admin interface --- .../ContributionMessages/LinkifyMessage.vue | 20 ++++++ .../ContributionMessagesListItem.spec.js | 64 +++++++++++++++++++ .../slots/ContributionMessagesListItem.vue | 23 +++---- 3 files changed, 93 insertions(+), 14 deletions(-) create mode 100644 admin/src/components/ContributionMessages/LinkifyMessage.vue diff --git a/admin/src/components/ContributionMessages/LinkifyMessage.vue b/admin/src/components/ContributionMessages/LinkifyMessage.vue new file mode 100644 index 000000000..cea0a30a1 --- /dev/null +++ b/admin/src/components/ContributionMessages/LinkifyMessage.vue @@ -0,0 +1,20 @@ + + + diff --git a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js index b8aaba502..c1a4e65c6 100644 --- a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js +++ b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js @@ -125,4 +125,68 @@ describe('ContributionMessagesListItem', () => { }) }) }) + + describe('links in contribtion message', () => { + const propsData = { + message: { + id: 111, + message: 'Lorem ipsum?', + createdAt: '2022-08-29T12:23:27.000Z', + updatedAt: null, + type: 'DIALOG', + userFirstName: 'Peter', + userLastName: 'Lustig', + userId: 107, + __typename: 'ContributionMessage', + }, + } + + const ModeratorItemWrapper = () => { + return mount(ContributionMessagesListItem, { + localVue, + mocks, + propsData, + }) + } + + let messageField + + describe('message of only one link', () => { + beforeEach(() => { + propsData.message.message = 'https://gradido.net/de/' + wrapper = ModeratorItemWrapper() + messageField = wrapper.find('div.is-not-moderator.text-left > div:nth-child(4)') + }) + + it('contains the link as text', () => { + expect(messageField.text()).toBe('https://gradido.net/de/') + }) + + it('contains a link to the given address', () => { + expect(messageField.find('a').attributes('href')).toBe('https://gradido.net/de/') + }) + }) + + describe('message with text and two links', () => { + beforeEach(() => { + propsData.message.message = `Here you find all you need to know about Gradido: https://gradido.net/de/ +and here is the link to the repository: https://github.com/gradido/gradido` + wrapper = ModeratorItemWrapper() + messageField = wrapper.find('div.is-not-moderator.text-left > div:nth-child(4)') + }) + + it('contains the whole text', () => { + expect(messageField.text()) + .toBe(`Here you find all you need to know about Gradido: https://gradido.net/de/ +and here is the link to the repository: https://github.com/gradido/gradido`) + }) + + it('contains the two links', () => { + expect(messageField.findAll('a').at(0).attributes('href')).toBe('https://gradido.net/de/') + expect(messageField.findAll('a').at(1).attributes('href')).toBe( + 'https://github.com/gradido/gradido', + ) + }) + }) + }) }) diff --git a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue index 014fa7393..55b01c592 100644 --- a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue +++ b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue @@ -5,32 +5,27 @@ {{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} {{ $t('moderator') }} -
- - {{ text }} - {{ text }} - -
+
{{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} -
- - {{ text }} - {{ text }} - -
+