From f88293da07895dd3fcd95ab8fbfdf98fb82b539f Mon Sep 17 00:00:00 2001 From: Kimmo Puputti Date: Thu, 9 Nov 2017 13:28:12 +0200 Subject: [PATCH] Add message type and test helper --- src/util/propTypes.js | 45 ++++++++++++++++++++++++++++--------------- src/util/test-data.js | 13 +++++++++++++ 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/src/util/propTypes.js b/src/util/propTypes.js index 1935415d..b983b275 100644 --- a/src/util/propTypes.js +++ b/src/util/propTypes.js @@ -62,6 +62,22 @@ export const place = shape({ country: string, // country code, e.g. FI, US }); +// Denormalised image object +export const image = shape({ + id: uuid.isRequired, + type: value('image').isRequired, + attributes: shape({ + sizes: arrayOf( + shape({ + width: number.isRequired, + height: number.isRequired, + name: string.isRequired, + url: string.isRequired, + }) + ).isRequired, + }), +}); + // Denormalised user object export const currentUser = shape({ id: uuid.isRequired, @@ -79,6 +95,7 @@ export const currentUser = shape({ }).isRequired, stripeConnected: bool.isRequired, }), + profileImage: image, }); // Denormalised user object @@ -93,22 +110,7 @@ export const user = shape({ bio: string, }), }), -}); - -// Denormalised image object -export const image = shape({ - id: uuid.isRequired, - type: value('image').isRequired, - attributes: shape({ - sizes: arrayOf( - shape({ - width: number.isRequired, - height: number.isRequired, - name: string.isRequired, - url: string.isRequired, - }) - ).isRequired, - }), + profileImage: image, }); // Denormalised listing object @@ -212,6 +214,17 @@ export const transaction = shape({ provider: user, }); +// Denormalised transaction message +export const message = shape({ + id: uuid.isRequired, + type: value('message').isRequired, + attributes: shape({ + at: instanceOf(Date).isRequired, + content: string.isRequired, + }).isRequired, + sender: user, +}); + // Pagination information in the response meta export const pagination = shape({ page: number.isRequired, diff --git a/src/util/test-data.js b/src/util/test-data.js index 5c682b38..5c329e3f 100644 --- a/src/util/test-data.js +++ b/src/util/test-data.js @@ -131,6 +131,19 @@ export const createTransaction = options => { }; }; +export const createMessage = (id, attributes = {}, includes = {}) => { + return { + id: new UUID(id), + type: 'message', + attributes: { + at: new Date(Date.UTC(2017, 10, 9, 8, 12)), + content: `Message ${id}\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.`, + ...attributes, + }, + ...includes, + }; +}; + // Default config for currency formatting in tests and examples. export const currencyConfig = { style: 'currency',