From d0f3f286b935d943d27bcf6e476c8446449684e3 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 11 Nov 2022 12:34:08 +0100 Subject: [PATCH 1/7] fix (frontend): Better History Messages --- .../ContributionMessagesListItem.vue | 4 ++-- .../ContributionMessages/LinkifyMessage.vue | 22 ++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue b/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue index 9c7a3a0f2..df0ddbc4c 100644 --- a/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue +++ b/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue @@ -4,14 +4,14 @@ {{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} - +
{{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} {{ $t('community.moderator') }} - +
diff --git a/frontend/src/components/ContributionMessages/LinkifyMessage.vue b/frontend/src/components/ContributionMessages/LinkifyMessage.vue index 09418858f..1f1e99417 100644 --- a/frontend/src/components/ContributionMessages/LinkifyMessage.vue +++ b/frontend/src/components/ContributionMessages/LinkifyMessage.vue @@ -2,6 +2,14 @@
{{ text }} + + {{ $d(new Date(text), 'short') }} +
+
+ +
+ {{ text | GDD }} +
{{ text }}
@@ -17,11 +25,22 @@ export default { type: String, required: true, }, + type: { + type: String, + reuired: true, + }, }, computed: { linkifiedMessage() { - const linkified = [] let string = this.message + const linkified = [] + let amount + if (this.type === 'HISTORY') { + const split = string.split(/\n\s*---\n\s*/) + string = split[1] + linkified.push({ type: 'date', text: split[0].trim() }) + amount = split[2].trim() + } let match while ((match = string.match(LINK_REGEX_PATTERN))) { if (match.index > 0) @@ -30,6 +49,7 @@ export default { string = string.substring(match.index + match[0].length) } if (string.length > 0) linkified.push({ type: 'text', text: string }) + if (amount) linkified.push({ type: 'amount', text: amount }) return linkified }, }, From 5204e16240facad4beebd709c0601cf1e37dd1b6 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 11 Nov 2022 12:41:06 +0100 Subject: [PATCH 2/7] rename component --- .../ContributionMessages/ContributionMessagesListItem.vue | 8 ++++---- .../{LinkifyMessage.vue => ParseMessage.vue} | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) rename frontend/src/components/ContributionMessages/{LinkifyMessage.vue => ParseMessage.vue} (92%) diff --git a/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue b/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue index df0ddbc4c..5862f97f5 100644 --- a/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue +++ b/frontend/src/components/ContributionMessages/ContributionMessagesListItem.vue @@ -4,25 +4,25 @@ {{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} - +
{{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} {{ $t('community.moderator') }} - +
diff --git a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue index 30960bd33..53006cff5 100644 --- a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue +++ b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue @@ -5,23 +5,23 @@ {{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} {{ $t('moderator') }} - +
{{ message.userFirstName }} {{ message.userLastName }} {{ $d(new Date(message.createdAt), 'short') }} - +
diff --git a/admin/src/components/ContributionMessages/ParseMessage.vue b/admin/src/components/ContributionMessages/ParseMessage.vue index 2b0b72901..dc630eed2 100644 --- a/admin/src/components/ContributionMessages/ParseMessage.vue +++ b/admin/src/components/ContributionMessages/ParseMessage.vue @@ -8,7 +8,7 @@
- {{ $n(parseFloat(text), 'decimal') }} GDD + {{ text | GDD }}
{{ text }} From 16a2ffca76b0e5316b6396947e9653a128ec8d34 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Sat, 12 Nov 2022 14:40:48 +0100 Subject: [PATCH 5/7] remove GDD filter --- admin/src/components/ContributionMessages/ParseMessage.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/src/components/ContributionMessages/ParseMessage.vue b/admin/src/components/ContributionMessages/ParseMessage.vue index dc630eed2..069373840 100644 --- a/admin/src/components/ContributionMessages/ParseMessage.vue +++ b/admin/src/components/ContributionMessages/ParseMessage.vue @@ -8,7 +8,7 @@
- {{ text | GDD }} + {{ `${$n(Number(text), 'decimal')} GDD` }}
{{ text }} From 1b40d6aaeebff2091f3c563a82f53051fd1c0ed3 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Sun, 13 Nov 2022 13:18:41 +0100 Subject: [PATCH 6/7] unit tests for HISTORY type contribution messages --- .../ContributionMessagesListItem.spec.js | 63 ++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/ContributionMessages/ContributionMessagesListItem.spec.js b/frontend/src/components/ContributionMessages/ContributionMessagesListItem.spec.js index 2dc9fb3ce..1a918747f 100644 --- a/frontend/src/components/ContributionMessages/ContributionMessagesListItem.spec.js +++ b/frontend/src/components/ContributionMessages/ContributionMessagesListItem.spec.js @@ -5,9 +5,11 @@ import ContributionMessagesListItem from './ContributionMessagesListItem.vue' const localVue = global.localVue let wrapper +const dateMock = jest.fn((d) => d) + const mocks = { $t: jest.fn((t) => t), - $d: jest.fn((d) => d), + $d: dateMock, $store: { state: { firstName: 'Peter', @@ -239,4 +241,63 @@ and here is the link to the repository: https://github.com/gradido/gradido`) }) }) }) + + describe('contribution message type HISTORY', () => { + const propsData = { + message: { + id: 111, + message: `Sun Nov 13 2022 13:05:48 GMT+0100 (Central European Standard Time) +--- +This message also contains a link: https://gradido.net/de/ +--- +350.00`, + createdAt: '2022-08-29T12:23:27.000Z', + updatedAt: null, + type: 'HISTORY', + userFirstName: 'Peter', + userLastName: 'Lustig', + userId: 107, + __typename: 'ContributionMessage', + }, + } + + const itemWrapper = () => { + return mount(ContributionMessagesListItem, { + localVue, + mocks, + propsData, + }) + } + + let messageField + + describe('render HISTORY message', () => { + beforeEach(() => { + jest.clearAllMocks() + wrapper = itemWrapper() + messageField = wrapper.find('div.is-not-moderator.text-right > div:nth-child(4)') + }) + + it('renders the date', () => { + expect(dateMock).toBeCalledWith( + new Date('Sun Nov 13 2022 13:05:48 GMT+0100 (Central European Standard Time'), + 'short', + ) + }) + + it('renders the amount', () => { + expect(messageField.text()).toContain('350.00 GDD') + }) + + it('contains the link as text', () => { + expect(messageField.text()).toContain( + 'This message also contains a link: https://gradido.net/de/', + ) + }) + + it('contains a link to the given address', () => { + expect(messageField.find('a').attributes('href')).toBe('https://gradido.net/de/') + }) + }) + }) }) From 0cb318907398c1a806cb57bd2f1e495a818c5eba Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Sun, 13 Nov 2022 13:24:00 +0100 Subject: [PATCH 7/7] unit tests for HISTORY type contribution messages --- .../ContributionMessagesListItem.spec.js | 66 ++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js index c1a4e65c6..1b4f963e8 100644 --- a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js +++ b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.spec.js @@ -3,12 +3,16 @@ import ContributionMessagesListItem from './ContributionMessagesListItem.vue' const localVue = global.localVue +const dateMock = jest.fn((d) => d) +const numberMock = jest.fn((n) => n) + describe('ContributionMessagesListItem', () => { let wrapper const mocks = { $t: jest.fn((t) => t), - $d: jest.fn((d) => d), + $d: dateMock, + $n: numberMock, } describe('if message author has moderator role', () => { @@ -189,4 +193,64 @@ and here is the link to the repository: https://github.com/gradido/gradido`) }) }) }) + + describe('contribution message type HISTORY', () => { + const propsData = { + message: { + id: 111, + message: `Sun Nov 13 2022 13:05:48 GMT+0100 (Central European Standard Time) +--- +This message also contains a link: https://gradido.net/de/ +--- +350.00`, + createdAt: '2022-08-29T12:23:27.000Z', + updatedAt: null, + type: 'HISTORY', + userFirstName: 'Peter', + userLastName: 'Lustig', + userId: 107, + __typename: 'ContributionMessage', + }, + } + + const itemWrapper = () => { + return mount(ContributionMessagesListItem, { + localVue, + mocks, + propsData, + }) + } + + let messageField + + describe('render HISTORY message', () => { + beforeEach(() => { + jest.clearAllMocks() + wrapper = itemWrapper() + messageField = wrapper.find('div.is-not-moderator.text-left > div:nth-child(4)') + }) + + it('renders the date', () => { + expect(dateMock).toBeCalledWith( + new Date('Sun Nov 13 2022 13:05:48 GMT+0100 (Central European Standard Time'), + 'short', + ) + }) + + it('renders the amount', () => { + expect(numberMock).toBeCalledWith(350, 'decimal') + expect(messageField.text()).toContain('350 GDD') + }) + + it('contains the link as text', () => { + expect(messageField.text()).toContain( + 'This message also contains a link: https://gradido.net/de/', + ) + }) + + it('contains a link to the given address', () => { + expect(messageField.find('a').attributes('href')).toBe('https://gradido.net/de/') + }) + }) + }) })