From 660f552e0032627058231929436e3af0f7c5b053 Mon Sep 17 00:00:00 2001 From: Ethan Tison <97046400+EJTison@users.noreply.github.com> Date: Wed, 5 Oct 2022 13:48:19 -0400 Subject: [PATCH 1/6] I have no idea if this would work. --- .../editRecurringGifts/step1/editRecurringGifts.component.js | 4 ++++ .../editRecurringGifts/step1/editRecurringGifts.tpl.html | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js index 63ae2a559..9a06ddb21 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js +++ b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js @@ -41,6 +41,10 @@ class EditRecurringGiftsController { allPaymentMethodsValid () { return every(this.recurringGifts, gift => gift.paymentMethod) } + + allAmountsValid () { + return every(this.recurringGifts, gift => gift.amount) + } } export default angular diff --git a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html index 35fe0013e..fcfa7e485 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html +++ b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html @@ -51,7 +51,7 @@

Make changes to your recurring gifts

Retry Continue From 9e73530bf35e6c7b848262e3a181ef5355f1da2e Mon Sep 17 00:00:00 2001 From: Ethan Tison <97046400+EJTison@users.noreply.github.com> Date: Wed, 5 Oct 2022 15:50:53 -0400 Subject: [PATCH 2/6] Added test for new method... Types may not let test pass --- .../editRecurringGifts.component.spec.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js index 955154120..13712154d 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js +++ b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js @@ -72,5 +72,24 @@ describe('editRecurringGiftsModal', () => { expect(self.controller.allPaymentMethodsValid()).toEqual(false) }) }) + + describe('allAmountsValid', () => { + beforeEach(() => { + RecurringGiftModel.amount = 50 + }) + + it('should return true if all amounts are valid', () => { + self.controller.recurringGifts = [new RecurringGiftModel({}).setDefaults(), new RecurringGiftModel({}).setDefaults()] + + expect(self.controller.allAmountsValid()).toEqual(true) + }) + + it('should return false if any amount is invalid', () => { + self.controller.recurringGifts = [new RecurringGiftModel({}).setDefaults(), new RecurringGiftModel({}).setDefaults()] + self.controller.recurringGifts[0].amount = '' + + expect(self.controller.allAmountsValid()).toEqual(false) + }) + }) }) }) From 140a88f34a81fe89be9e167fd6da820fb385a0e2 Mon Sep 17 00:00:00 2001 From: Ethan Tison <97046400+EJTison@users.noreply.github.com> Date: Fri, 7 Oct 2022 10:04:58 -0400 Subject: [PATCH 3/6] Created Gift Validator Service --- .../giftHelpers/giftValidator.service.js | 5 ++++ .../giftHelpers/giftValidator.service.spec.js | 30 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/common/services/giftHelpers/giftValidator.service.js create mode 100644 src/common/services/giftHelpers/giftValidator.service.spec.js diff --git a/src/common/services/giftHelpers/giftValidator.service.js b/src/common/services/giftHelpers/giftValidator.service.js new file mode 100644 index 000000000..7add3d9c0 --- /dev/null +++ b/src/common/services/giftHelpers/giftValidator.service.js @@ -0,0 +1,5 @@ + +export function allGiftsValid (recurringGifts) { + return every(recurringGifts, gift => gift.paymentMethod) && every(recurringGifts, gift => gift.amount) + } + diff --git a/src/common/services/giftHelpers/giftValidator.service.spec.js b/src/common/services/giftHelpers/giftValidator.service.spec.js new file mode 100644 index 000000000..0ff775718 --- /dev/null +++ b/src/common/services/giftHelpers/giftValidator.service.spec.js @@ -0,0 +1,30 @@ + +import * as giftValidator from './giftValidator.service' +import RecurringGiftModel from 'common/models/recurringGift.model' + +describe('giftValidator service', () => { + + describe('allGiftsValid', () => { + beforeEach(() => { + RecurringGiftModel.amount = 50 + recurringGifts = [new RecurringGiftModel({}).setDefaults(), new RecurringGiftModel({}).setDefaults()] + }) + + it('should return true if all payment methods and all amounts are valid', () => { + expect(giftValidator.allGiftsValid(recurringGifts)).toEqual(true) + }) + + it('should return false if any payment method is invalid', () => { + + recurringGifts[0].paymentMethodId = 'something invalid' + + expect(giftValidator.allGiftsValid(recurringGifts)).toEqual(false) + }) + + it('should return false if any amount is invalid', () => { + recurringGifts[0].amount = '' + + expect(giftValidator.allGiftsValid(recurringGifts)).toEqual(false) + }) + }) +}) From 82d1157d3e84c287d97e3c19451dc22ba015067d Mon Sep 17 00:00:00 2001 From: Ethan Tison <97046400+EJTison@users.noreply.github.com> Date: Fri, 7 Oct 2022 10:08:17 -0400 Subject: [PATCH 4/6] Alter html files to rely on soon-to-be-implemented component refactor --- .../editRecurringGifts/step1/editRecurringGifts.tpl.html | 2 +- .../step3/configureRecentRecipients.tpl.html | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html index fcfa7e485..87d49c609 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html +++ b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.tpl.html @@ -51,7 +51,7 @@

