Skip to content

Commit eb48a06

Browse files
author
Scott Batson
committed
revise donation-container test to handle its own state
1 parent ad8ce82 commit eb48a06

File tree

3 files changed

+25
-30
lines changed

3 files changed

+25
-30
lines changed

app/components/donation/donation-container.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ const {
99
} = Ember;
1010

1111
export default Component.extend({
12-
// canAddCard: true,
1312
classNames: ['donation-container'],
1413
donationAmount: 0,
1514
projectTitle: null,
15+
isAddingCard: null,
1616

1717
canAddCard: computed('hasCards', 'isAddingCard', function() {
1818
let { hasCards, isAddingCard } = this.getProperties('hasCards', 'isAddingCard');

tests/integration/components/donation/donation-container-test.js

+21-29
Original file line numberDiff line numberDiff line change
@@ -35,39 +35,31 @@ test('it renders correctly', function(assert) {
3535
assert.ok(page.creditCardIsRendered, 'Credit card component is rendered.');
3636
});
3737

38-
test('it handles clicking card submit button correctly', function(assert) {
39-
assert.expect(1);
40-
41-
this.set('amount', 100);
42-
this.set('projectTitle', 'CodeCorps');
38+
test('properly renders card list and donation button', function(assert) {
39+
assert.expect(2);
4340

44-
let expectedProps = {
45-
cardNumber: '1234-5678-9012-3456',
46-
cvc: '123',
47-
month: '12',
48-
year: '2020'
49-
};
41+
let cards = [ { foo: 'bar '}, { foo: 'baz' } ];
5042

51-
function donateHandler(actualProps) {
52-
assert.deepEqual(actualProps, expectedProps, 'Card parameters were passed correctly.');
53-
}
43+
this.set('cards', cards);
44+
page.render(hbs`{{donation/donation-container donate=(action donateHandler) cards=cards}}`);
45+
assert.ok(page.cardListIsRendered, 'credit card list is rendered');
46+
assert.ok(page.donateButtonRendered, 'donation button is rendered');
47+
});
5448

55-
stubService(this, 'stripe', {
56-
card: {
57-
validateCardNumber: () => true,
58-
validateCVC: () => true,
59-
validateExpiry: () => true
60-
}
61-
});
49+
test('properly hides card list and donation button', function(assert) {
50+
assert.expect(3);
6251

63-
setHandler(this, 'donate', donateHandler);
52+
this.set('cards', []);
53+
page.render(hbs`{{donation/donation-container donate=(action donateHandler) cards=cards}}`);
54+
assert.notOk(page.cardListIsRendered, 'credit card list is rendered');
55+
assert.ok(page.creditCardIsRendered, 'Credit card component is rendered.');
56+
assert.notOk(page.donateButtonRendered, 'donation button is hidden');
57+
});
6458

65-
page.render(hbs`{{donation/donation-container donate=(action donateHandler) donationAmount=amount projectTitle=projectTitle}}`);
59+
test('properly hides card list', function(assert) {
60+
assert.expect(1);
6661

67-
page.creditCard
68-
.cardNumber(expectedProps.cardNumber)
69-
.cardMonth(expectedProps.month)
70-
.cardYear(expectedProps.year)
71-
.cardCVC(expectedProps.cvc)
72-
.clickSubmit();
62+
this.set('responseError', { message: 'foo' });
63+
page.render(hbs`{{donation/donation-container donate=(action donateHandler) responseError=responseError}}`);
64+
assert.ok(page.errorsRendered, 'response error is properly shown');
7365
});

tests/pages/components/donation/donation-container.js

+3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ export default {
77
creditCard,
88

99
creditCardIsRendered: isVisible('.credit-card-form'),
10+
cardListIsRendered: isVisible('.card-list'),
1011

1112
donationAmountText: text('.donation-amount'),
13+
donateButtonRendered: isVisible('button.donate'),
14+
errorsRendered: isVisible('.error-formatter'),
1215
paymentInformationText: text('.payment-information')
1316
};

0 commit comments

Comments
 (0)