Removed stripeConnected attributes in favor of stripeAccount entity

This commit is contained in:
Vesa Luusua 2019-03-22 01:25:29 +02:00
parent b8b919ca11
commit 63c9d73a3d
10 changed files with 37 additions and 33 deletions

View file

@ -156,7 +156,7 @@ class EditListingWizard extends Component {
handlePublishListing(id) {
const { onPublishListingDraft, currentUser } = this.props;
const stripeConnected =
currentUser && currentUser.attributes && currentUser.attributes.stripeConnected;
currentUser && currentUser.stripeAccount && !!currentUser.stripeAccount.id;
if (stripeConnected) {
onPublishListingDraft(id);
} else {

View file

@ -78,7 +78,7 @@ class ModalMissingInformation extends Component {
const emailUnverified = !!currentUser.id && !currentUser.attributes.emailVerified;
const emailVerificationNeeded = hasListingsOrOrders && emailUnverified;
const stripeAccountMissing = !!currentUser.id && !currentUser.attributes.stripeConnected;
const stripeAccountMissing = !!currentUser.id && !currentUser.stripeAccount;
const stripeAccountNeeded = currentUserHasListings && stripeAccountMissing;
// Show reminder

View file

@ -392,7 +392,6 @@ exports[`TransactionPanel - Order accepted matches snapshot 1`] = `
"firstName": "customer first name",
"lastName": "customer last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer",
@ -1084,7 +1083,6 @@ exports[`TransactionPanel - Order autodeclined matches snapshot 1`] = `
"firstName": "customer first name",
"lastName": "customer last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer",
@ -1776,7 +1774,6 @@ exports[`TransactionPanel - Order canceled matches snapshot 1`] = `
"firstName": "customer first name",
"lastName": "customer last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer",
@ -2468,7 +2465,6 @@ exports[`TransactionPanel - Order declined matches snapshot 1`] = `
"firstName": "customer first name",
"lastName": "customer last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer",
@ -3170,7 +3166,6 @@ exports[`TransactionPanel - Order delivered matches snapshot 1`] = `
"firstName": "customer first name",
"lastName": "customer last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer",
@ -3867,7 +3862,6 @@ exports[`TransactionPanel - Order enquired matches snapshot 1`] = `
"firstName": "customer first name",
"lastName": "customer last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer",
@ -4557,7 +4551,6 @@ exports[`TransactionPanel - Order preauthorized matches snapshot 1`] = `
"firstName": "customer first name",
"lastName": "customer last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer",
@ -5249,7 +5242,6 @@ exports[`TransactionPanel - Sale accepted matches snapshot 1`] = `
"firstName": "provider first name",
"lastName": "provider last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider",
@ -5941,7 +5933,6 @@ exports[`TransactionPanel - Sale autodeclined matches snapshot 1`] = `
"firstName": "provider first name",
"lastName": "provider last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider",
@ -6633,7 +6624,6 @@ exports[`TransactionPanel - Sale canceled matches snapshot 1`] = `
"firstName": "provider first name",
"lastName": "provider last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider",
@ -7325,7 +7315,6 @@ exports[`TransactionPanel - Sale declined matches snapshot 1`] = `
"firstName": "provider first name",
"lastName": "provider last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider",
@ -8027,7 +8016,6 @@ exports[`TransactionPanel - Sale delivered matches snapshot 1`] = `
"firstName": "provider first name",
"lastName": "provider last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider",
@ -8724,7 +8712,6 @@ exports[`TransactionPanel - Sale enquired matches snapshot 1`] = `
"firstName": "provider first name",
"lastName": "provider last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider",
@ -9414,7 +9401,6 @@ exports[`TransactionPanel - Sale preauthorized matches snapshot 1`] = `
"firstName": "provider first name",
"lastName": "provider last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider",

View file

@ -210,7 +210,6 @@ exports[`ListingPage matches snapshot 1`] = `
"firstName": "user-2 first name",
"lastName": "user-2 last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "user-2",

View file

@ -87,7 +87,6 @@ exports[`PasswordChangePage matches snapshot 1`] = `
"firstName": "user1 first name",
"lastName": "user1 last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "user1",

View file

@ -37,7 +37,10 @@ export const PayoutPreferencesPageComponent = props => {
const ensuredCurrentUser = ensureCurrentUser(currentUser);
const currentUserLoaded = !!ensuredCurrentUser.id;
const { stripeConnected } = ensuredCurrentUser.attributes;
const stripeConnected =
currentUserLoaded &&
!!ensuredCurrentUser.stripeAccount &&
!!ensuredCurrentUser.stripeAccount.id;
const tabs = [
{

View file

@ -1,16 +1,14 @@
import React from 'react';
import { renderShallow } from '../../util/test-helpers';
import { fakeIntl, createCurrentUser } from '../../util/test-data';
import { fakeIntl, createCurrentUser, createStripeAccount } from '../../util/test-data';
import { PayoutPreferencesPageComponent } from './PayoutPreferencesPage';
const noop = () => null;
describe('PayoutPreferencesPage', () => {
it('matches snapshot with Stripe not connected', () => {
const currentUser = createCurrentUser('stripe-not-connected', {
stripeConnected: false,
});
expect(currentUser.attributes.stripeConnected).toEqual(false);
const currentUser = createCurrentUser('stripe-not-connected');
expect(currentUser.stripeAccount).toBeUndefined();
const tree = renderShallow(
<PayoutPreferencesPageComponent
currentUser={currentUser}
@ -25,8 +23,14 @@ describe('PayoutPreferencesPage', () => {
expect(tree).toMatchSnapshot();
});
it('matches snapshot with Stripe connected', () => {
const currentUser = createCurrentUser('stripe-connected');
expect(currentUser.attributes.stripeConnected).toEqual(true);
const currentUser = createCurrentUser(
'stripe-connected',
{},
{
stripeAccount: createStripeAccount(),
}
);
expect(currentUser.stripeAccount).toBeDefined();
const tree = renderShallow(
<PayoutPreferencesPageComponent
currentUser={currentUser}
@ -41,8 +45,14 @@ describe('PayoutPreferencesPage', () => {
expect(tree).toMatchSnapshot();
});
it('matches snapshot with details submitted', () => {
const currentUser = createCurrentUser('stripe-connected');
expect(currentUser.attributes.stripeConnected).toEqual(true);
const currentUser = createCurrentUser(
'stripe-connected',
{},
{
stripeAccount: createStripeAccount(),
}
);
expect(currentUser.stripeAccount).toBeDefined();
const tree = renderShallow(
<PayoutPreferencesPageComponent
currentUser={currentUser}

View file

@ -37,7 +37,6 @@ exports[`TransactionPage - Order matches snapshot 1`] = `
"firstName": "customer1 first name",
"lastName": "customer1 last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "customer1",
@ -242,7 +241,6 @@ exports[`TransactionPage - Sale matches snapshot 1`] = `
"firstName": "provider1 first name",
"lastName": "provider1 last name",
},
"stripeConnected": true,
},
"id": UUID {
"uuid": "provider1",

View file

@ -25,6 +25,16 @@ export const createBooking = (id, attributes = {}) => ({
},
});
// Create a stripeAccount that conforms to the util/types stripeAccount schema
export const createStripeAccount = (id, attributes = {}) => ({
id: new UUID(id),
type: 'stripeAccount',
attributes: {
stripeAccountId: 'acc_testiaccountid',
...attributes,
},
});
// Create a user that conforms to the util/types user schema
export const createUser = (id, attributes = {}) => ({
id: new UUID(id),
@ -41,7 +51,7 @@ export const createUser = (id, attributes = {}) => ({
});
// Create a user that conforms to the util/types currentUser schema
export const createCurrentUser = (id, attributes = {}) => ({
export const createCurrentUser = (id, attributes = {}, includes = {}) => ({
id: new UUID(id),
type: 'currentUser',
attributes: {
@ -55,9 +65,9 @@ export const createCurrentUser = (id, attributes = {}) => ({
displayName: `${id} display name`,
abbreviatedName: `${id} abbreviated name`,
},
stripeConnected: true,
...attributes,
},
...includes,
});
// Create a user that conforms to the util/types user schema

View file

@ -104,7 +104,6 @@ propTypes.currentUser = shape({
abbreviatedName: string.isRequired,
bio: string,
}).isRequired,
stripeConnected: bool.isRequired,
}),
profileImage: propTypes.image,
});