Make changes to your recurring gifts

Retry Continue diff --git a/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.tpl.html b/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.tpl.html index 22d0af798..37bd28a2d 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.tpl.html +++ b/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.tpl.html @@ -37,6 +37,9 @@

Set up your new recurring gifts

- +
From 62434acf26d14e1f7b5c72cebaad41f7f01ddf9e Mon Sep 17 00:00:00 2001 From: Ethan Tison <97046400+EJTison@users.noreply.github.com> Date: Fri, 7 Oct 2022 11:08:43 -0400 Subject: [PATCH 5/6] Think the component will work, but little confidence in the spec... --- .../step1/editRecurringGifts.component.js | 9 ++-- .../editRecurringGifts.component.spec.js | 43 ++----------------- 2 files changed, 7 insertions(+), 45 deletions(-) diff --git a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js index 9a06ddb21..60771c613 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js +++ b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.js @@ -5,6 +5,7 @@ import giftListItem from 'common/components/giftViews/giftListItem/giftListItem. import giftUpdateView from 'common/components/giftViews/giftUpdateView/giftUpdateView.component' import donationsService from 'common/services/api/donations.service' +import { allGiftsValid } from 'common/services/giftHelpers/giftValidator.service' import template from './editRecurringGifts.tpl.html' @@ -38,12 +39,8 @@ class EditRecurringGiftsController { } } - allPaymentMethodsValid () { - return every(this.recurringGifts, gift => gift.paymentMethod) - } - - allAmountsValid () { - return every(this.recurringGifts, gift => gift.amount) + allGiftsValid () { + return allGiftsValid(this.recurringGifts) } } diff --git a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js index 13712154d..db59328ba 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js +++ b/src/app/profile/yourGiving/editRecurringGifts/step1/editRecurringGifts.component.spec.js @@ -50,45 +50,10 @@ describe('editRecurringGiftsModal', () => { }) }) - describe('allPaymentMethodsValid', () => { - beforeEach(() => { - RecurringGiftModel.paymentMethods = [ - { - self: { uri: '/selfservicepaymentinstruments/crugive/giydgnrxgm=' } - } - ] - }) - - it('should return true if all payment methods are valid', () => { - self.controller.recurringGifts = [new RecurringGiftModel({}).setDefaults(), new RecurringGiftModel({}).setDefaults()] - - expect(self.controller.allPaymentMethodsValid()).toEqual(true) - }) - - it('should return false if any payment methods is invalid', () => { - self.controller.recurringGifts = [new RecurringGiftModel({}).setDefaults(), new RecurringGiftModel({}).setDefaults()] - self.controller.recurringGifts[0].paymentMethodId = 'something invalid' - - expect(self.controller.allPaymentMethodsValid()).toEqual(false) - }) - }) - - describe('allAmountsValid', () => { - beforeEach(() => { - RecurringGiftModel.amount = 50 - }) - - it('should return true if all amounts are valid', () => { - self.controller.recurringGifts = [new RecurringGiftModel({}).setDefaults(), new RecurringGiftModel({}).setDefaults()] - - expect(self.controller.allAmountsValid()).toEqual(true) - }) - - it('should return false if any amount is invalid', () => { - self.controller.recurringGifts = [new RecurringGiftModel({}).setDefaults(), new RecurringGiftModel({}).setDefaults()] - self.controller.recurringGifts[0].amount = '' - - expect(self.controller.allAmountsValid()).toEqual(false) + describe('allGiftsValid', () => { + it('should call the GiftValidator service', () => { + self.controller.allGiftsValid() + expect(allGiftsValid).toHaveBeenCalled() }) }) }) From f8e0ee3b6e0b4a0dffcad8e736357b9606aadb06 Mon Sep 17 00:00:00 2001 From: Ethan Tison <97046400+EJTison@users.noreply.github.com> Date: Fri, 7 Oct 2022 13:07:12 -0400 Subject: [PATCH 6/6] I have no idea how to solve this problem... Might have to leave this for someone who actually knows this stuff --- .../step3/configureRecentRecipients.component.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.component.js b/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.component.js index e4f5b6c00..a25e6f6fa 100644 --- a/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.component.js +++ b/src/app/profile/yourGiving/editRecurringGifts/step3/configureRecentRecipients.component.js @@ -3,6 +3,7 @@ import angular from 'angular' import giftListItem from 'common/components/giftViews/giftListItem/giftListItem.component' import giftUpdateView from 'common/components/giftViews/giftUpdateView/giftUpdateView.component' +import { allGiftsValid } from 'common/services/giftHelpers/giftValidator.service' import template from './configureRecentRecipients.tpl.html' const componentName = 'step3ConfigureRecentRecipients' @@ -10,6 +11,10 @@ const componentName = 'step3ConfigureRecentRecipients' class ConfigureRecentRecipientsController { /* @ngInject */ constructor () /* eslint-disable-line no-useless-constructor */ {} + + allGiftsValid () { + return allGiftsValid(//Somehow I need to get access to the recurring gifts here??) + } } export default angular