diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index d92f42f5d..fbd9c8e91 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -69,6 +69,7 @@ "memo": "Nachricht", "message": "Nachricht", "new_balance": "Neuer Kontostand nach Bestätigung", + "no_gdd_available": "Du hast keine GDD zum versenden.", "password": "Passwort", "passwordRepeat": "Passwort wiederholen", "password_new": "Neues Passwort", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 014d449a0..534aa25e8 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -69,6 +69,7 @@ "memo": "Message", "message": "Message", "new_balance": "Account balance after confirmation", + "no_gdd_available": "You do not have GDD to send.", "password": "Password", "passwordRepeat": "Repeat password", "password_new": "New password", diff --git a/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.spec.js b/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.spec.js index 463613449..25683e6df 100644 --- a/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.spec.js +++ b/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.spec.js @@ -21,7 +21,7 @@ describe('GddSend', () => { } const propsData = { - balance: 100.0, + balance: 0.0, } const Wrapper = () => { @@ -37,7 +37,44 @@ describe('GddSend', () => { expect(wrapper.find('div.transaction-form').exists()).toBeTruthy() }) + describe('transaction form disable because balance 0,0 GDD', () => { + it('has a disabled input field of type email', () => { + expect(wrapper.find('#input-group-1').find('input').attributes('disabled')).toBe('disabled') + }) + it('has a disabled input field for amount', () => { + expect(wrapper.find('#input-2').find('input').attributes('disabled')).toBe('disabled') + }) + it('has a disabled textarea field ', () => { + expect(wrapper.find('#input-3').find('textarea').attributes('disabled')).toBe('disabled') + }) + it('has a message indicating that there are no GDDs to send ', () => { + expect(wrapper.find('.text-danger').text()).toBe('form.no_gdd_available') + }) + it('has no reset button and no submit button ', () => { + expect(wrapper.find('.test-buttons').exists()).toBeFalsy() + }) + }) + describe('transaction form', () => { + beforeEach(() => { + wrapper.setProps({ balance: 100.0 }) + }) + describe('transaction form show because balance 100,0 GDD', () => { + it('has no warning message ', () => { + expect(wrapper.find('.text-danger').exists()).toBeFalsy() + }) + it('has a reset button', () => { + expect(wrapper.find('.test-buttons').findAll('button').at(0).attributes('type')).toBe( + 'reset', + ) + }) + it('has a submit button', () => { + expect(wrapper.find('.test-buttons').findAll('button').at(1).attributes('type')).toBe( + 'submit', + ) + }) + }) + describe('email field', () => { it('has an input field of type email', () => { expect(wrapper.find('#input-group-1').find('input').attributes('type')).toBe('email') diff --git a/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.vue b/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.vue index 364f54ac7..0f5650543 100644 --- a/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.vue +++ b/frontend/src/views/Pages/SendOverview/GddSend/TransactionForm.vue @@ -41,6 +41,7 @@ placeholder="E-Mail" style="font-size: large" class="pl-3" + :disabled="isBalanceDisabled" > @@ -76,6 +77,7 @@ :placeholder="$n(0.01)" style="font-size: large" class="pl-3" + :disabled="isBalanceDisabled" > @@ -105,6 +107,7 @@ v-model="form.memo" class="pl-3" style="font-size: large" + :disabled="isBalanceDisabled" > @@ -114,7 +117,10 @@
- +
+ {{ $t('form.no_gdd_available') }} +
+ {{ $t('form.reset') }} @@ -192,6 +198,11 @@ export default { this.form.email = this.form.email.trim() }, }, + computed: { + isBalanceDisabled() { + return this.balance <= 0 ? 'disabled' : false + }, + }, }