diff --git a/frontend/src/components/Transaction.spec.js b/frontend/src/components/Transaction.spec.js new file mode 100644 index 000000000..43dc44782 --- /dev/null +++ b/frontend/src/components/Transaction.spec.js @@ -0,0 +1,31 @@ +import { mount } from '@vue/test-utils' +import Transaction from './Transaction' + +const localVue = global.localVue + +describe('Transaction', () => { + let wrapper + + const mocks = { + $i18n: { + locale: 'en', + }, + $t: jest.fn((t) => t), + $n: jest.fn((n) => n), + $d: jest.fn((d) => d), + } + + const Wrapper = () => { + return mount(Transaction, { localVue, mocks }) + } + + describe('mount', () => { + beforeEach(() => { + wrapper = Wrapper() + }) + + it('renders the component', () => { + expect(wrapper.find('div.gdt-transaction-list-item').exists()).toBeTruthy() + }) + }) +}) diff --git a/frontend/src/components/Transaction.vue b/frontend/src/components/Transaction.vue new file mode 100644 index 000000000..03b559463 --- /dev/null +++ b/frontend/src/components/Transaction.vue @@ -0,0 +1,124 @@ + + diff --git a/frontend/src/components/TransactionCollapse.spec.js b/frontend/src/components/TransactionCollapse.spec.js new file mode 100644 index 000000000..f27c3ae66 --- /dev/null +++ b/frontend/src/components/TransactionCollapse.spec.js @@ -0,0 +1,152 @@ +import { mount } from '@vue/test-utils' +import TransactionCollapse from './TransactionCollapse' + +const localVue = global.localVue + +describe('TransactionCollapse', () => { + let wrapper + + const mocks = { + $t: jest.fn((t) => t), + $n: jest.fn((n) => n), + } + + const Wrapper = (propsData) => { + return mount(TransactionCollapse, { localVue, mocks, propsData }) + } + + describe('mount with gdtEntryType: 1', () => { + beforeEach(() => { + const propsData = { + amount: 100, + gdt: 110, + factor: 22, + gdtEntryType: 1, + } + + wrapper = Wrapper(propsData) + }) + + it('renders the component', () => { + expect(wrapper.find('div.gdt-transaction-collapse').exists()).toBeTruthy() + }) + + it('checks the prop gdtEntryType ', () => { + expect(wrapper.props().gdtEntryType).toBe(1) + }) + + it('renders the component collapse-header', () => { + expect(wrapper.find('.gdt-list-collapse-header-text')).toBeTruthy() + }) + + it('renders the component collapse-headline', () => { + expect(wrapper.find('#collapse-headline').text()).toBe('gdt.calculation') + }) + + it('renders the component collapse-first', () => { + expect(wrapper.find('#collapse-first').text()).toBe('gdt.factor') + }) + + it('renders the component collapse-second', () => { + expect(wrapper.find('#collapse-second').text()).toBe('gdt.formula') + }) + + it('renders the component collapse-firstMath', () => { + expect(wrapper.find('#collapse-firstMath').text()).toBe('22 GDT pro €') + }) + + it('renders the component collapse-secondMath', () => { + expect(wrapper.find('#collapse-secondMath').text()).toBe('100 € * 22 GDT / € = 110 GDT') + }) + }) + + describe('mount with gdtEntryType: 7', () => { + beforeEach(() => { + const propsData = { + amount: 100, + gdt: 2200, + factor: 22, + gdtEntryType: 7, + } + + wrapper = Wrapper(propsData) + }) + + it('renders the component', () => { + expect(wrapper.find('div.gdt-transaction-collapse').exists()).toBeTruthy() + }) + + it('checks the prop gdtEntryType ', () => { + expect(wrapper.props().gdtEntryType).toBe(7) + }) + + it('renders the component collapse-header', () => { + expect(wrapper.find('.gdt-list-collapse-header-text')).toBeTruthy() + }) + + it('renders the component collapse-headline', () => { + expect(wrapper.find('#collapse-headline').text()).toBe('gdt.conversion-gdt-euro') + }) + + it('renders the component collapse-first', () => { + expect(wrapper.find('#collapse-first').text()).toBe('gdt.raise') + }) + + it('renders the component collapse-second', () => { + expect(wrapper.find('#collapse-second').text()).toBe('gdt.conversion') + }) + + it('renders the component collapse-firstMath', () => { + expect(wrapper.find('#collapse-firstMath').text()).toBe('2200 %') + }) + + it('renders the component collapse-secondMath', () => { + expect(wrapper.find('#collapse-secondMath').text()).toBe('100 GDT * 2200 % = 2200 GDT') + }) + }) + + describe('mount with gdtEntryType: 4', () => { + beforeEach(() => { + const propsData = { + amount: 100, + gdt: 2200, + factor: 22, + gdtEntryType: 4, + } + + wrapper = Wrapper(propsData) + }) + + it('renders the component', () => { + expect(wrapper.find('div.gdt-transaction-collapse').exists()).toBeTruthy() + }) + + it('checks the prop gdtEntryType ', () => { + expect(wrapper.props().gdtEntryType).toBe(4) + }) + + it('renders the component collapse-header', () => { + expect(wrapper.find('.gdt-list-collapse-header-text')).toBeTruthy() + }) + + it('renders the component collapse-headline', () => { + expect(wrapper.find('#collapse-headline').text()).toBe('gdt.publisher') + }) + + it('renders the component collapse-first', () => { + expect(wrapper.find('#collapse-first').text()).toBe('') + }) + + it('renders the component collapse-second', () => { + expect(wrapper.find('#collapse-second').text()).toBe('') + }) + + it('renders the component collapse-firstMath', () => { + expect(wrapper.find('#collapse-firstMath').text()).toBe('') + }) + + it('renders the component collapse-secondMath', () => { + expect(wrapper.find('#collapse-secondMath').text()).toBe('') + }) + }) +}) diff --git a/frontend/src/components/TransactionCollapse.vue b/frontend/src/components/TransactionCollapse.vue new file mode 100644 index 000000000..854282a43 --- /dev/null +++ b/frontend/src/components/TransactionCollapse.vue @@ -0,0 +1,76 @@ + + diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index ae1822396..bc46aeac8 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -137,15 +137,6 @@ "send_gradido":"Gradido versenden", "add_work":"neuer Gemeinschaftsbeitrag" }, - "profil": { - "activity": { - "new":"Neue Gemeinschaftsstunden eintragen", - "list":"Meine Gemeinschaftsstunden Liste" - }, - "user-data": { - "change-success": "Deine Daten wurden gespeichert." - } - }, "navbar" : { "my-profil":"Mein Profil", "settings":"Einstellungen", @@ -183,8 +174,8 @@ "formula":"Berechungsformel", "no-transactions":"Du hast zur Zeit keine Transaktionen", "publisher":"Dein geworbenes Mitglied hat einen Beitrag bezahlt", - "gdt-receive":"Aktion", - "your-share":"Geworbenes Mitglied", + "action":"Aktion", + "recruited-member":"Geworbenes Mitglied", "contribution":"Beitrag" } } diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 4bd04116d..7dcfd5dec 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -137,16 +137,6 @@ "send_gradido":"Send Gradido", "add_work":"New Community Contribution" }, - "profil": { - "transactions":"transactions", - "activity": { - "new":"Register new community hours", - "list":"My Community Hours List" - }, - "user-data": { - "change-success": "Your data has been saved." - } - }, "navbar" : { "my-profil":"My profile", "settings":"Settings", @@ -184,8 +174,8 @@ "formula": "Calculation formula", "no-transactions":"You currently have no transactions", "publisher":"A member you referred has paid a contribution", - "gdt-receive":"GDT receive", - "your-share":"Your share", + "action":"Action", + "recruited-member":"Recruited Member", "contribution":"Contribution" } } diff --git a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue index 3bdc9f42c..1ad4ba13e 100644 --- a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue +++ b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue @@ -17,134 +17,14 @@ } in transactionsGdt" :key="transactionId" > -
- -
- -
- - -
- - i - -
- - - - - -
-
{{ $t('gdt.gdt-receive') }}
-
{{ $t('gdt.credit') }}
-
-
-
{{ comment }}
-
{{ $n(gdt, 'decimal') }} GDT
-
-
- - -
-
{{ $t('gdt.your-share') }}
-
{{ $t('gdt.credit') }}
-
-
-
5%
-
{{ $n(amount, 'decimal') }} GDT
-
-
- - -
-
{{ $t('gdt.contribution') }}
-
{{ $t('gdt.credit') }}
-
-
-
{{ $n(amount, 'decimal') }} €
-
{{ $n(gdt, 'decimal') }} GDT
-
-
- - - - - -
- {{ $t('form.memo') }} -
-
- {{ comment }} -
-
- - - -
- {{ $t('form.date') }} -
-
- {{ $d($moment(date), 'long') }} {{ $i18n.locale === 'de' ? 'Uhr' : '' }} -
-
-
- - - - -
- - -
- {{ $t('gdt.conversion-gdt-euro') }} -
-
- {{ $t('gdt.publisher') }} -
-
{{ $t('gdt.calculation') }}
-
- - - -
-
{{ $t('gdt.raise') }}
-
{{ $t('gdt.conversion') }}
-
-
-
{{ factor * 100 }} %
-
- {{ $n(amount, 'decimal') }} GDT * {{ factor * 100 }} % = - {{ $n(gdt, 'decimal') }} GDT -
-
-
- - -
-
-
- - - -
-
{{ $t('gdt.factor') }}
-
{{ $t('gdt.formula') }}
-
-
-
{{ factor }} GDT pro €
-
- {{ $n(amount, 'decimal') }} € * {{ factor }} GDT / € = - {{ $n(gdt, 'decimal') }} GDT -
-
-
-
-
- + import { listGDTEntriesQuery } from '../../../graphql/queries' import PaginationButtons from '../../../components/PaginationButtons' - -function iconByType(typeId) { - switch (typeId) { - case 1: - case 2: - case 3: - case 5: - case 6: - return { icon: 'heart', classes: 'gradido-global-color-accent' } - case 4: - return { icon: 'person-check', classes: 'gradido-global-color-accent' } - case 7: - return { icon: 'gift', classes: 'gradido-global-color-accent' } - } -} +import Transaction from '../../../components/Transaction.vue' export default { name: 'gdt-transaction-list', components: { PaginationButtons, + Transaction, }, data() { return { @@ -223,18 +90,6 @@ export default { this.$toasted.error(error.message) }) }, - getIcon(givenType) { - const type = iconByType(givenType) - if (type) - return { - icon: type.icon, - class: type.classes + ' m-mb-1 font2em', - } - this.throwError('no icon to given type: ' + givenType) - }, - throwError(msg) { - throw new Error(msg) - }, showNext() { this.currentPage++ this.updateGdt()